{
  "kind": "group",
  "id": "c1c7150a-143d-4fb9-8086-222aabf393b1",
  "issuer": "all",
  "journey": "ntb",
  "startedAt": "2026-06-23T11:11:52.052Z",
  "endedAt": "2026-06-23T11:17:16.363Z",
  "durationMs": 324311,
  "summary": {
    "total": 2762,
    "passed": 2714,
    "failed": 38,
    "skipped": 10,
    "running": 0,
    "pending": 0,
    "durationMs": 295018
  },
  "runs": [
    {
      "id": "1cf3d26d-20f7-4f5b-996c-53a3438f5061",
      "issuer": "ssfb",
      "journey": "ntb",
      "startedAt": "2026-06-23T11:11:52.052Z",
      "endedAt": "2026-06-23T11:12:28.137Z",
      "durationMs": 32663,
      "summary": {
        "total": 560,
        "passed": 546,
        "failed": 12,
        "skipped": 2,
        "running": 0,
        "pending": 0,
        "durationMs": 32663
      },
      "steps": [
        {
          "stepId": "step-01-login",
          "stepName": "Login",
          "cases": [
            {
              "caseId": "LOGIN_001",
              "caseName": "Send OTP to SSFB / Suryoday test mobile number",
              "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:11:55.398Z",
              "endedAt": "2026-06-23T11:11:55.534Z",
              "durationMs": 136,
              "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:11:55 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": "6",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "133",
                "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 indicate OTP send success",
                  "passed": true,
                  "message": "Success envelope present"
                },
                {
                  "description": "payload.attemptsUsed should be present",
                  "passed": true,
                  "message": "attemptsUsed=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "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:11:55.534Z",
              "endedAt": "2026-06-23T11:11:55.633Z",
              "durationMs": 99,
              "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:11:55 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": "2995",
                "x-ratelimit-reset": "5",
                "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 success flag should be 1",
                  "passed": true,
                  "message": "success=1"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "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": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:11:55.633Z",
              "endedAt": "2026-06-23T11:11:55.737Z",
              "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:11:55 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": "5",
                "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": "Body statusCode should be 200",
                  "passed": true,
                  "message": "statusCode=200"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "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:11:55.737Z",
              "endedAt": "2026-06-23T11:11:55.837Z",
              "durationMs": 100,
              "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:11:55 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": "5",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "97",
                "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 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": "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:11:55.838Z",
              "endedAt": "2026-06-23T11:11:55.932Z",
              "durationMs": 94,
              "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:11:55 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": "2992",
                "x-ratelimit-reset": "5",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "91",
                "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": "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": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:11:55.932Z",
              "endedAt": "2026-06-23T11:11:56.051Z",
              "durationMs": 119,
              "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:11:56 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": "2991",
                "x-ratelimit-reset": "5",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "116",
                "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 be 0",
                  "passed": true,
                  "message": "attemptsUsed=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "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:11:56.052Z",
              "endedAt": "2026-06-23T11:11:56.137Z",
              "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": "94",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:11:56 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": "2990",
                "x-ratelimit-reset": "5",
                "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": "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": "LOGIN_023",
              "caseName": "Verify send OTP response schema",
              "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:11:56.138Z",
              "endedAt": "2026-06-23T11:11:56.229Z",
              "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:11:56 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": "5",
                "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": "Success response schema should match contract",
                  "passed": true,
                  "message": "Success schema valid"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "LOGIN_024",
              "caseName": "Verify send OTP response time",
              "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:11:56.229Z",
              "endedAt": "2026-06-23T11:11:56.322Z",
              "durationMs": 93,
              "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:11:56 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": "5",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "89",
                "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": true,
                  "message": "duration=93ms"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "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:11:56.322Z",
              "endedAt": "2026-06-23T11:11:56.431Z",
              "durationMs": 109,
              "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:11:56 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": "5",
                "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": "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": "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:11:56.431Z",
              "endedAt": "2026-06-23T11:11:56.519Z",
              "durationMs": 88,
              "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:11:56 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": "2986",
                "x-ratelimit-reset": "4",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "85",
                "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": "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:11:56.520Z",
              "endedAt": "2026-06-23T11:11:56.543Z",
              "durationMs": 23,
              "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:11:56 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": "2985",
                "x-ratelimit-reset": "4",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "13",
                "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": "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:11:56.543Z",
              "endedAt": "2026-06-23T11:11:56.552Z",
              "durationMs": 9,
              "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:11:56 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": "2984",
                "x-ratelimit-reset": "4",
                "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 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": "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:11:56.552Z",
              "endedAt": "2026-06-23T11:11:56.568Z",
              "durationMs": 16,
              "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:11:56 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": "2983",
                "x-ratelimit-reset": "4",
                "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' \\\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": "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:11:56.568Z",
              "endedAt": "2026-06-23T11:11:56.577Z",
              "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:11:56 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": "2982",
                "x-ratelimit-reset": "4",
                "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 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": "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:11:56.577Z",
              "endedAt": "2026-06-23T11:11:56.627Z",
              "durationMs": 50,
              "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:11:56 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": "4",
                "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": "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": "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:11:56.627Z",
              "endedAt": "2026-06-23T11:11:56.741Z",
              "durationMs": 114,
              "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:11:56 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": "4",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "110",
                "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": "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:11:56.741Z",
              "endedAt": "2026-06-23T11:11:56.937Z",
              "durationMs": 196,
              "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:11:56 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": "4",
                "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)"
                  },
                  {
                    "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": "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:11:56.937Z",
              "endedAt": "2026-06-23T11:11:57.031Z",
              "durationMs": 94,
              "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:11:57 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": "4",
                "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": "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": "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:11:57.031Z",
              "endedAt": "2026-06-23T11:11:57.230Z",
              "durationMs": 199,
              "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:11:57 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": "4",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "195",
                "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": "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:11:57.230Z",
              "endedAt": "2026-06-23T11:11:57.255Z",
              "durationMs": 25,
              "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:11:57 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": "4",
                "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": "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:11:57.260Z",
              "endedAt": "2026-06-23T11:11:57.331Z",
              "durationMs": 71,
              "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:11:57 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": "4",
                "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": "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": "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:11:57.331Z",
              "endedAt": "2026-06-23T11:11:57.339Z",
              "durationMs": 8,
              "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:11:57 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": "4",
                "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": "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:11:57.339Z",
              "endedAt": "2026-06-23T11:11:57.347Z",
              "durationMs": 8,
              "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:11:57 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": "4",
                "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\":\"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": "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:11:57.347Z",
              "endedAt": "2026-06-23T11:11:57.354Z",
              "durationMs": 7,
              "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:11:57 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": "4",
                "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": "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": "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:11:57.354Z",
              "endedAt": "2026-06-23T11:11:57.364Z",
              "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:11:57 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": "4",
                "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": "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:11:57.364Z",
              "endedAt": "2026-06-23T11:11:57.373Z",
              "durationMs": 9,
              "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:11:57 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": "4",
                "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\":\"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": "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:11:57.373Z",
              "endedAt": "2026-06-23T11:11:57.427Z",
              "durationMs": 54,
              "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:11:57 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": "4",
                "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": "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": "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:11:57.427Z",
              "endedAt": "2026-06-23T11:11:57.438Z",
              "durationMs": 11,
              "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:11:57 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": "2968",
                "x-ratelimit-reset": "4",
                "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\":\"<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": "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:11:57.438Z",
              "endedAt": "2026-06-23T11:11:57.454Z",
              "durationMs": 16,
              "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:11:57 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": "2967",
                "x-ratelimit-reset": "3",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "13",
                "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": "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:11:57.454Z",
              "endedAt": "2026-06-23T11:11:57.466Z",
              "durationMs": 12,
              "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:11:57 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": "2966",
                "x-ratelimit-reset": "3",
                "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\":\"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": "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:11:57.466Z",
              "endedAt": "2026-06-23T11:11:57.526Z",
              "durationMs": 60,
              "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:11:57 GMT",
                "etag": "W/\"f6-ySe3EJgjQXC755DXBtbxRm0LZnc\"",
                "vary": "Origin",
                "x-powered-by": "Express",
                "x-envoy-upstream-service-time": "57",
                "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": "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:11:57.527Z",
              "endedAt": "2026-06-23T11:11:57.541Z",
              "durationMs": 14,
              "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:11:57 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": "3",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "10",
                "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": "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:11:57.541Z",
              "endedAt": "2026-06-23T11:11:57.556Z",
              "durationMs": 15,
              "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:11:57 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": "3",
                "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  -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": "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:11:57.556Z",
              "endedAt": "2026-06-23T11:11:57.571Z",
              "durationMs": 15,
              "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:11:57 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": "2963",
                "x-ratelimit-reset": "3",
                "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: 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": "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:11:57.571Z",
              "endedAt": "2026-06-23T11:11:57.579Z",
              "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:11:57 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": "3",
                "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": "Response success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1208"
              ]
            },
            {
              "caseId": "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:11:57.579Z",
              "endedAt": "2026-06-23T11:11:57.628Z",
              "durationMs": 49,
              "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:11:57 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": "3",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "45",
                "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": "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:11:57.628Z",
              "endedAt": "2026-06-23T11:11:57.636Z",
              "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:11:57 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": "3",
                "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": "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": "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:11:57.636Z",
              "endedAt": "2026-06-23T11:11:57.649Z",
              "durationMs": 13,
              "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:11:57 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": "3",
                "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)"
                  }
                ]
              },
              "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": "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:11:57.649Z",
              "endedAt": "2026-06-23T11:11:57.656Z",
              "durationMs": 7,
              "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:11:57 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": "3",
                "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": "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": "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:11:57.657Z",
              "endedAt": "2026-06-23T11:11:57.664Z",
              "durationMs": 7,
              "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:11:57 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": "3",
                "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": "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": "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:11:57.664Z",
              "endedAt": "2026-06-23T11:11:57.671Z",
              "durationMs": 7,
              "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:11:57 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": "3",
                "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": "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": "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:11:57.671Z",
              "endedAt": "2026-06-23T11:11:57.730Z",
              "durationMs": 59,
              "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:11:57 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": "3",
                "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)"
                  }
                ]
              },
              "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": "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:11:57.730Z",
              "endedAt": "2026-06-23T11:11:57.741Z",
              "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:11:57 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": "3",
                "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": "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": "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:11:57.741Z",
              "endedAt": "2026-06-23T11:11:57.749Z",
              "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:11:57 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": "2953",
                "x-ratelimit-reset": "3",
                "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": "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": "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:11:57.749Z",
              "endedAt": "2026-06-23T11:11:57.841Z",
              "durationMs": 92,
              "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:11:57 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": "3",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "89",
                "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": "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:11:57.841Z",
              "endedAt": "2026-06-23T11:11:57.943Z",
              "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:11:57 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": "3",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "93",
                "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": "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:11:57.943Z",
              "endedAt": "2026-06-23T11:11:58.029Z",
              "durationMs": 86,
              "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:11: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": "2950",
                "x-ratelimit-reset": "3",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "83",
                "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": "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:11:58.029Z",
              "endedAt": "2026-06-23T11:11:58.428Z",
              "durationMs": 399,
              "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:11: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": "2946",
                "x-ratelimit-reset": "3",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "87",
                "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 100ms across 4 requests"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "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:11:58.428Z",
              "endedAt": "2026-06-23T11:11:58.956Z",
              "durationMs": 528,
              "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:11: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": "2941",
                "x-ratelimit-reset": "2",
                "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": "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": "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:11:58.956Z",
              "endedAt": "2026-06-23T11:11:59.231Z",
              "durationMs": 275,
              "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:11:59 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": "2",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "94",
                "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": "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:11:59.231Z",
              "endedAt": "2026-06-23T11:11:59.356Z",
              "durationMs": 125,
              "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:11:59 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": "2",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "107",
                "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": "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:11:59.356Z",
              "endedAt": "2026-06-23T11:11:59.445Z",
              "durationMs": 89,
              "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:11:59 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": "2",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "86",
                "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": "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:11:59.445Z",
              "endedAt": "2026-06-23T11:11:59.558Z",
              "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:11:59 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": "1",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "110",
                "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": "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:11:59.558Z",
              "endedAt": "2026-06-23T11:11:59.666Z",
              "durationMs": 108,
              "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:11:59 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": "1",
                "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": "Response status should be 201 or 200",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response time should be within 5000ms",
                  "passed": true,
                  "message": "duration=108ms"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "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:11:59.666Z",
              "endedAt": "2026-06-23T11:11:59.756Z",
              "durationMs": 90,
              "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:11:59 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": "1",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "85",
                "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": "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:11:59.756Z",
              "endedAt": "2026-06-23T11:11:59.872Z",
              "durationMs": 116,
              "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:11:59 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": "2932",
                "x-ratelimit-reset": "1",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "112",
                "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": "LOGIN_002",
              "caseName": "Verify OTP and extract auth tokens (SSFB / Suryoday)",
              "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:11:59.872Z",
              "endedAt": "2026-06-23T11:11:59.921Z",
              "durationMs": 49,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestPayload": {
                "phone": "918668336629",
                "otp": "123456",
                "partner_url": "https://tradingquants.dev.fixerra.in",
                "consent": false,
                "issuer_code": "SSFB"
              },
              "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:11:59 GMT",
                "etag": "W/\"3ea-NzXVGuq3uLZBhMglqIkYEvmvjEc\"",
                "referrer-policy": "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": "4",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "46",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "User already exists.",
                "payload": {
                  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE",
                  "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJyZWZyZXNoIiwiZl91c2VyX2lkIjoiYTQ4NWJkYmEtZmExZi00ZmRlLTkzNGUtOWQzOGQ5NjM3ZGFlIiwiZl9wYXJ0bmVyX3VzZXJfaWQiOiJiMDhkNTljNS01YzdkLTQ2N2ItYjFmNS02Yzg3YmMzNjFiYTQiLCJmX3BhcnRuZXJfaWQiOiI2OGJkY2Y4OS04NDY0LTRmODUtODk4Ny1hYTI4OTA4ZTIxYWQiLCJwYXJ0bmVyX3VybCI6Imh0dHBzOi8vdHJhZGluZ3F1YW50cy5kZXYuZml4ZXJyYS5pbiIsImlhdCI6MTc4MjIxMzExOSwiZXhwIjoxNzgyODE3OTE5fQ.EobGq22gMG8kI1UzrhyMqpGcXJQKDWYL5PmnDBlKld4"
                }
              },
              "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\":\"SSFB\"}'",
              "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": "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:11:59.922Z",
              "endedAt": "2026-06-23T11:11:59.943Z",
              "durationMs": 21,
              "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:11:59 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": "2995",
                "x-ratelimit-reset": "4",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "18",
                "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": "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:11:59.943Z",
              "endedAt": "2026-06-23T11:11:59.957Z",
              "durationMs": 14,
              "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:11:59 GMT",
                "etag": "W/\"127-ZiYrwH72A45vFRHl/GeyYgn6eAI\"",
                "referrer-policy": "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": "4",
                "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": "FIXUSER1009",
                    "error": "OTP must be a numeric value,"
                  },
                  {
                    "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\",\"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": [
                "FIXUSER1009",
                "FIXUSER1010"
              ]
            },
            {
              "caseId": "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:11:59.958Z",
              "endedAt": "2026-06-23T11:11:59.968Z",
              "durationMs": 10,
              "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:11:59 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": "2993",
                "x-ratelimit-reset": "4",
                "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": "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": "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:11:59.968Z",
              "endedAt": "2026-06-23T11:11:59.980Z",
              "durationMs": 12,
              "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:11:59 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": "4",
                "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": "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": "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:11:59.980Z",
              "endedAt": "2026-06-23T11:11:59.987Z",
              "durationMs": 7,
              "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:11:59 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": "2991",
                "x-ratelimit-reset": "4",
                "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": "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": "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:11:59.988Z",
              "endedAt": "2026-06-23T11:12:00.079Z",
              "durationMs": 91,
              "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:12:00 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": "2990",
                "x-ratelimit-reset": "4",
                "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/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": "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:12:00.079Z",
              "endedAt": "2026-06-23T11:12:00.107Z",
              "durationMs": 28,
              "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:12:00 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": "2989",
                "x-ratelimit-reset": "4",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "24",
                "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": "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:12:00.107Z",
              "endedAt": "2026-06-23T11:12:00.499Z",
              "durationMs": 392,
              "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:12:00 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": "2988",
                "x-ratelimit-reset": "4",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "389",
                "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": 66,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 5087
          }
        },
        {
          "stepId": "step-02-initial-check",
          "stepName": "Home / Initial Check",
          "cases": [
            {
              "caseId": "HOME_001",
              "caseName": "SSFB check-status (initial routing after login)",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:00.500Z",
              "endedAt": "2026-06-23T11:12:00.545Z",
              "durationMs": 45,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:00 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 201 Created",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response body statusCode should be 200",
                  "passed": true,
                  "message": "body.statusCode=200"
                },
                {
                  "description": "Response should be a success envelope",
                  "passed": true,
                  "message": "success=1 envelope present"
                },
                {
                  "description": "Response payload should contain journey status flags",
                  "passed": true,
                  "message": "Status flags present in payload"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "HOME_002",
              "caseName": "SSFB check-status should reject missing bearer token",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:00.545Z",
              "endedAt": "2026-06-23T11:12:00.552Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "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:12:00 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 401 Unauthorized",
                  "passed": true,
                  "message": "Status 401 OK"
                },
                {
                  "description": "Response should be Access Denied envelope",
                  "passed": true,
                  "message": "Access Denied envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "HOME_003",
              "caseName": "SSFB check-status should reject malformed bearer token",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:00.552Z",
              "endedAt": "2026-06-23T11:12:00.558Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer not-a-valid-jwt"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "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:12:00 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer not-a-valid-jwt' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 401 Unauthorized",
                  "passed": true,
                  "message": "Status 401 OK"
                },
                {
                  "description": "Response should be Access Denied envelope",
                  "passed": true,
                  "message": "Access Denied envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "HOME_004",
              "caseName": "SSFB check-status accepts explicit FD product flags",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:00.558Z",
              "endedAt": "2026-06-23T11:12:00.692Z",
              "durationMs": 134,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "product_type": "FD",
                "pan_consent": false
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:00 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "131",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"product_type\":\"FD\",\"pan_consent\":false}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 201 Created",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response body statusCode should be 200",
                  "passed": true,
                  "message": "body.statusCode=200"
                },
                {
                  "description": "Response payload should contain journey status flags",
                  "passed": true,
                  "message": "Status flags present in payload"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "HOME_005",
              "caseName": "SSFB check-status ignores flowId=SA query for FD routing",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:00.692Z",
              "endedAt": "2026-06-23T11:12:00.783Z",
              "durationMs": 91,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "requestQuery": {
                "flowId": "SA"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:00 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status?flowId=SA' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 201 Created",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response body statusCode should be 200",
                  "passed": true,
                  "message": "body.statusCode=200"
                },
                {
                  "description": "Response should be a success envelope",
                  "passed": true,
                  "message": "success=1 envelope present"
                },
                {
                  "description": "Response payload should contain journey status flags",
                  "passed": true,
                  "message": "Status flags present in payload"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "HOME_006",
              "caseName": "SSFB check-status accepts explicit pan_consent=true",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:00.783Z",
              "endedAt": "2026-06-23T11:12:00.914Z",
              "durationMs": 131,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "pan_consent": true
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:00 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "128",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"pan_consent\":true}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 201 Created",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response body statusCode should be 200",
                  "passed": true,
                  "message": "body.statusCode=200"
                },
                {
                  "description": "Response should be a success envelope",
                  "passed": true,
                  "message": "success=1 envelope present"
                },
                {
                  "description": "Response payload should contain journey status flags",
                  "passed": true,
                  "message": "Status flags present in payload"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "HOME_007",
              "caseName": "SSFB check-status accepts verify_pan boundary off",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:00.914Z",
              "endedAt": "2026-06-23T11:12:00.954Z",
              "durationMs": 40,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "verify_pan": 0
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:00 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "37",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"verify_pan\":0}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 201 Created",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response body statusCode should be 200",
                  "passed": true,
                  "message": "body.statusCode=200"
                },
                {
                  "description": "Response should be a success envelope",
                  "passed": true,
                  "message": "success=1 envelope present"
                },
                {
                  "description": "Response payload should contain journey status flags",
                  "passed": true,
                  "message": "Status flags present in payload"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "HOME_008",
              "caseName": "SSFB check-status accepts custom name override",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:00.954Z",
              "endedAt": "2026-06-23T11:12:01.027Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "name": "QA AUTOMATION USER"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:00 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"name\":\"QA AUTOMATION USER\"}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 201 Created",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response body statusCode should be 200",
                  "passed": true,
                  "message": "body.statusCode=200"
                },
                {
                  "description": "Response should be a success envelope",
                  "passed": true,
                  "message": "success=1 envelope present"
                },
                {
                  "description": "Response payload should contain journey status flags",
                  "passed": true,
                  "message": "Status flags present in payload"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "HOME_009",
              "caseName": "SSFB check-status ignores unknown extra field",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:01.027Z",
              "endedAt": "2026-06-23T11:12:01.199Z",
              "durationMs": 172,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "unknown_field": "qa-extra-field"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"unknown_field\":\"qa-extra-field\"}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 201 Created",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response body statusCode should be 200",
                  "passed": true,
                  "message": "body.statusCode=200"
                },
                {
                  "description": "Response should be a success envelope",
                  "passed": true,
                  "message": "success=1 envelope present"
                },
                {
                  "description": "Response payload should contain journey status flags",
                  "passed": true,
                  "message": "Status flags present in payload"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "HOME_010",
              "caseName": "SSFB check-status rejects Basic auth scheme",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:01.199Z",
              "endedAt": "2026-06-23T11:12:01.223Z",
              "durationMs": 24,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Basic dXNlcjpwYXNz"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "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:12:01 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": "16",
                "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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Basic dXNlcjpwYXNz' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 401 Unauthorized",
                  "passed": true,
                  "message": "Status 401 OK"
                },
                {
                  "description": "Response should be Access Denied envelope",
                  "passed": true,
                  "message": "Access Denied envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "HOME_011",
              "caseName": "SSFB check-status rejects empty authorization header",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:01.223Z",
              "endedAt": "2026-06-23T11:12:01.244Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "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:12:01 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response HTTP status should be 401 Unauthorized",
                  "passed": true,
                  "message": "Status 401 OK"
                },
                {
                  "description": "Response should be Access Denied envelope",
                  "passed": true,
                  "message": "Access Denied envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            }
          ],
          "summary": {
            "total": 11,
            "passed": 11,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 744
          }
        },
        {
          "stepId": "step-03-fd-detail",
          "stepName": "FD Detail",
          "cases": [
            {
              "caseId": "FD_DETAIL_001",
              "caseName": "Get SSFB issuer detail with internal apikey",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.245Z",
              "endedAt": "2026-06-23T11:12:01.339Z",
              "durationMs": 94,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "77026",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"12ce2-Utjsnieq8bAZTZ3wCPQbuaq2dVQ\"",
                "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": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "issuerData": {
                    "id": 35,
                    "name": "Suryoday Small Finance Bank",
                    "description": "Suryoday Small Finance Bank has assets under management (AUM) of ~₹6,000 Crores and serves over 24.3 lakh customers. It operates 520+ branches and was founded in 2017. The bank is listed on the NSE and BSE, reinforcing its strong presence in the market.",
                    "f_code": "SSFB",
                    "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "url": "https://images.dev.fixerra.in/SSFB/suryodayUrlImage.jpeg",
                    "sub_logo": "https://images.dev.fixerra.in/SSFB/Suryoday_Logo.png",
                    "compounding_freq": "Quarterly",
                    "issuer_type": "BANK",
                    "crisil_rating": "A1+",
                    "icra_rating": "",
                    "trusted_users": "24.3 lakh",
                    "hero_tag": "Highest Interest Rate",
                    "subtag_1": "INSTANT WITHDRAWAL",
                    "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": false,
                    "enable_easy_split": false,
                    "pg_setting": "",
                    "is_nominee_required": false,
                    "bank_type": "SMALL FINANCE",
                    "is_issuer_live": true,
                    "women_benefit": 0,
                    "senior_citizen_benefit": 0.4,
                    "minTenure": 7,
                    "maxTenure": 3649
                  },
                  "vehiclesPayload": [
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "920dafd3-a3a0-4cb7-af28-109929d55ea1",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": 13,
                      "product_min_tenure": 913,
                      "product_max_tenure": 913,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "8.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months",
                      "is_visible": true,
                      "yield": "9.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "fb0bd649-a57a-4cf8-96ab-140d938aab73",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 913,
                      "product_max_tenure": 913,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "8.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months",
                      "is_visible": true,
                      "yield": "8.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "435ca8b1-8a4b-4bc3-bb41-8a1d172ab5c7",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 913,
                      "product_max_tenure": 913,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "8.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months",
                      "is_visible": true,
                      "yield": "8.19"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "f963c40e-87e5-402b-9998-4a89eeb71cb6",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": 6,
                      "product_min_tenure": 913,
                      "product_max_tenure": 913,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "8.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months",
                      "is_visible": true,
                      "yield": "8.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "e625a5ce-77f3-4e95-a6d9-bc91617351fe",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 913,
                      "product_max_tenure": 913,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "8.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months",
                      "is_visible": true,
                      "yield": "8.10"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "e2ddaacf-12e5-40bb-961c-33ee2e0eefca",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 913,
                      "product_max_tenure": 913,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "8.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months",
                      "is_visible": true,
                      "yield": "8.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "889493b6-c9a0-46b9-9f79-568be6763a27",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 1000,
                      "product_max_investment": 150000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": true,
                      "product_issuer_commision": "",
                      "product_self_commision": "",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "5 years",
                      "product_interest_freq": "Yearly",
                      "product_interest": "8.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "9.79"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "fc309141-9975-451c-91f0-776cb72fe0ab",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 1000,
                      "product_max_investment": 150000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": true,
                      "product_issuer_commision": "",
                      "product_self_commision": "",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "5 years",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "8.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "8.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "ca6cc80c-be9f-4613-8908-89cccd1593a0",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 1000,
                      "product_max_investment": 150000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": true,
                      "product_issuer_commision": "",
                      "product_self_commision": "",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "5 years",
                      "product_interest_freq": "Monthly",
                      "product_interest": "8.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "8.00"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "2beea2d2-d18e-488d-bd92-a25213e36db1",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "8.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "9.79"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "8535f38c-5af2-4db9-bd44-8fb4e34db576",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "8.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "8.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "67d3572a-c3af-48a9-b98c-ac994d7e1036",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "8.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "8.00"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "a4f467ae-2b5f-47f2-9908-6387f0adecf0",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "9.57"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "19d94081-d2cd-4f8e-8c14-a80f7dc1a08a",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "7.90"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "0a610f89-3bfe-4fb9-9597-792dbf7f5595",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "7.85"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "903082c2-7c1f-4bbd-8e16-e97a7d959b5a",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 1000,
                      "product_max_investment": 150000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": true,
                      "product_issuer_commision": "",
                      "product_self_commision": "",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "5 years",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "7.85"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "d9915b4c-fd62-4739-bf95-638e2e563ebf",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 1000,
                      "product_max_investment": 150000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": true,
                      "product_issuer_commision": "",
                      "product_self_commision": "",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "5 years",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "7.90"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "55733c72-e9ba-4a58-8082-6cc8c990fd36",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 1000,
                      "product_max_investment": 150000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": true,
                      "product_issuer_commision": "",
                      "product_self_commision": "",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "5 years",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year",
                      "is_visible": true,
                      "yield": "9.57"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "41566665-9f17-4540-9e22-0a1d0f6370b0",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months",
                      "is_visible": true,
                      "yield": "8.14"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "37b67ca1-8579-4100-a1ac-46c128dcde58",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "e1c0d176-6e65-4e20-89c1-c38134f0c767",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months",
                      "is_visible": true,
                      "yield": "7.70"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "42f13415-7c11-489b-8053-ceb2098b1e65",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months",
                      "is_visible": true,
                      "yield": "7.97"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "29f444e1-fdd0-40bf-8948-25506c0305b9",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months",
                      "is_visible": true,
                      "yield": "7.55"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "c0cb8c4d-e3b3-4eaa-bbbf-3771e5a5cf8f",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months",
                      "is_visible": true,
                      "yield": "7.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "dd8cefba-adf9-4246-8633-fe4d51f91e00",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1826,
                      "product_max_tenure": 1826,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year 1 day",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "4c5f7740-33fc-4170-8605-b90c299b63f5",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 914,
                      "product_max_tenure": 1095,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months 1 Day",
                      "is_visible": true,
                      "yield": "8.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "07342517-1772-4031-9ef3-fc31d538d0a1",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 914,
                      "product_max_tenure": 1095,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months 1 Day",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "756a41b3-7b2a-4277-b925-5d7c0f67b847",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 914,
                      "product_max_tenure": 1095,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months 1 Day",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "5f72cbfb-56ba-4a8c-9ba7-3358317b9f20",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 3649,
                      "product_max_tenure": 3649,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "10 year",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "3ba52117-b0f0-49f2-ab11-309c42fe38d9",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1826,
                      "product_max_tenure": 1826,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year 1 day",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "9cfdec98-982b-44d5-b254-48e08ece9188",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1826,
                      "product_max_tenure": 1826,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year 1 day",
                      "is_visible": true,
                      "yield": "8.86"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "fabb5064-7e6f-45c9-b8f1-904c9c5c7dcc",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 3649,
                      "product_max_tenure": 3649,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "10 year",
                      "is_visible": true,
                      "yield": "10.82"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "8575e6e5-615c-4a52-9df6-6f3b4fc6ec5a",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 3649,
                      "product_max_tenure": 3649,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "10 year",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "20115a37-b3f3-414a-a199-205370a6ba5b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 731,
                      "product_max_tenure": 912,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "2 years 1 day",
                      "is_visible": true,
                      "yield": "7.90"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "215f4d35-3f84-4321-9bed-650998d4dca8",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 731,
                      "product_max_tenure": 912,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "2 years 1 day",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "503a37dd-4856-43a1-8e55-5bd4dbeae217",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 731,
                      "product_max_tenure": 912,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "2 years 1 day",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "8cff9571-42ae-463d-ba7c-fac24cdfff23",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 548,
                      "product_max_tenure": 730,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months 1 day",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "716fd11c-5692-4c2d-8dec-7f177d427d62",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 548,
                      "product_max_tenure": 730,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months 1 day",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "875a761c-de31-4c71-93a1-30fc6bdee8fc",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 year",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "5ffe6a90-cb1d-463b-94d7-75bf2d872b9d",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 year",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "856bbef2-f496-458a-8f28-bd9cab7a64f9",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 year",
                      "is_visible": true,
                      "yield": "7.61"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "64c3715f-865c-4e05-a772-60667beaf690",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 366,
                      "product_max_tenure": 546,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 1 day",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "653afaec-0e89-4618-96c4-5302de9fada6",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 366,
                      "product_max_tenure": 546,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 1 day",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "1c6e4da0-6f12-4974-bb58-834edb229321",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 366,
                      "product_max_tenure": 546,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 1 day",
                      "is_visible": true,
                      "yield": "7.61"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "f621755a-a8f0-4de1-b4d0-7591da8b78bc",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 548,
                      "product_max_tenure": 730,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months 1 day",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "2845eb93-1315-4a40-b2a7-ba71af626b32",
                      "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-03-28T00: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": "7 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": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "974b990a-a8da-4e69-8aff-f553372c5f30",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 3649,
                      "product_max_tenure": 3649,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "10 year",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "881f6416-3ebb-49ee-bd2e-81a1177178d6",
                      "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-03-28T00: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": "7 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": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "7212d82a-98a1-4299-a249-586252cb6a43",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1826,
                      "product_max_tenure": 1826,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year 1 day",
                      "is_visible": true,
                      "yield": "8.65"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "9d8cbb5d-2241-4cb0-9d6f-0b5f7e03e96a",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 year",
                      "is_visible": true,
                      "yield": "7.45"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "33db61db-8f22-4534-ae03-70ddce13aaac",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1826,
                      "product_max_tenure": 1826,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year 1 day",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "a0a8a578-a0e9-4024-a9c0-d0e2da394fd8",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1826,
                      "product_max_tenure": 1826,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "5 year 1 day",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "1be627bd-00fa-41b2-a375-fa9546ea1cee",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 3649,
                      "product_max_tenure": 3649,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "10 year",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "9f21c97d-9429-4353-a36e-5bf0f2cdc7db",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 548,
                      "product_max_tenure": 730,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months 1 day",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "4728c663-5ffa-4ec2-9115-00a909d6c763",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 731,
                      "product_max_tenure": 912,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "2 years 1 day",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "db31e1fd-5a27-472e-9608-fa4e7cbf71d0",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 731,
                      "product_max_tenure": 912,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "2 years 1 day",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "05a9f8d0-3cdc-4033-9c80-33de58fbc833",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 366,
                      "product_max_tenure": 546,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 1 day",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "e6dfe572-c356-480d-ac3b-5e3bd9e559e5",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 914,
                      "product_max_tenure": 1095,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months 1 Day",
                      "is_visible": true,
                      "yield": "7.87"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "d49db67e-48be-4b1d-b78e-8265c1faadeb",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 914,
                      "product_max_tenure": 1095,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months 1 Day",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "75fe4b38-7ccb-448e-832a-dad099c7174b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 914,
                      "product_max_tenure": 1095,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 Months 1 Day",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "322d005b-d0ea-4f7b-8f80-25f72ea71319",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 366,
                      "product_max_tenure": 546,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 1 day",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "e9ff801a-a43f-4255-a5bf-c382c24928f0",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 366,
                      "product_max_tenure": 546,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 1 day",
                      "is_visible": true,
                      "yield": "7.45"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "ba6819fd-73e9-47ef-a0a8-2202ef2f7f22",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 731,
                      "product_max_tenure": 912,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "2 years 1 day",
                      "is_visible": true,
                      "yield": "7.73"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "666f3c13-3a54-418c-b7bb-e7cdd9928869",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 3649,
                      "product_max_tenure": 3649,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "10 year",
                      "is_visible": true,
                      "yield": "10.51"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "3e2c6c3a-e300-40e8-a300-8e841987228c",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 548,
                      "product_max_tenure": 730,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months 1 day",
                      "is_visible": true,
                      "yield": "7.59"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "b67fd741-3fad-45e0-b9e3-e37803619b74",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 548,
                      "product_max_tenure": 730,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "1 years 6 months 1 day",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "94087a21-a11b-4f5c-92e6-5907e237d612",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1096,
                      "product_max_tenure": 1824,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "3 years 1 day",
                      "is_visible": true,
                      "yield": "6.86"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "f09528b5-05f3-4ea0-ac28-c130d8d6fe37",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1096,
                      "product_max_tenure": 1824,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "3 years 1 day",
                      "is_visible": true,
                      "yield": "6.90"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "ed77a73c-d85e-4501-85f8-6b32eea0dfda",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1096,
                      "product_max_tenure": 1824,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "3 years 1 day",
                      "is_visible": true,
                      "yield": "7.59"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "0226d035-1e94-44d4-b01d-c1c6c6da75ba",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1096,
                      "product_max_tenure": 1824,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "3 years 1 day",
                      "is_visible": true,
                      "yield": "6.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "8f3c185f-3571-408a-acd2-ce4933f95b4a",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1096,
                      "product_max_tenure": 1824,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "3 years 1 day",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "77b69cdb-8d7e-42a4-b06d-f0c5e64f8553",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1096,
                      "product_max_tenure": 1824,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "3 years 1 day",
                      "is_visible": true,
                      "yield": "6.71"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "8903a9f8-3cbb-4577-92c5-0443f226ba90",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 183,
                      "product_max_tenure": 183,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 1 day",
                      "is_visible": true,
                      "yield": "6.65"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "fea30326-263a-4225-bb9c-f149a010a944",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 183,
                      "product_max_tenure": 183,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 1 day",
                      "is_visible": true,
                      "yield": "6.61"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "b74d984f-6379-4943-a839-1ebe293c4f78",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 183,
                      "product_max_tenure": 183,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 1 day",
                      "is_visible": true,
                      "yield": "6.71"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "ddcb2f16-a378-41f6-8f86-bb9136f6c4a4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 183,
                      "product_max_tenure": 183,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 1 day",
                      "is_visible": true,
                      "yield": "6.47"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "32c2e41f-b62d-4df0-937c-a9fa1dface4b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 183,
                      "product_max_tenure": 183,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 1 day",
                      "is_visible": true,
                      "yield": "6.50"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "3e30bf03-187e-4dc8-84d1-dd06d1f1ad8e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 183,
                      "product_max_tenure": 183,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-02-04T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 1 day",
                      "is_visible": true,
                      "yield": "6.57"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "a4460165-d503-4c22-8021-5bcb6afcb28c",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 274,
                      "product_max_tenure": 364,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.15",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "9 months 1 day",
                      "is_visible": true,
                      "yield": "6.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "e25af959-261f-45da-8f35-78caa08375d7",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 274,
                      "product_max_tenure": 364,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.15",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "9 months 1 day",
                      "is_visible": true,
                      "yield": "6.15"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "897d0825-5611-4037-901e-e1c61f83a169",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 274,
                      "product_max_tenure": 364,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.15",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "9 months 1 day",
                      "is_visible": true,
                      "yield": "6.12"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "1d24aea5-22f3-4204-926c-5545c3d05e65",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 274,
                      "product_max_tenure": 364,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "9 months 1 day",
                      "is_visible": true,
                      "yield": "5.97"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "5bcf0de4-8deb-4d27-aca6-a118fe5877ea",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 274,
                      "product_max_tenure": 364,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "9 months 1 day",
                      "is_visible": true,
                      "yield": "6.00"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "5e1d6a5f-f721-4717-bcd4-bb45c8258e40",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 274,
                      "product_max_tenure": 364,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "9 months 1 day",
                      "is_visible": true,
                      "yield": "6.09"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "feab1bf5-fb0f-4ac1-9cb5-772fbc670dc2",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 184,
                      "product_max_tenure": 273,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "5.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 2 day",
                      "is_visible": true,
                      "yield": "5.62"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "fee79651-3888-4e90-a735-aa10bc57375d",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 184,
                      "product_max_tenure": 273,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "5.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 2 day",
                      "is_visible": true,
                      "yield": "5.65"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "c5311f5a-7a01-4204-9468-d53fa4fdcd4a",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 184,
                      "product_max_tenure": 273,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "5.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 2 day",
                      "is_visible": true,
                      "yield": "5.69"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "54b675ca-73b9-4b0b-8f2f-e263692980a2",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 184,
                      "product_max_tenure": 273,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Monthly",
                      "product_interest": "5.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 2 day",
                      "is_visible": true,
                      "yield": "5.47"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "fe4d84ce-2384-4648-af66-fe8d57041367",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 184,
                      "product_max_tenure": 273,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "5.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 2 day",
                      "is_visible": true,
                      "yield": "5.50"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "5a22ea06-2259-44f0-a750-8e7d650ccea3",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 184,
                      "product_max_tenure": 273,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "5.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months 2 day",
                      "is_visible": true,
                      "yield": "5.54"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "64aedb5c-bb95-48dc-a8f7-ad50b84278d8",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 91,
                      "product_max_tenure": 182,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "5.15",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "91 days",
                      "is_visible": true,
                      "yield": "5.15"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "beaad2e6-15ad-4123-946a-15edc6fd0da2",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 91,
                      "product_max_tenure": 182,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 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": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "e9870024-cb11-43ea-be87-59b879399cca",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 46,
                      "product_max_tenure": 90,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "4.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "46 days",
                      "is_visible": true,
                      "yield": "4.64"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "d392f50d-4abf-4bf8-939a-1e3426909950",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 46,
                      "product_max_tenure": 90,
                      "product_min_investment": 1000,
                      "product_max_investment": 29999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "4.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "46 days",
                      "is_visible": true,
                      "yield": "4.49"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "12622c52-7f67-4aa4-992b-44efe8940048",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "4.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "15 days",
                      "is_visible": true,
                      "yield": "4.38"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "cbf8ddc5-f032-494c-b925-f82ab18b2edb",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "4.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "15 days",
                      "is_visible": true,
                      "yield": "4.23"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "f59f3a6d-6765-49c2-a3f2-100b0cbd3256",
                      "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-03-28T00: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": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "4.15",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "7 days",
                      "is_visible": true,
                      "yield": "4.17"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "54aa5895-e8cc-4dd6-b0b6-5b7bf069ee97",
                      "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-03-28T00: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": "7 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"
                    }
                  ],
                  "highlights": [
                    {
                      "title": "All Investments Up To ₹5L Are Insured By DICGC",
                      "url": "https://images.dev.fixerra.in/illustrations/RBI@3x.png"
                    },
                    {
                      "title": "Senior Citizens Get Up To 0.50% Extra",
                      "url": "https://images.dev.fixerra.in/illustrations/Senior@3x.png"
                    },
                    {
                      "title": "Maturity Amount Is Directly Credited To Your Bank Account",
                      "url": "https://images.dev.fixerra.in/illustrations/Bank@3x.png"
                    }
                  ],
                  "about": [
                    {
                      "key": "Founded",
                      "value": "2017"
                    },
                    {
                      "key": "Customers Served",
                      "value": "33  lakh+"
                    },
                    {
                      "key": "Number of Branches",
                      "value": "520+"
                    },
                    {
                      "key": "CRISIL Rating",
                      "value": "A1+"
                    },
                    {
                      "key": "Assets Under Management",
                      "value": "₹6000 Cr+"
                    },
                    {
                      "key": "Listed on",
                      "value": "NSE & BSE"
                    }
                  ],
                  "distinctMinTenureValues": [
                    {
                      "value": 7
                    },
                    {
                      "value": 15
                    },
                    {
                      "value": 46
                    },
                    {
                      "value": 91
                    },
                    {
                      "value": 182
                    },
                    {
                      "value": 183
                    },
                    {
                      "value": 184
                    },
                    {
                      "value": 273
                    },
                    {
                      "value": 274
                    },
                    {
                      "value": 365
                    },
                    {
                      "value": 366
                    },
                    {
                      "value": 456
                    },
                    {
                      "value": 547
                    },
                    {
                      "value": 548
                    },
                    {
                      "value": 638
                    },
                    {
                      "value": 730
                    },
                    {
                      "value": 731
                    },
                    {
                      "value": 821
                    },
                    {
                      "value": 912
                    },
                    {
                      "value": 1003
                    },
                    {
                      "value": 1095
                    },
                    {
                      "value": 1096
                    },
                    {
                      "value": 1825
                    },
                    {
                      "value": 1826
                    },
                    {
                      "value": 3649
                    }
                  ],
                  "interestPayouts": [
                    "Maturity",
                    "Quarterly",
                    "Monthly"
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": true,
                  "message": "body.statusCode=200"
                },
                {
                  "description": "Fixerra success flag should be 1",
                  "passed": true,
                  "message": "success=1"
                },
                {
                  "description": "Response should contain SSFB issuer data",
                  "passed": true,
                  "message": "Issuer data present (f_code=SSFB, f_issuer_id=4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d)"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_002",
              "caseName": "Issuer detail should reject request without auth",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:01.339Z",
              "endedAt": "2026-06-23T11:12:01.345Z",
              "durationMs": 6,
              "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:12:01 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/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "HTTP status should be 401",
                  "passed": true,
                  "message": "Got 401"
                },
                {
                  "description": "Unauthorized response should be returned by UserJwtGuard",
                  "passed": true,
                  "message": "Unauthorized response present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_003",
              "caseName": "Issuer detail should return FIXMAS001 for unknown issuer id",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/00000000-0000-0000-0000-000000000000",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.345Z",
              "endedAt": "2026-06-23T11:12:01.365Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "176",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"b0-uBM7zNsytKvRS35jbx9MFoOVZS8\"",
                "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": "17",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS001",
                    "error": "Issuer doesn't exists"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/00000000-0000-0000-0000-000000000000' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS001",
                  "passed": true,
                  "message": "FIXMAS001 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
              "expectedErrorCodes": [
                "FIXMAS001"
              ],
              "actualErrorCodes": [
                "FIXMAS001"
              ]
            },
            {
              "caseId": "FD_DETAIL_004",
              "caseName": "Issuer detail should reject unsupported product_type",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.365Z",
              "endedAt": "2026-06-23T11:12:01.371Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "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:12:01 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": "3",
                "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/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d?product_type=ABC' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS0109",
                  "passed": true,
                  "message": "FIXMAS0109 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
              "expectedErrorCodes": [
                "FIXMAS0109"
              ],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_005",
              "caseName": "Issuer detail with RD product_type returns RD vehicles",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.371Z",
              "endedAt": "2026-06-23T11:12:01.427Z",
              "durationMs": 56,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "product_type": "RD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "20261",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"4f25-g2JqCxf6aqgSgepTMCkbwcZbH7E\"",
                "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": "52",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "issuerData": {
                    "id": 35,
                    "name": "Suryoday Small Finance Bank",
                    "description": "Suryoday Small Finance Bank has assets under management (AUM) of ~₹6,000 Crores and serves over 24.3 lakh customers. It operates 520+ branches and was founded in 2017. The bank is listed on the NSE and BSE, reinforcing its strong presence in the market.",
                    "f_code": "SSFB",
                    "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "url": "https://images.dev.fixerra.in/SSFB/suryodayUrlImage.jpeg",
                    "sub_logo": "https://images.dev.fixerra.in/SSFB/Suryoday_Logo.png",
                    "compounding_freq": "Quarterly",
                    "issuer_type": "BANK",
                    "crisil_rating": "A1+",
                    "icra_rating": "",
                    "trusted_users": "24.3 lakh",
                    "hero_tag": "Highest Interest Rate",
                    "subtag_1": "INSTANT WITHDRAWAL",
                    "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": false,
                    "enable_easy_split": false,
                    "pg_setting": "",
                    "is_nominee_required": false,
                    "bank_type": "SMALL FINANCE",
                    "is_issuer_live": true,
                    "women_benefit": 0,
                    "senior_citizen_benefit": 0.4,
                    "minTenure": 182,
                    "maxTenure": 1825
                  },
                  "vehiclesPayload": [
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "af6628a0-1e05-4869-99f3-edb2ef439975",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "8.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "e3338ea5-9615-4115-9bdf-4cf3ba086ec0",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "8.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "30 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "92708ded-6d44-40dd-a42b-135f4e819622",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "8.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "60 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "0e0cd3aa-7102-4b20-a298-1fbd655eeed5",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "60 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "20355954-0800-4959-9016-50071d9aa969",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "18 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "3e0d7e8e-b3e2-410f-be41-68b055155876",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "18 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "8a181741-13e8-4f66-a447-d47c78e4d273",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "36 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "6e9c1a4d-d9c0-4f2f-9731-c32c66d28201",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "12 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "c8837e5c-c9d6-46f8-b59d-f64a678809db",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "33 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "eedafddb-4173-4775-8c38-97d2ac758f83",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 456,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "15 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "e23efed1-b99a-4ef3-b8d5-55218d5cb275",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 638,
                      "product_max_tenure": 638,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "21 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "c7482744-3f46-4f74-97d6-aa100dba07db",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "24 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "fd777e27-977e-42b6-871b-bfc69098d9c5",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 821,
                      "product_max_tenure": 821,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "27 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "130268cd-6f17-4cce-a7f4-1422449e9cdd",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "24 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "178fb5ff-f707-4564-a330-e4a3072e6391",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "36 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "eef43ad8-0804-4a73-ac38-78b96dc6589e",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "33 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "1201d81d-9a6f-40da-aa27-6d0e0df685f5",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 821,
                      "product_max_tenure": 821,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "27 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "1e52838d-f731-4eb5-8ac9-b3f57c1a953d",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 638,
                      "product_max_tenure": 638,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "21 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "2a078ef5-1ae8-4a87-ad9a-5d856d35b0d8",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 456,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "15 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "91b83f6b-276f-4a6c-b0ec-e42178a2d330",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "12 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "3fd90ab9-7df5-474f-bf55-ea3874cedd63",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 273,
                      "product_max_tenure": 273,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "5.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "9 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "5458cfc9-966e-4aa9-a3fb-f50b09043766",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 273,
                      "product_max_tenure": 273,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "5.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "9 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "10a47a98-bc39-4953-a8c3-2e8e2f513dce",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 182,
                      "product_max_tenure": 182,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "5.15",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                      "f_investment_vehicle_id": "abdc414b-899b-4e5c-a7e3-347defab743c",
                      "product_details": "NULL",
                      "product_type": "RD",
                      "product_rank": null,
                      "product_min_tenure": 182,
                      "product_max_tenure": 182,
                      "product_min_investment": 100,
                      "product_max_investment": 50000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-03-28T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "7 days",
                      "product_interest_freq": "Yearly",
                      "product_interest": "5.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "6 months",
                      "is_visible": true,
                      "yield": null
                    }
                  ],
                  "highlights": [
                    {
                      "title": "All Investments Up To ₹5L Are Insured By DICGC",
                      "url": "https://images.dev.fixerra.in/illustrations/RBI@3x.png"
                    },
                    {
                      "title": "Senior Citizens Get Up To 0.50% Extra",
                      "url": "https://images.dev.fixerra.in/illustrations/Senior@3x.png"
                    },
                    {
                      "title": "Maturity Amount Is Directly Credited To Your Bank Account",
                      "url": "https://images.dev.fixerra.in/illustrations/Bank@3x.png"
                    }
                  ],
                  "about": [],
                  "distinctMinTenureValues": [
                    {
                      "value": 1003
                    },
                    {
                      "value": 1095
                    },
                    {
                      "value": 182
                    },
                    {
                      "value": 1825
                    },
                    {
                      "value": 273
                    },
                    {
                      "value": 365
                    },
                    {
                      "value": 456
                    },
                    {
                      "value": 547
                    },
                    {
                      "value": 638
                    },
                    {
                      "value": 730
                    },
                    {
                      "value": 821
                    },
                    {
                      "value": 912
                    }
                  ],
                  "interestPayouts": [
                    "Maturity"
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d?product_type=RD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": true,
                  "message": "body.statusCode=200"
                },
                {
                  "description": "Fixerra success flag should be 1",
                  "passed": true,
                  "message": "success=1"
                },
                {
                  "description": "RD response should still return SSFB issuer data with vehiclesPayload",
                  "passed": true,
                  "message": "RD issuer data present, vehiclesPayload=24 vehicles"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_006",
              "caseName": "Issuer detail with empty product_type should be rejected",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.427Z",
              "endedAt": "2026-06-23T11:12:01.442Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "product_type": ""
              },
              "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:12:01 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": "12",
                "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/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d?product_type=' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS0109",
                  "passed": true,
                  "message": "FIXMAS0109 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
              "expectedErrorCodes": [
                "FIXMAS0109"
              ],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_PAGE_001",
              "caseName": "Get SSFB partner config with enabled issuers",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/partners/50c77720-0e5e-4f8a-81f5-d5a2caf1ecad",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.442Z",
              "endedAt": "2026-06-23T11:12:01.456Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "include_enabled_issuers": "true"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "2665",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"a69-KgZEPG2Seo2Y8ERtcEJwxshGwv8\"",
                "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": "5",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "f_partner_id": "50c77720-0e5e-4f8a-81f5-d5a2caf1ecad",
                  "partner_name": "Fixed",
                  "partner_code": "FIX",
                  "partner_referral_link": "https://www.partner-a.com/referral",
                  "partner_logo": "https://www.partner-a.com/logo.png",
                  "partner_email": "contact@partner-a.comm",
                  "partner_type": "Affiliate",
                  "partner_url": "https://user-app.dev.fixerra.in",
                  "partner_is_primary": true,
                  "partner_payment_link": "https://user-app.dev.fixerra.in/paymentStatus",
                  "custom_payment_url_enabled": true,
                  "settings": {
                    "mail": {
                      "address": "mail@partner.com",
                      "disclaimer": "This is a disclaimer text.",
                      "support_email": "support@partner.com"
                    },
                    "issuerEnabled": {
                      "fd": {
                        "baj": true,
                        "iib": true,
                        "mah": true,
                        "shri": true,
                        "ssfb": true,
                        "usfb": true,
                        "ausfb": true
                      },
                      "otherProducts": {}
                    },
                    "initiationPoint": "home",
                    "pageConfig": {
                      "home": [
                        "PORTFOLIO",
                        "USER_JOURNEY",
                        "COLLECTION",
                        "FD_PLAN",
                        "INVESTMENT_PLAN",
                        "COMPARE_FD"
                      ]
                    },
                    "webhook_config": {
                      "insights_relay_webhook": {
                        "url": "https://webhook.site/c0fa03f0-4ccb-4fb5-be5d-fe9b3f455987",
                        "method": "POST",
                        "headers": {
                          "Content-Type": "application/json"
                        }
                      }
                    },
                    "issuer_settings": {
                      "fd": {
                        "USFB": {
                          "FLOW": "FD",
                          "BROKER_CODE": "BROKER_CODE"
                        }
                      }
                    },
                    "is_payment_intent": false,
                    "is_payment_checkout": true
                  },
                  "enabled_issuers": [
                    "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                    "3c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                    "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                    "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                    "550e8400-e29b-41d4-a716-446655440000"
                  ],
                  "enabledPages": [
                    "home",
                    "explore",
                    "best_rates",
                    "women_benefits",
                    "tax_saver",
                    "issuer_fds",
                    "fd_detail",
                    "fd_amount",
                    "fd_tenure",
                    "fd_pay",
                    "fd_status",
                    "profile",
                    "portfolio",
                    "portfolio_fd"
                  ],
                  "allPages": [
                    "home",
                    "explore",
                    "best_rates",
                    "women_benefits",
                    "tax_saver",
                    "issuer_fds",
                    "fd_detail",
                    "fd_amount",
                    "fd_tenure",
                    "fd_pay",
                    "fd_status",
                    "profile",
                    "portfolio",
                    "portfolio_fd"
                  ],
                  "partner_client_secret": "$2b$10$GrAxnmQxbYbu2tdZB0BoB.FosFP0ydfZ9nMVWWYXsZGLfPpU/vxcG",
                  "partner_public_key": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA63x5T9KMSgVFmQ+44kPE\neWEBdEiqoWF2MHrJyNyD0Y74i+w2QMwi6+/19vhdtYVXilJ7vhOBGQVlHASEqkqf\nIlg7dARRaGYz3XHdyI6btv81bqZ+xXn/7rmmW/nqtYlVXjsy82Beuer8keuRar+r\nRZRgFNsdDyRjAGIKFZ28o7aCrwl6EmPUgjRQSJDRQgM0cpoFcw3FjdW9OXbyB6No\nRKTM5vEbIpbJgt4nby3RD+1R4n+VGe2RGw5TGvYAVOi1EI6Wq1Ghgf1QAU6AFRsH\n1uVo/1nk8zpIOgLMP2OBXddz87KsyMrfS5/2eVIDK+IzNtsFMwQO5wvGlXwZ2Ar+\n4Z5jx82jCt6sC3PZH7Dlj8axSKf6xihNJJa1UBmbf3GCMPaY17Si/K0wshp3UZIx\nbiHKFMiFoMdbubv8/zCVhpXd9yC0E8oNGYvz+IYvuhoqgmXG3at8svOn5d5tq7Q2\nyEmTozjNZKiQUfJBKjg3gkCQqfk83qpjIhTehPnom1tdAgMBAAE=\n-----END PUBLIC KEY-----\n",
                  "sub_broker_url": "https://sub-broker.dev.fixerra.in"
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/partners/50c77720-0e5e-4f8a-81f5-d5a2caf1ecad?include_enabled_issuers=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain partner config payload",
                  "passed": true,
                  "message": "success=1, statusCode=200, partner config payload"
                },
                {
                  "description": "enabled_issuers should be present in response when include_enabled_issuers=true",
                  "passed": true,
                  "message": "enabled_issuers=7, enabledPages=[\"home\",\"explore\",\"best_rates\",\"women_benefits\",\"tax_saver\",\"issuer_fds\",\"fd_detail\",\"fd_amount\",\"fd_tenure\",\"fd_pay\",\"fd_status\",\"profile\",\"portfolio\",\"portfolio_fd\"]"
                }
              ],
              "docsFile": "master-services/API_QA_REVIEW_GET_CONFIG.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_PAGE_AUTH_001",
              "caseName": "Partner config should reject request without auth",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/partners/50c77720-0e5e-4f8a-81f5-d5a2caf1ecad",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:01.456Z",
              "endedAt": "2026-06-23T11:12:01.465Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestQuery": {
                "include_enabled_issuers": "true"
              },
              "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:12:01 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/partners/50c77720-0e5e-4f8a-81f5-d5a2caf1ecad?include_enabled_issuers=true' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "HTTP status should be 401",
                  "passed": true,
                  "message": "Got 401"
                },
                {
                  "description": "Unauthorized response should be returned by UserJwtGuard",
                  "passed": true,
                  "message": "Unauthorized response present"
                }
              ],
              "docsFile": "master-services/API_QA_REVIEW_GET_CONFIG.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_PAGE_NEG_001",
              "caseName": "Partner config with unknown partner ID should return error",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/partners/00000000-0000-0000-0000-000000000000",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.470Z",
              "endedAt": "2026-06-23T11:12:01.500Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "include_enabled_issuers": "true"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "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:12:01 GMT",
                "etag": "W/\"ae-4klN6leTtT3Eb19u40K8rhB5lpc\"",
                "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": "16",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXMAS062",
                    "error": "PARTNER_NOT_FOUND"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/partners/00000000-0000-0000-0000-000000000000?include_enabled_issuers=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Should return error for non-existent partner",
                  "passed": true,
                  "message": "Error returned for unknown partner"
                }
              ],
              "docsFile": "master-services/API_QA_REVIEW_GET_CONFIG.md",
              "expectedErrorCodes": [
                "PARTNER_NOT_FOUND"
              ],
              "actualErrorCodes": [
                "FIXMAS062"
              ]
            },
            {
              "caseId": "FD_DETAIL_PAGE_EDGE_001",
              "caseName": "Partner config without include_enabled_issuers returns basic data only",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/partners/50c77720-0e5e-4f8a-81f5-d5a2caf1ecad",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.500Z",
              "endedAt": "2026-06-23T11:12:01.511Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "2010",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"7da-HOi3tBNfNTUhiZvtdxx2o67ALhk\"",
                "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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "f_partner_id": "50c77720-0e5e-4f8a-81f5-d5a2caf1ecad",
                  "partner_name": "Fixed",
                  "partner_code": "FIX",
                  "partner_referral_link": "https://www.partner-a.com/referral",
                  "partner_logo": "https://www.partner-a.com/logo.png",
                  "partner_email": "contact@partner-a.comm",
                  "partner_type": "Affiliate",
                  "partner_url": "https://user-app.dev.fixerra.in",
                  "partner_is_primary": true,
                  "partner_payment_link": "https://user-app.dev.fixerra.in/paymentStatus",
                  "custom_payment_url_enabled": true,
                  "settings": {
                    "mail": {
                      "address": "mail@partner.com",
                      "disclaimer": "This is a disclaimer text.",
                      "support_email": "support@partner.com"
                    },
                    "issuerEnabled": {
                      "fd": {
                        "baj": true,
                        "iib": true,
                        "mah": true,
                        "shri": true,
                        "ssfb": true,
                        "usfb": true,
                        "ausfb": true
                      },
                      "otherProducts": {}
                    },
                    "initiationPoint": "home",
                    "pageConfig": {
                      "home": [
                        "PORTFOLIO",
                        "USER_JOURNEY",
                        "COLLECTION",
                        "FD_PLAN",
                        "INVESTMENT_PLAN",
                        "COMPARE_FD"
                      ]
                    },
                    "webhook_config": {
                      "insights_relay_webhook": {
                        "url": "https://webhook.site/c0fa03f0-4ccb-4fb5-be5d-fe9b3f455987",
                        "method": "POST",
                        "headers": {
                          "Content-Type": "application/json"
                        }
                      }
                    },
                    "issuer_settings": {
                      "fd": {
                        "USFB": {
                          "FLOW": "FD",
                          "BROKER_CODE": "BROKER_CODE"
                        }
                      }
                    },
                    "is_payment_intent": false,
                    "is_payment_checkout": true
                  },
                  "partner_client_secret": "$2b$10$GrAxnmQxbYbu2tdZB0BoB.FosFP0ydfZ9nMVWWYXsZGLfPpU/vxcG",
                  "partner_public_key": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA63x5T9KMSgVFmQ+44kPE\neWEBdEiqoWF2MHrJyNyD0Y74i+w2QMwi6+/19vhdtYVXilJ7vhOBGQVlHASEqkqf\nIlg7dARRaGYz3XHdyI6btv81bqZ+xXn/7rmmW/nqtYlVXjsy82Beuer8keuRar+r\nRZRgFNsdDyRjAGIKFZ28o7aCrwl6EmPUgjRQSJDRQgM0cpoFcw3FjdW9OXbyB6No\nRKTM5vEbIpbJgt4nby3RD+1R4n+VGe2RGw5TGvYAVOi1EI6Wq1Ghgf1QAU6AFRsH\n1uVo/1nk8zpIOgLMP2OBXddz87KsyMrfS5/2eVIDK+IzNtsFMwQO5wvGlXwZ2Ar+\n4Z5jx82jCt6sC3PZH7Dlj8axSKf6xihNJJa1UBmbf3GCMPaY17Si/K0wshp3UZIx\nbiHKFMiFoMdbubv8/zCVhpXd9yC0E8oNGYvz+IYvuhoqgmXG3at8svOn5d5tq7Q2\nyEmTozjNZKiQUfJBKjg3gkCQqfk83qpjIhTehPnom1tdAgMBAAE=\n-----END PUBLIC KEY-----\n",
                  "sub_broker_url": "https://sub-broker.dev.fixerra.in"
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/partners/50c77720-0e5e-4f8a-81f5-d5a2caf1ecad' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain basic partner payload",
                  "passed": true,
                  "message": "success=1, statusCode=200, basic partner payload"
                },
                {
                  "description": "Without include_enabled_issuers, enabled_issuers should be absent or empty",
                  "passed": true,
                  "message": "No enabled_issuers returned (expected without flag)"
                }
              ],
              "docsFile": "master-services/API_QA_REVIEW_GET_CONFIG.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_PAGE_EDGE_002",
              "caseName": "Partner config with include_enabled_issuers=false returns basic data",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/partners/50c77720-0e5e-4f8a-81f5-d5a2caf1ecad",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.512Z",
              "endedAt": "2026-06-23T11:12:01.572Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "include_enabled_issuers": "false"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "2665",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"a69-KgZEPG2Seo2Y8ERtcEJwxshGwv8\"",
                "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": "15",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "f_partner_id": "50c77720-0e5e-4f8a-81f5-d5a2caf1ecad",
                  "partner_name": "Fixed",
                  "partner_code": "FIX",
                  "partner_referral_link": "https://www.partner-a.com/referral",
                  "partner_logo": "https://www.partner-a.com/logo.png",
                  "partner_email": "contact@partner-a.comm",
                  "partner_type": "Affiliate",
                  "partner_url": "https://user-app.dev.fixerra.in",
                  "partner_is_primary": true,
                  "partner_payment_link": "https://user-app.dev.fixerra.in/paymentStatus",
                  "custom_payment_url_enabled": true,
                  "settings": {
                    "mail": {
                      "address": "mail@partner.com",
                      "disclaimer": "This is a disclaimer text.",
                      "support_email": "support@partner.com"
                    },
                    "issuerEnabled": {
                      "fd": {
                        "baj": true,
                        "iib": true,
                        "mah": true,
                        "shri": true,
                        "ssfb": true,
                        "usfb": true,
                        "ausfb": true
                      },
                      "otherProducts": {}
                    },
                    "initiationPoint": "home",
                    "pageConfig": {
                      "home": [
                        "PORTFOLIO",
                        "USER_JOURNEY",
                        "COLLECTION",
                        "FD_PLAN",
                        "INVESTMENT_PLAN",
                        "COMPARE_FD"
                      ]
                    },
                    "webhook_config": {
                      "insights_relay_webhook": {
                        "url": "https://webhook.site/c0fa03f0-4ccb-4fb5-be5d-fe9b3f455987",
                        "method": "POST",
                        "headers": {
                          "Content-Type": "application/json"
                        }
                      }
                    },
                    "issuer_settings": {
                      "fd": {
                        "USFB": {
                          "FLOW": "FD",
                          "BROKER_CODE": "BROKER_CODE"
                        }
                      }
                    },
                    "is_payment_intent": false,
                    "is_payment_checkout": true
                  },
                  "enabled_issuers": [
                    "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                    "3c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                    "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                    "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "1c8c51f3-4e4e-4b60-869d-8f82e07b5f6b",
                    "550e8400-e29b-41d4-a716-446655440000"
                  ],
                  "enabledPages": [
                    "home",
                    "explore",
                    "best_rates",
                    "women_benefits",
                    "tax_saver",
                    "issuer_fds",
                    "fd_detail",
                    "fd_amount",
                    "fd_tenure",
                    "fd_pay",
                    "fd_status",
                    "profile",
                    "portfolio",
                    "portfolio_fd"
                  ],
                  "allPages": [
                    "home",
                    "explore",
                    "best_rates",
                    "women_benefits",
                    "tax_saver",
                    "issuer_fds",
                    "fd_detail",
                    "fd_amount",
                    "fd_tenure",
                    "fd_pay",
                    "fd_status",
                    "profile",
                    "portfolio",
                    "portfolio_fd"
                  ],
                  "partner_client_secret": "$2b$10$GrAxnmQxbYbu2tdZB0BoB.FosFP0ydfZ9nMVWWYXsZGLfPpU/vxcG",
                  "partner_public_key": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA63x5T9KMSgVFmQ+44kPE\neWEBdEiqoWF2MHrJyNyD0Y74i+w2QMwi6+/19vhdtYVXilJ7vhOBGQVlHASEqkqf\nIlg7dARRaGYz3XHdyI6btv81bqZ+xXn/7rmmW/nqtYlVXjsy82Beuer8keuRar+r\nRZRgFNsdDyRjAGIKFZ28o7aCrwl6EmPUgjRQSJDRQgM0cpoFcw3FjdW9OXbyB6No\nRKTM5vEbIpbJgt4nby3RD+1R4n+VGe2RGw5TGvYAVOi1EI6Wq1Ghgf1QAU6AFRsH\n1uVo/1nk8zpIOgLMP2OBXddz87KsyMrfS5/2eVIDK+IzNtsFMwQO5wvGlXwZ2Ar+\n4Z5jx82jCt6sC3PZH7Dlj8axSKf6xihNJJa1UBmbf3GCMPaY17Si/K0wshp3UZIx\nbiHKFMiFoMdbubv8/zCVhpXd9yC0E8oNGYvz+IYvuhoqgmXG3at8svOn5d5tq7Q2\nyEmTozjNZKiQUfJBKjg3gkCQqfk83qpjIhTehPnom1tdAgMBAAE=\n-----END PUBLIC KEY-----\n",
                  "sub_broker_url": "https://sub-broker.dev.fixerra.in"
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/partners/50c77720-0e5e-4f8a-81f5-d5a2caf1ecad?include_enabled_issuers=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": "Fixerra success envelope should contain partner data without issuers",
                  "passed": true,
                  "message": "success=1, statusCode=200, partner data without issuers"
                }
              ],
              "docsFile": "master-services/API_QA_REVIEW_GET_CONFIG.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_VEH_001",
              "caseName": "Get SSFB investment vehicle by ID with full detail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/investment-vehicle/f963c40e-87e5-402b-9998-4a89eeb71cb6",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.572Z",
              "endedAt": "2026-06-23T11:12:01.586Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "955",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"3bb-a1XpgKMEipAnU7t2ADVApanvH2U\"",
                "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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 41099,
                  "f_product_id": "",
                  "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                  "f_investment_vehicle_id": "f963c40e-87e5-402b-9998-4a89eeb71cb6",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": 6,
                  "product_min_tenure": 913,
                  "product_max_tenure": 913,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-03-28T00: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": "7 days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "8.10",
                  "schema_code": "",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "30 Months",
                  "is_visible": true,
                  "product_tag": "",
                  "permature_penalty": "",
                  "yield": "8.88",
                  "product_interest_pa_raw": null
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/investment-vehicle/f963c40e-87e5-402b-9998-4a89eeb71cb6' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain full investment vehicle payload with interest rate",
                  "passed": true,
                  "message": "success=1, statusCode=200, full investment vehicle payload with interest rate"
                }
              ],
              "docsFile": "master-services/API_QA_GET_INVESTMENT_VEHICLE_BY_ID.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_VEH_AUTH_001",
              "caseName": "Investment vehicle should reject request without auth",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/investment-vehicle/f963c40e-87e5-402b-9998-4a89eeb71cb6",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:01.587Z",
              "endedAt": "2026-06-23T11:12:01.592Z",
              "durationMs": 5,
              "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:12:01 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/investment-vehicle/f963c40e-87e5-402b-9998-4a89eeb71cb6' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "HTTP status should be 401",
                  "passed": true,
                  "message": "Got 401"
                },
                {
                  "description": "UserJwtGuard should block unauthenticated request",
                  "passed": true,
                  "message": "Access denied for unauthenticated request"
                }
              ],
              "docsFile": "master-services/API_QA_GET_INVESTMENT_VEHICLE_BY_ID.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_VEH_NEG_001",
              "caseName": "Investment vehicle with non-existent UUID should return FIXMAS005",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/investment-vehicle/00000000-0000-0000-0000-000000000000",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.592Z",
              "endedAt": "2026-06-23T11:12:01.615Z",
              "durationMs": 23,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "69",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"45-bHvW0CHQvGI/rtTcU1RyIb8qC3U\"",
                "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": "14",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 500,
                "message": "Server Error.",
                "payload": {}
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/investment-vehicle/00000000-0000-0000-0000-000000000000' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 500",
                  "passed": true,
                  "message": "body.statusCode=500"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                }
              ],
              "docsFile": "master-services/API_QA_GET_INVESTMENT_VEHICLE_BY_ID.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_VEH_NEG_002",
              "caseName": "Investment vehicle with invalid UUID format returns error",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/investment-vehicle/not-a-valid-uuid",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.615Z",
              "endedAt": "2026-06-23T11:12:01.628Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "69",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"45-bHvW0CHQvGI/rtTcU1RyIb8qC3U\"",
                "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": "5",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 500,
                "message": "Server Error.",
                "payload": {}
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/investment-vehicle/not-a-valid-uuid' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                }
              ],
              "docsFile": "master-services/API_QA_GET_INVESTMENT_VEHICLE_BY_ID.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_VEH_EDGE_001",
              "caseName": "Investment vehicle with event=true returns lightweight response",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/investment-vehicle/f963c40e-87e5-402b-9998-4a89eeb71cb6",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.628Z",
              "endedAt": "2026-06-23T11:12:01.635Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "event": "true"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "180",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"b4-KsrkIQF8z9UORp2aiQs2pSf/d6A\"",
                "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": "3",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                  "f_investment_vehicle_id": "f963c40e-87e5-402b-9998-4a89eeb71cb6"
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/investment-vehicle/f963c40e-87e5-402b-9998-4a89eeb71cb6?event=true' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain lightweight vehicle payload (f_investment_vehicle_id + f_issuer_id only)",
                  "passed": true,
                  "message": "success=1, statusCode=200, lightweight vehicle payload (f_investment_vehicle_id + f_issuer_id only)"
                }
              ],
              "docsFile": "master-services/API_QA_GET_INVESTMENT_VEHICLE_BY_ID.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_VEH_EDGE_002",
              "caseName": "Investment vehicle with event=false returns full response",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/investment-vehicle/f963c40e-87e5-402b-9998-4a89eeb71cb6",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.637Z",
              "endedAt": "2026-06-23T11:12:01.648Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "event": "false"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "955",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"3bb-a1XpgKMEipAnU7t2ADVApanvH2U\"",
                "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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 41099,
                  "f_product_id": "",
                  "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                  "f_investment_vehicle_id": "f963c40e-87e5-402b-9998-4a89eeb71cb6",
                  "product_details": "",
                  "product_type": "FD",
                  "product_rank": 6,
                  "product_min_tenure": 913,
                  "product_max_tenure": 913,
                  "product_min_investment": 1000,
                  "product_max_investment": 29999999,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-03-28T00: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": "7 days",
                  "product_interest_freq": "Yearly",
                  "product_interest": "8.10",
                  "schema_code": "",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "30 Months",
                  "is_visible": true,
                  "product_tag": "",
                  "permature_penalty": "",
                  "yield": "8.88",
                  "product_interest_pa_raw": null
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/investment-vehicle/f963c40e-87e5-402b-9998-4a89eeb71cb6?event=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": "Fixerra success envelope should contain full investment vehicle payload with all product fields",
                  "passed": true,
                  "message": "success=1, statusCode=200, full investment vehicle payload with all product fields"
                }
              ],
              "docsFile": "master-services/API_QA_GET_INVESTMENT_VEHICLE_BY_ID.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_ABOUT_001",
              "caseName": "Get SSFB issuer about content with about/stats/faq sections",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/about/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.649Z",
              "endedAt": "2026-06-23T11:12:01.660Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "886",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"376-ZL0ryNI5t1vggd4SYd7GhaprV2E\"",
                "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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "about": {
                    "name": "Suryoday Small Finance Bank",
                    "title": "ABOUT THIS FIXED DEPOSIT",
                    "description": "Suryoday Small Finance Bank has assets under management (AUM) of ~₹6,000 Crores and serves over 24.3 lakh customers. It operates 520+ branches and was founded in 2017. The bank is listed on the NSE and BSE, reinforcing its strong presence in the market.",
                    "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d"
                  },
                  "stats": [
                    {
                      "title": "CRISIL Rating",
                      "value": "24.3 lakh"
                    },
                    {
                      "title": "Trusted Users"
                    }
                  ],
                  "faq": [
                    {
                      "question": "When will my interest amount be paid for Unity Small Finance Bank Ltd. FD?",
                      "answers": [
                        "Test"
                      ]
                    },
                    {
                      "question": "When will my interest amount be paid for Unity Small Finance Bank Ltd. FD?",
                      "answers": [
                        "Test"
                      ]
                    },
                    {
                      "question": "When will my interest amount be paid for Unity Small Finance Bank Ltd. FD?",
                      "answers": [
                        "Test"
                      ]
                    }
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/about/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain about with all 3 sections (about+stats+faq)",
                  "passed": true,
                  "message": "success=1, statusCode=200, about with all 3 sections (about+stats+faq)"
                },
                {
                  "description": "about section should contain issuer name",
                  "passed": true,
                  "message": "Issuer name: Suryoday Small Finance Bank"
                },
                {
                  "description": "stats should be an array with CRISIL rating",
                  "passed": true,
                  "message": "stats: [{\"title\":\"CRISIL Rating\",\"value\":\"24.3 lakh\"},{\"title\":\"Trusted Users\"}]"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ABOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_ABOUT_AUTH_001",
              "caseName": "Issuer about should reject request without auth",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/about/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:01.660Z",
              "endedAt": "2026-06-23T11:12:01.667Z",
              "durationMs": 7,
              "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:12:01 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/about/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "HTTP status should be 401",
                  "passed": true,
                  "message": "Got 401"
                },
                {
                  "description": "UserJwtGuard should block unauthenticated request",
                  "passed": true,
                  "message": "Access denied"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ABOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_ABOUT_NEG_001",
              "caseName": "Issuer about should return FIXMAS006 for empty issuer ID",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/about/",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.667Z",
              "endedAt": "2026-06-23T11:12:01.700Z",
              "durationMs": 33,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "176",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"b0-uBM7zNsytKvRS35jbx9MFoOVZS8\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS001",
                    "error": "Issuer doesn't exists"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/about/' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ABOUT.md",
              "expectedErrorCodes": [
                "FIXMAS006"
              ],
              "actualErrorCodes": [
                "FIXMAS001"
              ]
            },
            {
              "caseId": "FD_DETAIL_ABOUT_NEG_002",
              "caseName": "Issuer about should return error for unknown issuer ID",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/about/00000000-0000-0000-0000-000000000000",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.701Z",
              "endedAt": "2026-06-23T11:12:01.717Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "176",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"b0-uBM7zNsytKvRS35jbx9MFoOVZS8\"",
                "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": "FIXMAS001",
                    "error": "Issuer doesn't exists"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/about/00000000-0000-0000-0000-000000000000' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ABOUT.md",
              "expectedErrorCodes": [
                "FIXMAS001"
              ],
              "actualErrorCodes": [
                "FIXMAS001"
              ]
            },
            {
              "caseId": "FD_DETAIL_ABOUT_EDGE_001",
              "caseName": "Issuer about with RD product_type returns RD-tailored content",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/about/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.717Z",
              "endedAt": "2026-06-23T11:12:01.734Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "product_type": "RD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "965",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"3c5-lg6HljRUYAxYl/9TLQzCiknaaUE\"",
                "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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "about": {
                    "name": "Suryoday Small Finance Bank",
                    "title": "ABOUT THIS RECURRING DEPOSIT",
                    "description": "Suryoday, a new beginning and this encompasses our strong commitment to financial inclusion. Driven by the mission to help 1% of Indian households aiming for a brighter financial future, Suryoday Small Finance Bank, a new-age digital bank, is focused on delivering the best-in-class customer experience of world-class banking.",
                    "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d"
                  },
                  "stats": [
                    {
                      "title": "CRISIL Rating",
                      "value": "24.3 lakh"
                    },
                    {
                      "title": "Trusted Users"
                    }
                  ],
                  "faq": [
                    {
                      "question": "When will my interest amount be paid for Unity Small Finance Bank Ltd. FD?",
                      "answers": [
                        "Test"
                      ]
                    },
                    {
                      "question": "When will my interest amount be paid for Unity Small Finance Bank Ltd. FD?",
                      "answers": [
                        "Test"
                      ]
                    },
                    {
                      "question": "When will my interest amount be paid for Unity Small Finance Bank Ltd. FD?",
                      "answers": [
                        "Test"
                      ]
                    }
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/about/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d?product_type=RD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain RD about with all sections",
                  "passed": true,
                  "message": "success=1, statusCode=200, RD about with all sections"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ABOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_ABOUT_EDGE_002",
              "caseName": "Issuer about without product_type defaults to FD",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/about/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.737Z",
              "endedAt": "2026-06-23T11:12:01.751Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "886",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"376-ZL0ryNI5t1vggd4SYd7GhaprV2E\"",
                "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": "3",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "about": {
                    "name": "Suryoday Small Finance Bank",
                    "title": "ABOUT THIS FIXED DEPOSIT",
                    "description": "Suryoday Small Finance Bank has assets under management (AUM) of ~₹6,000 Crores and serves over 24.3 lakh customers. It operates 520+ branches and was founded in 2017. The bank is listed on the NSE and BSE, reinforcing its strong presence in the market.",
                    "f_issuer_id": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d"
                  },
                  "stats": [
                    {
                      "title": "CRISIL Rating",
                      "value": "24.3 lakh"
                    },
                    {
                      "title": "Trusted Users"
                    }
                  ],
                  "faq": [
                    {
                      "question": "When will my interest amount be paid for Unity Small Finance Bank Ltd. FD?",
                      "answers": [
                        "Test"
                      ]
                    },
                    {
                      "question": "When will my interest amount be paid for Unity Small Finance Bank Ltd. FD?",
                      "answers": [
                        "Test"
                      ]
                    },
                    {
                      "question": "When will my interest amount be paid for Unity Small Finance Bank Ltd. FD?",
                      "answers": [
                        "Test"
                      ]
                    }
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/about/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain FD about content",
                  "passed": true,
                  "message": "success=1, statusCode=200, FD about content"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ABOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_FAQ_001",
              "caseName": "Get SSFB issuer FAQ with full FAQ payload",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/site-settings/faq/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.752Z",
              "endedAt": "2026-06-23T11:12:01.765Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "2496",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"9c0-s4D4twElNJjWEaDkDxdrnIVlmq0\"",
                "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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "createdAt": "2024-01-09T10:41:01.856Z",
                    "updatedAt": "2024-09-18T07:13:47.516Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 91,
                    "category": "faq",
                    "key": "Will a Savings account be opened while booking a FD in Suryoday Small Finance Bank?",
                    "value": "No, a savings account will not be opened when booking an FD with Suryoday Small Finance Bank.",
                    "product_type": "FD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": "",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  },
                  {
                    "createdAt": "2024-02-06T05:26:30.401Z",
                    "updatedAt": "2024-09-18T07:13:47.609Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 92,
                    "category": "faq",
                    "key": "Is Video KYC required for this FD?",
                    "value": "For first-time customers, Video KYC is required only if the investment amount exceeds ₹90,000 and the tenure is longer than 1 year. For repeat customers, Video KYC is compulsory if it was not completed during the first FD booking.",
                    "product_type": "FD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": " ",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  },
                  {
                    "createdAt": "2024-02-06T05:27:37.871Z",
                    "updatedAt": "2024-09-18T07:13:47.695Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 93,
                    "category": "faq",
                    "key": "Where is my money deposited?",
                    "value": "Your money will be directly transferred to Suryoday Small Finance Bank.",
                    "product_type": "FD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": " ",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  },
                  {
                    "createdAt": "2025-10-13T11:06:46.000Z",
                    "updatedAt": "2025-10-13T11:06:46.000Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 161,
                    "category": "faq",
                    "key": "Can I withdraw my Fixed Deposit prematurely?",
                    "value": "<div style=\"\"><p style=\"\">A: There is no penalty on the principal amount.</p><ul style=\"list-style-type: disc; padding-left: 20px; margin: 0;\"><li style=\"margin-bottom: 12px;\">You will receive your full principal amount.</li><li style=\"margin-bottom: 12px;\">Interest will be paid at the applicable rate for the holding period, minus a 1% penalty deducted from the earned interest.</li></ul></div>",
                    "product_type": "FD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": "",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/site-settings/faq/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain FAQ payload array",
                  "passed": true,
                  "message": "success=1, statusCode=200, FAQ payload array"
                },
                {
                  "description": "Each FAQ item should have question+answer or key+value fields",
                  "passed": true,
                  "message": "4 FAQ items with valid keys"
                }
              ],
              "docsFile": "master-services/API_QA_GET_SITE_SETTINGS_FAQ.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_FAQ_AUTH_001",
              "caseName": "FAQ should reject request without auth",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/site-settings/faq/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:01.765Z",
              "endedAt": "2026-06-23T11:12:01.774Z",
              "durationMs": 9,
              "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:12:01 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/site-settings/faq/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "HTTP status should be 401",
                  "passed": true,
                  "message": "Got 401"
                },
                {
                  "description": "UserJwtGuard should block unauthenticated request",
                  "passed": true,
                  "message": "Access denied"
                }
              ],
              "docsFile": "master-services/API_QA_GET_SITE_SETTINGS_FAQ.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_FAQ_NEG_001",
              "caseName": "FAQ for unknown issuer returns empty array with success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/site-settings/faq/00000000-0000-0000-0000-000000000000",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.774Z",
              "endedAt": "2026-06-23T11:12:01.785Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "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:12:01 GMT",
                "etag": "W/\"3f-oCPC8DEMdT63LEPOmlpkObbO8j8\"",
                "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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": []
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/site-settings/faq/00000000-0000-0000-0000-000000000000' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain empty FAQ array for unknown issuer",
                  "passed": true,
                  "message": "success=1, statusCode=200, empty FAQ array for unknown issuer"
                }
              ],
              "docsFile": "master-services/API_QA_GET_SITE_SETTINGS_FAQ.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_FAQ_EDGE_001",
              "caseName": "FAQ with RD product_type returns RD-specific FAQs",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/site-settings/faq/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.786Z",
              "endedAt": "2026-06-23T11:12:01.798Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "product_type": "RD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1820",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"71c-BjH/1ZjEOTOBvTGif3yQgn138M8\"",
                "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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "createdAt": "2024-01-09T10:41:01.856Z",
                    "updatedAt": "2024-09-12T20:57:44.834Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 103,
                    "category": "faq",
                    "key": "Is it good to open Recurring Deposit?",
                    "value": "A significant benefit of opting for RDs is that they generally offer higher interest rates than regular Savings Accounts, resulting in greater returns on your savings. The interest rates on RD Accounts may differ based on factors like the bank, deposit duration and the age of the depositor.",
                    "product_type": "RD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": "",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  },
                  {
                    "createdAt": "2024-02-06T05:26:30.401Z",
                    "updatedAt": "2024-09-03T16:59:16.141Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 104,
                    "category": "faq",
                    "key": "Is RD interest taxable?",
                    "value": "Recurring Deposits attract no tax exemptions. Income tax has to be paid on the Interest amount received from Recurring Deposits. The tax has to be paid at the rate of the tax slab of the RD holder.",
                    "product_type": "RD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": " ",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  },
                  {
                    "createdAt": "2024-02-06T05:27:37.871Z",
                    "updatedAt": "2024-09-11T05:45:43.757Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 105,
                    "category": "faq",
                    "key": "Is RD deducted automatically?",
                    "value": "Yes, monthly instalments for the RD can be automatically deducted by enabling auto-debit option.",
                    "product_type": "RD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": " ",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/site-settings/faq/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d?product_type=RD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain RD FAQ payload",
                  "passed": true,
                  "message": "success=1, statusCode=200, RD FAQ payload"
                }
              ],
              "docsFile": "master-services/API_QA_GET_SITE_SETTINGS_FAQ.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_FAQ_EDGE_002",
              "caseName": "FAQ without product_type defaults to FD",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/site-settings/faq/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.799Z",
              "endedAt": "2026-06-23T11:12:01.809Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "2496",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:01 GMT",
                "etag": "W/\"9c0-s4D4twElNJjWEaDkDxdrnIVlmq0\"",
                "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": "5",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "createdAt": "2024-01-09T10:41:01.856Z",
                    "updatedAt": "2024-09-18T07:13:47.516Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 91,
                    "category": "faq",
                    "key": "Will a Savings account be opened while booking a FD in Suryoday Small Finance Bank?",
                    "value": "No, a savings account will not be opened when booking an FD with Suryoday Small Finance Bank.",
                    "product_type": "FD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": "",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  },
                  {
                    "createdAt": "2024-02-06T05:26:30.401Z",
                    "updatedAt": "2024-09-18T07:13:47.609Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 92,
                    "category": "faq",
                    "key": "Is Video KYC required for this FD?",
                    "value": "For first-time customers, Video KYC is required only if the investment amount exceeds ₹90,000 and the tenure is longer than 1 year. For repeat customers, Video KYC is compulsory if it was not completed during the first FD booking.",
                    "product_type": "FD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": " ",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  },
                  {
                    "createdAt": "2024-02-06T05:27:37.871Z",
                    "updatedAt": "2024-09-18T07:13:47.695Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 93,
                    "category": "faq",
                    "key": "Where is my money deposited?",
                    "value": "Your money will be directly transferred to Suryoday Small Finance Bank.",
                    "product_type": "FD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": " ",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  },
                  {
                    "createdAt": "2025-10-13T11:06:46.000Z",
                    "updatedAt": "2025-10-13T11:06:46.000Z",
                    "deletedAt": null,
                    "createdBy": null,
                    "updatedBy": null,
                    "deletedBy": null,
                    "isActive": true,
                    "id": 161,
                    "category": "faq",
                    "key": "Can I withdraw my Fixed Deposit prematurely?",
                    "value": "<div style=\"\"><p style=\"\">A: There is no penalty on the principal amount.</p><ul style=\"list-style-type: disc; padding-left: 20px; margin: 0;\"><li style=\"margin-bottom: 12px;\">You will receive your full principal amount.</li><li style=\"margin-bottom: 12px;\">Interest will be paid at the applicable rate for the holding period, minus a 1% penalty deducted from the earned interest.</li></ul></div>",
                    "product_type": "FD",
                    "issuer": "4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d",
                    "ranking": 0,
                    "description": "",
                    "meta": null,
                    "effective_dt": null,
                    "ineffective_dt": null
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/site-settings/faq/4c8c51f3-4e4e-4b60-869d-8f82e07b5f6d' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Fixerra success envelope should contain default FD FAQ array",
                  "passed": true,
                  "message": "success=1, statusCode=200, default FD FAQ array"
                }
              ],
              "docsFile": "master-services/API_QA_GET_SITE_SETTINGS_FAQ.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_INS_001",
              "caseName": "Get latest user insights for SSFB FD journey resume",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/insights",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:01.809Z",
              "endedAt": "2026-06-23T11:12:02.522Z",
              "durationMs": 713,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-user-id": "b08d59c5-5c7d-467b-b1f5-6c87bc361ba4",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "product_type": "FD"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "11",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:02 GMT",
                "etag": "W/\"b-EFAlOux7Kcr/ZEgGkn2r+oFAbu4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "707",
                "server": "envoy"
              },
              "responseBody": {
                "data": []
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/insights?product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-user-id: b08d59c5-5c7d-467b-b1f5-6c87bc361ba4' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Insights response should contain data array; journey_states appears only after an event exists",
                  "passed": true,
                  "message": "data=0, journey_states not required for new user"
                },
                {
                  "description": "Each data item should have last_state with state name",
                  "passed": true,
                  "message": "No data items (valid for new user)"
                }
              ],
              "docsFile": "user-services/API_QA_GET_INSIGHTS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_INS_AUTH_001",
              "caseName": "Insights should reject request without auth",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/insights",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:02.522Z",
              "endedAt": "2026-06-23T11:12:02.600Z",
              "durationMs": 78,
              "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:12:02 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": "74",
                "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/api/v1/insights' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "HTTP status should be 401",
                  "passed": true,
                  "message": "Got 401"
                },
                {
                  "description": "Multiple guards should block unauthenticated request",
                  "passed": true,
                  "message": "Access denied"
                }
              ],
              "docsFile": "user-services/API_QA_GET_INSIGHTS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_INS_EDGE_001",
              "caseName": "Insights without product_type defaults to FD",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/insights",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:02.600Z",
              "endedAt": "2026-06-23T11:12:03.434Z",
              "durationMs": 834,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-user-id": "b08d59c5-5c7d-467b-b1f5-6c87bc361ba4",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "11",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:03 GMT",
                "etag": "W/\"b-EFAlOux7Kcr/ZEgGkn2r+oFAbu4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "831",
                "server": "envoy"
              },
              "responseBody": {
                "data": []
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/insights' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-user-id: b08d59c5-5c7d-467b-b1f5-6c87bc361ba4' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Should return data without product_type specified",
                  "passed": true,
                  "message": "data items: 0"
                }
              ],
              "docsFile": "user-services/API_QA_GET_INSIGHTS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_INS_EDGE_002",
              "caseName": "Insights with RD product_type returns RD journey data",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/insights",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:03.434Z",
              "endedAt": "2026-06-23T11:12:03.638Z",
              "durationMs": 204,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-user-id": "b08d59c5-5c7d-467b-b1f5-6c87bc361ba4",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "product_type": "RD"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "11",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:03 GMT",
                "etag": "W/\"b-EFAlOux7Kcr/ZEgGkn2r+oFAbu4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "200",
                "server": "envoy"
              },
              "responseBody": {
                "data": []
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/insights?product_type=RD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-user-id: b08d59c5-5c7d-467b-b1f5-6c87bc361ba4' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Should return RD insights envelope; empty data is valid when no RD event was created",
                  "passed": true,
                  "message": "RD data items: 0"
                }
              ],
              "docsFile": "user-services/API_QA_GET_INSIGHTS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_INS_NEG_001",
              "caseName": "Insights with invalid product_type should handle gracefully",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/insights",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:03.638Z",
              "endedAt": "2026-06-23T11:12:03.757Z",
              "durationMs": 119,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-user-id": "b08d59c5-5c7d-467b-b1f5-6c87bc361ba4",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "product_type": "INVALID"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "11",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:03 GMT",
                "etag": "W/\"b-EFAlOux7Kcr/ZEgGkn2r+oFAbu4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "115",
                "server": "envoy"
              },
              "responseBody": {
                "data": []
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/insights?product_type=INVALID' \\\n  -H 'Content-Type: application/json' \\\n  -H 'x-partner-user-id: b08d59c5-5c7d-467b-b1f5-6c87bc361ba4' \\\n  -H 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Should return response even with invalid product_type",
                  "passed": true,
                  "message": "Response OK with 0 items"
                }
              ],
              "docsFile": "user-services/API_QA_GET_INSIGHTS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_AUTH_001",
              "caseName": "Maturity amount should reject request without auth headers",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:03.757Z",
              "endedAt": "2026-06-23T11:12:03.763Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:12:03 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": "2",
                "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/SSFB?tenure=365&investment_amount=50000&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": "Got 401"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_001",
              "caseName": "SSFB page default maturity calculator request succeeds",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:03.763Z",
              "endedAt": "2026-06-23T11:12:03.950Z",
              "durationMs": 187,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "913",
                "investment_amount": "90000",
                "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": "463",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:03 GMT",
                "etag": "W/\"1cf-kHSVvD8Z86cO/Ba6rHEuFoMHjvk\"",
                "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": "185",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "8.10",
                "payout_frequency": "Maturity",
                "maturity_date": "2028-12-22",
                "maturity_date_ist": "2028-12-22",
                "f_investment_vehicle_id": "f963c40e-87e5-402b-9998-4a89eeb71cb6",
                "average_yield": "8.88",
                "product_min_investment": 1000,
                "product_max_investment": 29999999,
                "product_min_tenure": 913,
                "product_max_tenure": 913,
                "product_min_tenure_label": "30 Months",
                "payout": [
                  {
                    "year": 2028,
                    "data": [
                      {
                        "date": "2028-12-22",
                        "amount": 109990.77
                      }
                    ]
                  }
                ],
                "maturity_amount": 109990.77
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=913&investment_amount=90000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\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 be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Maturity",
                  "passed": true,
                  "message": "payout_frequency=Maturity"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Cumulative response should expose maturity_amount only",
                  "passed": true,
                  "message": "cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_002",
              "caseName": "SSFB maturity accepts min tenure and min investment",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:03.950Z",
              "endedAt": "2026-06-23T11:12:04.113Z",
              "durationMs": 163,
              "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",
                "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:12:04 GMT",
                "etag": "W/\"1c5-mpYGWj9xtAAtBLpOP3lCWaqewLI\"",
                "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": "159",
                "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": "54aa5895-e8cc-4dd6-b0b6-5b7bf069ee97",
                "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/SSFB?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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Response should be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Maturity",
                  "passed": true,
                  "message": "payout_frequency=Maturity"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Cumulative response should expose maturity_amount only",
                  "passed": true,
                  "message": "cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_003",
              "caseName": "SSFB maturity accepts high investment below issuer max",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:04.113Z",
              "endedAt": "2026-06-23T11:12:04.250Z",
              "durationMs": 137,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "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": "462",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:04 GMT",
                "etag": "W/\"1ce-q7iPTaAQuWWyj9t1Qu0+C5e7KVo\"",
                "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": {
                "product_interest": "7.25",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "9d8cbb5d-2241-4cb0-9d6f-0b5f7e03e96a",
                "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": 32234849.5
                      }
                    ]
                  }
                ],
                "maturity_amount": 32234849.5
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Response should be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Maturity",
                  "passed": true,
                  "message": "payout_frequency=Maturity"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Cumulative response should expose maturity_amount only",
                  "passed": true,
                  "message": "cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_004",
              "caseName": "SSFB maturity accepts upper tenure boundary used by QA docs",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:04.250Z",
              "endedAt": "2026-06-23T11:12:04.381Z",
              "durationMs": 131,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "1825",
                "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": "458",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:04 GMT",
                "etag": "W/\"1ca-bgDAz4J9dBHth8wjoBOmUedGJsw\"",
                "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": "127",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "7.90",
                "payout_frequency": "Maturity",
                "maturity_date": "2031-06-22",
                "maturity_date_ist": "2031-06-22",
                "f_investment_vehicle_id": "a4f467ae-2b5f-47f2-9908-6387f0adecf0",
                "average_yield": "9.57",
                "product_min_investment": 1000,
                "product_max_investment": 29999999,
                "product_min_tenure": 1825,
                "product_max_tenure": 1825,
                "product_min_tenure_label": "5 year",
                "payout": [
                  {
                    "year": 2031,
                    "data": [
                      {
                        "date": "2031-06-22",
                        "amount": 14786.8
                      }
                    ]
                  }
                ],
                "maturity_amount": 14786.8
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=1825&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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Response should be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Maturity",
                  "passed": true,
                  "message": "payout_frequency=Maturity"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Cumulative response should expose maturity_amount only",
                  "passed": true,
                  "message": "cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_005",
              "caseName": "SSFB monthly payout returns non-cumulative payout response",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:04.381Z",
              "endedAt": "2026-06-23T11:12:04.514Z",
              "durationMs": 133,
              "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",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "935",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:04 GMT",
                "etag": "W/\"3a7-q7clhlZDAjpCq3opg6di9FG1wUw\"",
                "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": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "2845eb93-1315-4a40-b2a7-ba71af626b32",
                "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.82
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 60.09
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 60.09
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 60.09
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 60.09
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 60.09
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 46.27
                      }
                    ]
                  }
                ],
                "payout_amount": 60,
                "total_payout": 720.64
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Response should be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Monthly",
                  "passed": true,
                  "message": "payout_frequency=Monthly"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Non-cumulative response should expose payout_amount and total_payout",
                  "passed": true,
                  "message": "non-cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_006",
              "caseName": "SSFB quarterly payout returns non-cumulative payout response",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:04.514Z",
              "endedAt": "2026-06-23T11:12:04.631Z",
              "durationMs": 117,
              "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",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "645",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:04 GMT",
                "etag": "W/\"285-Nl3KPjTC//2dYpSEuxubkYbDaTQ\"",
                "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": "114",
                "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": "881f6416-3ebb-49ee-bd2e-81a1177178d6",
                "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.35
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 181.35
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 181.35
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 167.45
                      }
                    ]
                  }
                ],
                "payout_amount": 181,
                "total_payout": 724.92
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Response should be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Quarterly",
                  "passed": true,
                  "message": "payout_frequency=Quarterly"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Non-cumulative response should expose payout_amount and total_payout",
                  "passed": true,
                  "message": "non-cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_007",
              "caseName": "SSFB senior citizen FD returns maturity response",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:04.632Z",
              "endedAt": "2026-06-23T11:12:04.803Z",
              "durationMs": 171,
              "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",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "458",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:04 GMT",
                "etag": "W/\"1ca-QI6HvJN+HXhq5OzK3LEVlv+mBAc\"",
                "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": "164",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "7.40",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "856bbef2-f496-458a-8f28-bd9cab7a64f9",
                "average_yield": "7.61",
                "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": 10760.79
                      }
                    ]
                  }
                ],
                "maturity_amount": 10760.79
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&investment_amount=10000&payout_frequency=Maturity&senior_citizen=true&women_citizen=false&tax_saver=false&product_type=FD' \\\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 be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Maturity",
                  "passed": true,
                  "message": "payout_frequency=Maturity"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Cumulative response should expose maturity_amount only",
                  "passed": true,
                  "message": "cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_008",
              "caseName": "SSFB RD product_type is accepted by maturity calculator",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:04.803Z",
              "endedAt": "2026-06-23T11:12:04.938Z",
              "durationMs": 135,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "false",
                "product_type": "RD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "455",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:04 GMT",
                "etag": "W/\"1c7-28/mssTC3mCcQyKmUrSjYynzhOw\"",
                "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": "131",
                "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": "91b83f6b-276f-4a6c-b0ec-e42178a2d330",
                "average_yield": null,
                "product_min_investment": 100,
                "product_max_investment": 50000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "12 months",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 53724.75
                      }
                    ]
                  }
                ],
                "maturity_amount": 53724.75
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&investment_amount=50000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=RD' \\\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 be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Maturity",
                  "passed": true,
                  "message": "payout_frequency=Maturity"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Cumulative response should expose maturity_amount only",
                  "passed": true,
                  "message": "cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_009",
              "caseName": "SSFB tax saver FD succeeds at exact 5-year tenure",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:04.938Z",
              "endedAt": "2026-06-23T11:12:05.045Z",
              "durationMs": 107,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "1825",
                "investment_amount": "10000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "true",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "456",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"1c8-lTpVe8s5nRR1vekmNtVZBpQyodo\"",
                "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": "7.90",
                "payout_frequency": "Maturity",
                "maturity_date": "2031-06-22",
                "maturity_date_ist": "2031-06-22",
                "f_investment_vehicle_id": "55733c72-e9ba-4a58-8082-6cc8c990fd36",
                "average_yield": "9.57",
                "product_min_investment": 1000,
                "product_max_investment": 150000,
                "product_min_tenure": 1825,
                "product_max_tenure": 1825,
                "product_min_tenure_label": "5 year",
                "payout": [
                  {
                    "year": 2031,
                    "data": [
                      {
                        "date": "2031-06-22",
                        "amount": 14786.8
                      }
                    ]
                  }
                ],
                "maturity_amount": 14786.8
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=1825&investment_amount=10000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=true&product_type=FD' \\\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 be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Maturity",
                  "passed": true,
                  "message": "payout_frequency=Maturity"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Cumulative response should expose maturity_amount only",
                  "passed": true,
                  "message": "cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_010",
              "caseName": "SSFB tax saver FD succeeds at 5-year max tax-saver amount",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.046Z",
              "endedAt": "2026-06-23T11:12:05.170Z",
              "durationMs": 124,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "1825",
                "investment_amount": "150000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "true",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "460",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"1cc-DMBqD2BQXMfZd9MSEycAEMneL9w\"",
                "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": "122",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "7.90",
                "payout_frequency": "Maturity",
                "maturity_date": "2031-06-22",
                "maturity_date_ist": "2031-06-22",
                "f_investment_vehicle_id": "55733c72-e9ba-4a58-8082-6cc8c990fd36",
                "average_yield": "9.57",
                "product_min_investment": 1000,
                "product_max_investment": 150000,
                "product_min_tenure": 1825,
                "product_max_tenure": 1825,
                "product_min_tenure_label": "5 year",
                "payout": [
                  {
                    "year": 2031,
                    "data": [
                      {
                        "date": "2031-06-22",
                        "amount": 221802.04
                      }
                    ]
                  }
                ],
                "maturity_amount": 221802.04
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=1825&investment_amount=150000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=true&product_type=FD' \\\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 be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Maturity",
                  "passed": true,
                  "message": "payout_frequency=Maturity"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Cumulative response should expose maturity_amount only",
                  "passed": true,
                  "message": "cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_011",
              "caseName": "SSFB job=true bypass accepts non-multiple investment amount",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.171Z",
              "endedAt": "2026-06-23T11:12:05.283Z",
              "durationMs": 112,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100500",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "false",
                "product_type": "FD",
                "job": "true"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "460",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"1cc-Xra1/NWhglXmZITR1djYLVpxdrg\"",
                "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": "7.25",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "9d8cbb5d-2241-4cb0-9d6f-0b5f7e03e96a",
                "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": 107986.75
                      }
                    ]
                  }
                ],
                "maturity_amount": 107986.75
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&investment_amount=100500&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD&job=true' \\\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 be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Maturity",
                  "passed": true,
                  "message": "payout_frequency=Maturity"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Cumulative response should expose maturity_amount only",
                  "passed": true,
                  "message": "cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_001",
              "caseName": "SSFB HalfYearly payout has no matching active vehicle",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.284Z",
              "endedAt": "2026-06-23T11:12:05.297Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "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:12:05 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": "11",
                "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/SSFB?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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_002",
              "caseName": "SSFB Yearly payout has no matching active vehicle",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.298Z",
              "endedAt": "2026-06-23T11:12:05.312Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "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:12:05 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": "11",
                "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/SSFB?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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_003",
              "caseName": "SSFB rejects investment above issuer max",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.312Z",
              "endedAt": "2026-06-23T11:12:05.326Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "30000000",
                "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:12:05 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": "10",
                "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/SSFB?tenure=365&investment_amount=30000000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS092",
                  "passed": true,
                  "message": "FIXMAS092 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS092"
              ],
              "actualErrorCodes": [
                "FIXMAS092"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_004",
              "caseName": "SSFB women_citizen=true has no matching active vehicle",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.326Z",
              "endedAt": "2026-06-23T11:12:05.338Z",
              "durationMs": 12,
              "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",
                "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:12:05 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/SSFB?tenure=365&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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_005",
              "caseName": "SSFB tax_saver=true has no matching active vehicle",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.338Z",
              "endedAt": "2026-06-23T11:12:05.351Z",
              "durationMs": 13,
              "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",
                "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:12:05 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/SSFB?tenure=365&investment_amount=10000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=true&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_006",
              "caseName": "SSFB tax saver FD rejects one day below 5-year tenure",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.351Z",
              "endedAt": "2026-06-23T11:12:05.363Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "1824",
                "investment_amount": "10000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "true",
                "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:12:05 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/SSFB?tenure=1824&investment_amount=10000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=true&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_007",
              "caseName": "SSFB tax saver FD rejects amount above 5-year tax-saver max",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.363Z",
              "endedAt": "2026-06-23T11:12:05.379Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "1825",
                "investment_amount": "151000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "true",
                "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:12:05 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": "13",
                "server": "envoy",
                "connection": "close"
              },
              "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/SSFB?tenure=1825&investment_amount=151000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=true&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_008",
              "caseName": "SSFB rejects tenure below active product range",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.379Z",
              "endedAt": "2026-06-23T11:12:05.405Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "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:12:05 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": "13",
                "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/SSFB?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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_009",
              "caseName": "SSFB rejects tenure above active product range",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.405Z",
              "endedAt": "2026-06-23T11:12:05.418Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "3650",
                "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:12:05 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/SSFB?tenure=3650&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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_010",
              "caseName": "Maturity amount should return FIXMAS066 when tenure is missing",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.418Z",
              "endedAt": "2026-06-23T11:12:05.424Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "investment_amount": "50000",
                "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": "195",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"c3-acSi0+V+oPy4lxbKkFByzOOgc8g\"",
                "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": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS066",
                    "error": "tenure is required. Please enter tenure."
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?investment_amount=50000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS066",
                  "passed": true,
                  "message": "FIXMAS066 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS066"
              ],
              "actualErrorCodes": [
                "FIXMAS066"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_011",
              "caseName": "Maturity amount should return FIXMAS067 when tenure is non-numeric",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.424Z",
              "endedAt": "2026-06-23T11:12:05.430Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "abc",
                "investment_amount": "50000",
                "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:12:05 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": "3",
                "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/SSFB?tenure=abc&investment_amount=50000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS067",
                  "passed": true,
                  "message": "FIXMAS067 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS067"
              ],
              "actualErrorCodes": [
                "FIXMAS067"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_012",
              "caseName": "Maturity amount should return FIXMAS067 when tenure is zero",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.430Z",
              "endedAt": "2026-06-23T11:12:05.434Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "0",
                "investment_amount": "50000",
                "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:12:05 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/SSFB?tenure=0&investment_amount=50000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS067",
                  "passed": true,
                  "message": "FIXMAS067 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS067"
              ],
              "actualErrorCodes": [
                "FIXMAS067"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_013",
              "caseName": "Maturity amount should return FIXMAS068 when investment_amount is missing",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.434Z",
              "endedAt": "2026-06-23T11:12:05.441Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "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": "217",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"d9-CE+h1K1rRFckkSI3gVMMxarn2ik\"",
                "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": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS068",
                    "error": "investment_amount is required. Please enter investment_amount."
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS068",
                  "passed": true,
                  "message": "FIXMAS068 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS068"
              ],
              "actualErrorCodes": [
                "FIXMAS068"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_014",
              "caseName": "Maturity amount should return FIXMAS069 when investment_amount is non-numeric",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.441Z",
              "endedAt": "2026-06-23T11:12:05.446Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "abc",
                "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": "220",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"dc-jzj9O7Y3H5RGJCjRKHi0D657RvI\"",
                "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": "3",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS069",
                    "error": "Invalid investment_amount. Please enter a valid investment_amount"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&investment_amount=abc&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS069",
                  "passed": true,
                  "message": "FIXMAS069 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS069"
              ],
              "actualErrorCodes": [
                "FIXMAS069"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_015",
              "caseName": "Maturity amount should return FIXMAS069 when investment_amount is zero",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.446Z",
              "endedAt": "2026-06-23T11:12:05.451Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "0",
                "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": "220",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"dc-jzj9O7Y3H5RGJCjRKHi0D657RvI\"",
                "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": "FIXMAS069",
                    "error": "Invalid investment_amount. Please enter a valid investment_amount"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&investment_amount=0&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS069",
                  "passed": true,
                  "message": "FIXMAS069 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS069"
              ],
              "actualErrorCodes": [
                "FIXMAS069"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_016",
              "caseName": "Maturity amount should return payout_frequency validation errors when missing",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.451Z",
              "endedAt": "2026-06-23T11:12:05.458Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "356",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"164-vHSs5LH2oEo+goIYiy8PQBNPF9Q\"",
                "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": "3",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS070",
                    "error": "payout_frequency is required. Please enter payout_frequency."
                  },
                  {
                    "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/SSFB?tenure=365&investment_amount=50000&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS070 or FIXMAS071",
                  "passed": true,
                  "message": "FIXMAS070/FIXMAS071 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS070",
                "FIXMAS071"
              ],
              "actualErrorCodes": [
                "FIXMAS070",
                "FIXMAS071"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_017",
              "caseName": "Maturity amount should return FIXMAS071 for invalid payout_frequency",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.458Z",
              "endedAt": "2026-06-23T11:12:05.462Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "payout_frequency": "Daily",
                "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:12:05 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/SSFB?tenure=365&investment_amount=50000&payout_frequency=Daily&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS071",
                  "passed": true,
                  "message": "FIXMAS071 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS071"
              ],
              "actualErrorCodes": [
                "FIXMAS071"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_018",
              "caseName": "Maturity amount should return FIXMAS072 for invalid senior_citizen",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.462Z",
              "endedAt": "2026-06-23T11:12:05.468Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "payout_frequency": "Maturity",
                "senior_citizen": "no",
                "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:12:05 GMT",
                "etag": "W/\"d6-lQ785TfGm2j1X+Qeq5odMdVH2LY\"",
                "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": "3",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS072",
                    "error": "Invalid senior_citizen. Please enter a valid senior_citizen"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&investment_amount=50000&payout_frequency=Maturity&senior_citizen=no&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS072",
                  "passed": true,
                  "message": "FIXMAS072 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS072"
              ],
              "actualErrorCodes": [
                "FIXMAS072"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_019",
              "caseName": "Maturity amount should return FIXMAS073 for invalid women_citizen",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.468Z",
              "endedAt": "2026-06-23T11:12:05.475Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "no",
                "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": "212",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"d4-r79aiDB1H3CwzBvxjvbFVYX8TlM\"",
                "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": "3",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS073",
                    "error": "Invalid women_citizen. Please enter a valid women_citizen"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&investment_amount=50000&payout_frequency=Maturity&senior_citizen=false&women_citizen=no&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS073",
                  "passed": true,
                  "message": "FIXMAS073 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS073"
              ],
              "actualErrorCodes": [
                "FIXMAS073"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_020",
              "caseName": "Maturity amount should return FIXMAS074 for invalid tax_saver",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.476Z",
              "endedAt": "2026-06-23T11:12:05.481Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "no",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "208",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"d0-Ymg6YAV+YSIhuQoV/epuFfdu1Bw\"",
                "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": "3",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS074",
                    "error": "Invalid tax_saver. Please enter a valid boolean value"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&investment_amount=50000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=no&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS074",
                  "passed": true,
                  "message": "FIXMAS074 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS074"
              ],
              "actualErrorCodes": [
                "FIXMAS074"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_ERR_021",
              "caseName": "Maturity amount should return FIXMAS107 for invalid product_type",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.481Z",
              "endedAt": "2026-06-23T11:12:05.487Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "false",
                "product_type": "ABC"
              },
              "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:12:05 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": "3",
                "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/SSFB?tenure=365&investment_amount=50000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=ABC' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS107",
                  "passed": true,
                  "message": "FIXMAS107 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS107"
              ],
              "actualErrorCodes": [
                "FIXMAS107"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_FLAG_001",
              "caseName": "SSFB flag matrix senior=false, women=false, tax=false",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.487Z",
              "endedAt": "2026-06-23T11:12:05.876Z",
              "durationMs": 389,
              "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",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "935",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:05 GMT",
                "etag": "W/\"3a7-q7clhlZDAjpCq3opg6di9FG1wUw\"",
                "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": "386",
                "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": "2845eb93-1315-4a40-b2a7-ba71af626b32",
                "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.82
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 60.09
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 60.09
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 60.09
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 60.09
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 60.09
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 60.09
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 46.27
                      }
                    ]
                  }
                ],
                "payout_amount": 60,
                "total_payout": 720.64
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?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 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Response should be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Monthly",
                  "passed": true,
                  "message": "payout_frequency=Monthly"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Non-cumulative response should expose payout_amount and total_payout",
                  "passed": true,
                  "message": "non-cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_FLAG_002",
              "caseName": "SSFB flag matrix senior=true, women=false, tax=false",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:05.876Z",
              "endedAt": "2026-06-23T11:12:06.066Z",
              "durationMs": 190,
              "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",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "933",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:06 GMT",
                "etag": "W/\"3a5-ZU4qTWvdikKGTSuB1fwLiE2nyPw\"",
                "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": "187",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "7.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "875a761c-de31-4c71-93a1-30fc6bdee8fc",
                "average_yield": "7.35",
                "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.1
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 61.33
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 61.33
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 61.33
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 61.33
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 61.33
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 61.33
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 61.33
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 61.33
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 61.33
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 61.33
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 61.33
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 47.22
                      }
                    ]
                  }
                ],
                "payout_amount": 61,
                "total_payout": 735.4
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=true&women_citizen=false&tax_saver=false&product_type=FD' \\\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 be a success payload, not a Fixerra error envelope",
                  "passed": true,
                  "message": "Success payload without error envelope"
                },
                {
                  "description": "payout_frequency should be Monthly",
                  "passed": true,
                  "message": "payout_frequency=Monthly"
                },
                {
                  "description": "Success schema should include rate, dates, vehicle, tenure and payout fields",
                  "passed": true,
                  "message": "Required maturity response fields present"
                },
                {
                  "description": "Non-cumulative response should expose payout_amount and total_payout",
                  "passed": true,
                  "message": "non-cumulative amount fields are correct"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "FD_DETAIL_MAT_FLAG_003",
              "caseName": "SSFB flag matrix senior=false, women=true, tax=false",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:06.066Z",
              "endedAt": "2026-06-23T11:12:06.086Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "10000",
                "payout_frequency": "Monthly",
                "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:12:06 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": "17",
                "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/SSFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=true&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_FLAG_004",
              "caseName": "SSFB flag matrix senior=false, women=false, tax=true",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:06.086Z",
              "endedAt": "2026-06-23T11:12:06.099Z",
              "durationMs": 13,
              "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": "true",
                "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:12:06 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/SSFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=true&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_FLAG_005",
              "caseName": "SSFB flag matrix senior=true, women=true, tax=false",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:06.099Z",
              "endedAt": "2026-06-23T11:12:06.114Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "10000",
                "payout_frequency": "Monthly",
                "senior_citizen": "true",
                "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:12:06 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": "12",
                "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/SSFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=true&women_citizen=true&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_FLAG_006",
              "caseName": "SSFB flag matrix senior=true, women=false, tax=true",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:06.114Z",
              "endedAt": "2026-06-23T11:12:06.127Z",
              "durationMs": 13,
              "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": "true",
                "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:12:06 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/SSFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=true&women_citizen=false&tax_saver=true&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_FLAG_007",
              "caseName": "SSFB flag matrix senior=false, women=true, tax=true",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:06.127Z",
              "endedAt": "2026-06-23T11:12:06.139Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "10000",
                "payout_frequency": "Monthly",
                "senior_citizen": "false",
                "women_citizen": "true",
                "tax_saver": "true",
                "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:12:06 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/SSFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=false&women_citizen=true&tax_saver=true&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            },
            {
              "caseId": "FD_DETAIL_MAT_FLAG_008",
              "caseName": "SSFB flag matrix senior=true, women=true, tax=true",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SSFB",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:06.140Z",
              "endedAt": "2026-06-23T11:12:06.153Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "10000",
                "payout_frequency": "Monthly",
                "senior_citizen": "true",
                "women_citizen": "true",
                "tax_saver": "true",
                "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:12:06 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",
                "connection": "close"
              },
              "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/SSFB?tenure=365&investment_amount=10000&payout_frequency=Monthly&senior_citizen=true&women_citizen=true&tax_saver=true&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "body.statusCode=400"
                },
                {
                  "description": "Fixerra success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                },
                {
                  "description": "Response error should contain FIXMAS005",
                  "passed": true,
                  "message": "FIXMAS005 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [
                "FIXMAS005"
              ],
              "actualErrorCodes": [
                "FIXMAS005"
              ]
            }
          ],
          "summary": {
            "total": 74,
            "passed": 74,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 4883
          }
        },
        {
          "stepId": "step-04-pan-verification",
          "stepName": "PAN Verification",
          "cases": [
            {
              "caseId": "PAN_001",
              "caseName": "Get user profile before PAN entry (SSFB / Suryoday)",
              "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:12:06.153Z",
              "endedAt": "2026-06-23T11:12:06.200Z",
              "durationMs": 47,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:06 GMT",
                "etag": "W/\"573-1SjdIF/giRyGN7hKjwdYe1txVpk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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:11:55.349Z",
                  "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:41:55.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "PAN_002",
              "caseName": "Track insights event for PAN verification step (SSFB / Suryoday)",
              "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:12:06.201Z",
              "endedAt": "2026-06-23T11:12:06.270Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "state": "KYC_VERIFICATION",
                "sub_state": "PAN_SSFB_VERIFICATION",
                "status": "SUCCESS",
                "issuer_code": "SSFB",
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "d1": "{\"event_id\":\"21568042-9a44-4499-bd8d-247b534082a0\"}",
                "data": "{\"issuer_code\":\"SSFB\",\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}"
              },
              "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:12:06 GMT",
                "etag": "W/\"41-g0xxHNaRPaBcR+8wMX9PHLNKYZ8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "event_id": "21568042-9a44-4499-bd8d-247b534082a0-1782213126220"
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"state\":\"KYC_VERIFICATION\",\"sub_state\":\"PAN_SSFB_VERIFICATION\",\"status\":\"SUCCESS\",\"issuer_code\":\"SSFB\",\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"d1\":\"{\\\"event_id\\\":\\\"21568042-9a44-4499-bd8d-247b534082a0\\\"}\",\"data\":\"{\\\"issuer_code\\\":\\\"SSFB\\\",\\\"fd_info\\\":{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}}\"}'",
              "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": "PAN_003",
              "caseName": "Verify PAN for SSFB / Suryoday",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
              "status": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:06.270Z",
              "endedAt": "2026-06-23T11:12:06.385Z",
              "durationMs": 115,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:06 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": false,
                  "message": "Expected 200/201 got 400"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": false,
                  "message": "Expected success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": false,
                  "message": "Expected body.statusCode=200"
                },
                {
                  "description": "Response should indicate PAN verification result",
                  "passed": false,
                  "message": "Expected PAN verification result in payload"
                }
              ],
              "failureReason": "Expected 200/201 got 400; Expected success=1; Expected body.statusCode=200; Expected PAN verification result in payload",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:06.385Z",
              "endedAt": "2026-06-23T11:12:06.428Z",
              "durationMs": 43,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:06 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "40",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": false,
                  "message": "Expected 200/201 got 400"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": false,
                  "message": "Expected success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": false,
                  "message": "Expected body.statusCode=200"
                }
              ],
              "failureReason": "Expected 200/201 got 400; Expected success=1; Expected body.statusCode=200",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "PAN_005",
              "caseName": "Verify PAN response schema",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
              "status": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:06.428Z",
              "endedAt": "2026-06-23T11:12:06.474Z",
              "durationMs": 46,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:06 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": false,
                  "message": "Expected 200/201 got 400"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": false,
                  "message": "Expected success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": false,
                  "message": "Expected body.statusCode=200"
                },
                {
                  "description": "Response schema should match contract",
                  "passed": false,
                  "message": "Response schema mismatch"
                }
              ],
              "failureReason": "Expected 200/201 got 400; Expected success=1; Expected body.statusCode=200; Response schema mismatch",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:06.474Z",
              "endedAt": "2026-06-23T11:12:06.550Z",
              "durationMs": 76,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:06 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": false,
                  "message": "Expected 200/201 got 400"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": false,
                  "message": "Expected success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": false,
                  "message": "Expected body.statusCode=200"
                },
                {
                  "description": "Response content type should be application/json",
                  "passed": true,
                  "message": "application/json response"
                }
              ],
              "failureReason": "Expected 200/201 got 400; Expected success=1; Expected body.statusCode=200",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "PAN_007",
              "caseName": "Verify PAN response time",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
              "status": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:06.550Z",
              "endedAt": "2026-06-23T11:12:06.594Z",
              "durationMs": 44,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:06 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "40",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": false,
                  "message": "Expected 200/201 got 400"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": false,
                  "message": "Expected success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": false,
                  "message": "Expected body.statusCode=200"
                },
                {
                  "description": "Response should complete within 5000ms",
                  "passed": true,
                  "message": "duration=44ms"
                }
              ],
              "failureReason": "Expected 200/201 got 400; Expected success=1; Expected body.statusCode=200",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:06.594Z",
              "endedAt": "2026-06-23T11:12:06.651Z",
              "durationMs": 57,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:06 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": false,
                  "message": "Expected 200/201 got 400"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": false,
                  "message": "Expected success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": false,
                  "message": "Expected body.statusCode=200"
                },
                {
                  "description": "Payload object should exist",
                  "passed": true,
                  "message": "payload present"
                }
              ],
              "failureReason": "Expected 200/201 got 400; Expected success=1; Expected body.statusCode=200",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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:12:06.651Z",
              "endedAt": "2026-06-23T11:12:06.669Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "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:12:06 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": "15",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.669Z",
              "endedAt": "2026-06-23T11:12:06.681Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": null,
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "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:12:06 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":null,\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.681Z",
              "endedAt": "2026-06-23T11:12:06.736Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "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:12:06 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": "52",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.736Z",
              "endedAt": "2026-06-23T11:12:06.749Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "BLXPR343",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:06 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"BLXPR343\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.749Z",
              "endedAt": "2026-06-23T11:12:06.759Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "BLXPR3438LL",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:06 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"BLXPR3438LL\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.759Z",
              "endedAt": "2026-06-23T11:12:06.770Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "blxpr3438l",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:06 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"blxpr3438l\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.770Z",
              "endedAt": "2026-06-23T11:12:06.834Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "BLXP@3438L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:06 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 POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"BLXP@3438L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.834Z",
              "endedAt": "2026-06-23T11:12:06.859Z",
              "durationMs": 25,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "BLXP R3438L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:06 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": "22",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"BLXP R3438L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.859Z",
              "endedAt": "2026-06-23T11:12:06.937Z",
              "durationMs": 78,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "1234567890",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:06 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": "75",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"1234567890\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.937Z",
              "endedAt": "2026-06-23T11:12:06.948Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "ABCDEFGHIJ",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:06 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"ABCDEFGHIJ\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.948Z",
              "endedAt": "2026-06-23T11:12:06.960Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AB123456CD",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:06 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AB123456CD\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.960Z",
              "endedAt": "2026-06-23T11:12:06.970Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "' OR 1=1 --",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:06 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"'\\'' OR 1=1 --\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:06.970Z",
              "endedAt": "2026-06-23T11:12:07.033Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "<script>alert(1)</script>",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:07 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"<script>alert(1)</script>\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:07.033Z",
              "endedAt": "2026-06-23T11:12:07.041Z",
              "durationMs": 8,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": "{\"number\":",
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "content-length": "248",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:07 GMT",
                "etag": "W/\"f8-ydQRwr2txlf09MfVIoTWDDYnXgw\"",
                "vary": "Origin",
                "x-powered-by": "Express",
                "x-envoy-upstream-service-time": "5",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:07.041Z",
              "endedAt": "2026-06-23T11:12:07.052Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {},
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "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:12:07 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:07.052Z",
              "endedAt": "2026-06-23T11:12:07.067Z",
              "durationMs": 15,
              "requestHeaders": {
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": "{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}",
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "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:12:07 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": "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)"
                  },
                  {
                    "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:07.067Z",
              "endedAt": "2026-06-23T11:12:07.141Z",
              "durationMs": 74,
              "requestHeaders": {
                "Content-Type": "text/plain",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": "{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}",
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "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:12:07 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": "65",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: text/plain' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:07.141Z",
              "endedAt": "2026-06-23T11:12:07.151Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "1234567890",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:07 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"1234567890\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:07.151Z",
              "endedAt": "2026-06-23T11:12:07.162Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "1234567890",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:07 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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"1234567890\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:07.162Z",
              "endedAt": "2026-06-23T11:12:07.231Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "1234567890",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:07 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": "66",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"1234567890\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "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:12:07.232Z",
              "endedAt": "2026-06-23T11:12:07.249Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "1234567890",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:07 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": "14",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"1234567890\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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": "PAN_030",
              "caseName": "Verify required response headers",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
              "status": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:07.249Z",
              "endedAt": "2026-06-23T11:12:07.285Z",
              "durationMs": 36,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:07 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "33",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": false,
                  "message": "Expected 200/201 got 400"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": false,
                  "message": "Expected success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": false,
                  "message": "Expected body.statusCode=200"
                },
                {
                  "description": "Required response headers should be present",
                  "passed": true,
                  "message": "Required response headers present"
                }
              ],
              "failureReason": "Expected 200/201 got 400; Expected success=1; Expected body.statusCode=200",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:07.285Z",
              "endedAt": "2026-06-23T11:12:07.368Z",
              "durationMs": 83,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:07 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": false,
                  "message": "Expected 200/201 got 400"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": false,
                  "message": "Expected success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": false,
                  "message": "Expected body.statusCode=200"
                },
                {
                  "description": "Response should not expose PAN or DOB values",
                  "passed": true,
                  "message": "No PAN/DOB leakage in response body"
                }
              ],
              "failureReason": "Expected 200/201 got 400; Expected success=1; Expected body.statusCode=200",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": 400,
              "startedAt": "2026-06-23T11:12:07.369Z",
              "endedAt": "2026-06-23T11:12:07.468Z",
              "durationMs": 99,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:07 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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 (400:0:400)"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": 400,
              "startedAt": "2026-06-23T11:12:07.468Z",
              "endedAt": "2026-06-23T11:12:07.647Z",
              "durationMs": 179,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:07 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "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 88ms across 3 requests"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "PAN_034",
              "caseName": "Verify API rate limiting",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
              "status": "failed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:07.647Z",
              "endedAt": "2026-06-23T11:12:07.828Z",
              "durationMs": 181,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:07 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "API should either enforce rate limiting (HTTP 429) or remain stable under burst traffic",
                  "passed": false,
                  "message": "Unexpected status codes under burst: 400"
                }
              ],
              "failureReason": "Unexpected status codes under burst: 400",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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:12:07.828Z",
              "endedAt": "2026-06-23T11:12:07.849Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:07 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": "18",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"\",\"consent_checked\":true}'",
              "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": "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:12:07.849Z",
              "endedAt": "2026-06-23T11:12:07.960Z",
              "durationMs": 111,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": null,
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:07 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":null,\"consent_checked\":true}'",
              "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": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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:12:07.960Z",
              "endedAt": "2026-06-23T11:12:08.064Z",
              "durationMs": 104,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:08 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"consent_checked\":true}'",
              "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": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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:12:08.064Z",
              "endedAt": "2026-06-23T11:12:08.076Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "30-04-1992",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12: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": "9",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"30-04-1992\",\"consent_checked\":true}'",
              "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": "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:12:08.076Z",
              "endedAt": "2026-06-23T11:12:08.136Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2050-01-01",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "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:12:08 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": "56",
                "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=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2050-01-01\",\"consent_checked\":true}'",
              "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": "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": 400,
              "startedAt": "2026-06-23T11:12:08.136Z",
              "endedAt": "2026-06-23T11:12:08.172Z",
              "durationMs": 36,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "1992-02-31",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:08 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "33",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"1992-02-31\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Invalid DOB should either be rejected or be accepted by current live API behavior",
                  "passed": true,
                  "message": "Invalid DOB rejected by API"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": 400,
              "startedAt": "2026-06-23T11:12:08.172Z",
              "endedAt": "2026-06-23T11:12:08.262Z",
              "durationMs": 90,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": false
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:08 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":false}'",
              "validations": [
                {
                  "description": "Unchecked consent should either be rejected or be accepted by current live API behavior",
                  "passed": true,
                  "message": "Unchecked consent rejected by API"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": 400,
              "startedAt": "2026-06-23T11:12:08.262Z",
              "endedAt": "2026-06-23T11:12:08.303Z",
              "durationMs": 41,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21"
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:08 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\"}'",
              "validations": [
                {
                  "description": "Missing consent should either be rejected or be accepted by current live API behavior",
                  "passed": true,
                  "message": "Missing consent rejected by API"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": 400,
              "startedAt": "2026-06-23T11:12:08.303Z",
              "endedAt": "2026-06-23T11:12:08.366Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": null
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:08 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":null}'",
              "validations": [
                {
                  "description": "Null consent should either be rejected or be accepted by current live API behavior",
                  "passed": true,
                  "message": "Null consent rejected by API"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": 400,
              "startedAt": "2026-06-23T11:12:08.366Z",
              "endedAt": "2026-06-23T11:12:08.402Z",
              "durationMs": 36,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": "true"
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:08 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "33",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":\"true\"}'",
              "validations": [
                {
                  "description": "String consent should either be rejected or be accepted by current live API behavior",
                  "passed": true,
                  "message": "String consent rejected by API"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "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": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:08.402Z",
              "endedAt": "2026-06-23T11:12:08.459Z",
              "durationMs": 57,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:08 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": false,
                  "message": "Expected 200/201 got 400"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": false,
                  "message": "Expected success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": false,
                  "message": "Expected body.statusCode=200"
                },
                {
                  "description": "payload.name should be populated",
                  "passed": false,
                  "message": "Expected payload.name to be populated"
                }
              ],
              "failureReason": "Expected 200/201 got 400; Expected success=1; Expected body.statusCode=200; Expected payload.name to be populated",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            },
            {
              "caseId": "PAN_046",
              "caseName": "Verify father name returned",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/pan-verification",
              "status": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:08.459Z",
              "endedAt": "2026-06-23T11:12:08.500Z",
              "durationMs": 41,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "dob": "2005-11-21",
                "consent_checked": true
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "177",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:08 GMT",
                "etag": "W/\"b1-W8D12T9KjoL4qlYR1xZ0gsYn1mU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "FIXUSER1036",
                    "error": "Duplicate Pan found,"
                  }
                ]
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification?issuer_code=SSFB&issuer_type=BANK&credit_card=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"number\":\"AJFPW6688L\",\"dob\":\"2005-11-21\",\"consent_checked\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": false,
                  "message": "Expected 200/201 got 400"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": false,
                  "message": "Expected success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": false,
                  "message": "Expected body.statusCode=200"
                },
                {
                  "description": "payload.father_name should be populated",
                  "passed": false,
                  "message": "Expected payload.father_name to be populated"
                }
              ],
              "failureReason": "Expected 200/201 got 400; Expected success=1; Expected body.statusCode=200; Expected payload.father_name to be populated",
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1036"
              ]
            }
          ],
          "summary": {
            "total": 46,
            "passed": 35,
            "failed": 11,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 2344
          }
        },
        {
          "stepId": "step-05-email-verification",
          "stepName": "Email Verification",
          "cases": [
            {
              "caseId": "EMAIL_001",
              "caseName": "Verify OTP sent to valid email (SSFB 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:12:08.500Z",
              "endedAt": "2026-06-23T11:12:09.531Z",
              "durationMs": 1031,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}"
              },
              "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:12:09 GMT",
                "etag": "W/\"b3-99GEoPcB69YCUTVrE3tkkaX3khQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1025",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213128579,
                  "endTime": 1782213129490,
                  "durationMs": 911,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "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": "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:12:09.531Z",
              "endedAt": "2026-06-23T11:12:09.551Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}"
              },
              "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:12:09 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "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": "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:12:09.551Z",
              "endedAt": "2026-06-23T11:12:09.634Z",
              "durationMs": 83,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}"
              },
              "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:12:09 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "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": "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:12:09.634Z",
              "endedAt": "2026-06-23T11:12:09.775Z",
              "durationMs": 141,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "178",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:09 GMT",
                "etag": "W/\"b2-6RyTdPkQpbzmFtKs9K6EjKrvDkU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "138",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213129666,
                  "endTime": 1782213129738,
                  "durationMs": 72,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "validations": [
                {
                  "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": "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:12:09.775Z",
              "endedAt": "2026-06-23T11:12:09.789Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_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:12:09 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "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": "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:12:09.789Z",
              "endedAt": "2026-06-23T11:12:09.803Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_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:12:09 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "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": "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:12:09.803Z",
              "endedAt": "2026-06-23T11:12:09.829Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_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:12:09 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": "23",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "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": "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:12:09.829Z",
              "endedAt": "2026-06-23T11:12:09.849Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_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:12:09 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "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": "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:12:09.849Z",
              "endedAt": "2026-06-23T11:12:09.933Z",
              "durationMs": 84,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_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:12:09 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "validations": [
                {
                  "description": "payload.otpSentCount should be numeric",
                  "passed": true,
                  "message": "payload.otpSentCount=2"
                }
              ],
              "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "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:12:09.933Z",
              "endedAt": "2026-06-23T11:12:10.027Z",
              "durationMs": 94,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_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:12:09 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": "92",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "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": "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:12:10.028Z",
              "endedAt": "2026-06-23T11:12:10.044Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "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:12:10 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": "14",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SSFB\\\"}}\"}'",
              "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": "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:12:10.044Z",
              "endedAt": "2026-06-23T11:12:10.057Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "224",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.057Z",
              "endedAt": "2026-06-23T11:12:10.131Z",
              "durationMs": 74,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "70",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.131Z",
              "endedAt": "2026-06-23T11:12:10.150Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_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:12:10 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": "16",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "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": "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:12:10.150Z",
              "endedAt": "2026-06-23T11:12:10.168Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.168Z",
              "endedAt": "2026-06-23T11:12:10.236Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "64",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.236Z",
              "endedAt": "2026-06-23T11:12:10.250Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.250Z",
              "endedAt": "2026-06-23T11:12:10.326Z",
              "durationMs": 76,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "73",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.326Z",
              "endedAt": "2026-06-23T11:12:10.338Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.338Z",
              "endedAt": "2026-06-23T11:12:10.348Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.348Z",
              "endedAt": "2026-06-23T11:12:10.358Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.359Z",
              "endedAt": "2026-06-23T11:12:10.430Z",
              "durationMs": 71,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "67",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.430Z",
              "endedAt": "2026-06-23T11:12:10.445Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "12",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.445Z",
              "endedAt": "2026-06-23T11:12:10.456Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.457Z",
              "endedAt": "2026-06-23T11:12:10.544Z",
              "durationMs": 87,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "84",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.544Z",
              "endedAt": "2026-06-23T11:12:10.555Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.555Z",
              "endedAt": "2026-06-23T11:12:10.565Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.565Z",
              "endedAt": "2026-06-23T11:12:10.635Z",
              "durationMs": 70,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "66",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.635Z",
              "endedAt": "2026-06-23T11:12:10.650Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "12",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.650Z",
              "endedAt": "2026-06-23T11:12:10.663Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 GMT",
                "etag": "W/\"c4-GarVLPYMbINxnYvRCi+pY4AXtb8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 2,
                  "retryAfter": "30 minute(s)",
                  "retryAfterSeconds": 1798
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.663Z",
              "endedAt": "2026-06-23T11:12:10.877Z",
              "durationMs": 214,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "Dilip@Fixerra.inn"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "178",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:10 GMT",
                "etag": "W/\"b2-r9KpSZR35yVhAbjvRohFcEVW38A\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "211",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213130764,
                  "endTime": 1782213130836,
                  "durationMs": 72,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.877Z",
              "endedAt": "2026-06-23T11:12:10.891Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "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": 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.891Z",
              "endedAt": "2026-06-23T11:12:10.931Z",
              "durationMs": 40,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.931Z",
              "endedAt": "2026-06-23T11:12:10.941Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.941Z",
              "endedAt": "2026-06-23T11:12:10.963Z",
              "durationMs": 22,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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": "19",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:10.963Z",
              "endedAt": "2026-06-23T11:12:11.031Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:11.031Z",
              "endedAt": "2026-06-23T11:12:11.231Z",
              "durationMs": 200,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:11 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:11.231Z",
              "endedAt": "2026-06-23T11:12:11.342Z",
              "durationMs": 111,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:11 GMT",
                "etag": "W/\"c4-Q5kbGTciDAetAchYVLbzaVawFXk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 3,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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 22ms across 5 requests"
                }
              ],
              "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "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:12:11.342Z",
              "endedAt": "2026-06-23T11:12:11.466Z",
              "durationMs": 124,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:11 GMT",
                "etag": "W/\"c4-Q5kbGTciDAetAchYVLbzaVawFXk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 429,
                "message": "Rate limit exceeded. Please try again in 30 minute(s).",
                "payload": {
                  "attemptsUsed": 0,
                  "otpSentCount": 3,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:11.466Z",
              "endedAt": "2026-06-23T11:12:11.648Z",
              "durationMs": 182,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:11 GMT",
                "etag": "W/\"c4-Q5kbGTciDAetAchYVLbzaVawFXk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 429,
                "message": "Rate limit exceeded. Please try again in 30 minute(s).",
                "payload": {
                  "attemptsUsed": 0,
                  "otpSentCount": 3,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:11.648Z",
              "endedAt": "2026-06-23T11:12:11.660Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:11 GMT",
                "etag": "W/\"c4-Q5kbGTciDAetAchYVLbzaVawFXk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 3,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:11.661Z",
              "endedAt": "2026-06-23T11:12:11.667Z",
              "durationMs": 6,
              "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:12: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/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": "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:12:11.667Z",
              "endedAt": "2026-06-23T11:12:11.673Z",
              "durationMs": 6,
              "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:12: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/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": "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:12:11.673Z",
              "endedAt": "2026-06-23T11:12:11.680Z",
              "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:12: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/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": "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:12:11.680Z",
              "endedAt": "2026-06-23T11:12:11.686Z",
              "durationMs": 6,
              "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:12: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/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": "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:12:11.686Z",
              "endedAt": "2026-06-23T11:12:11.728Z",
              "durationMs": 42,
              "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:12: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": "40",
                "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": "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:12:11.728Z",
              "endedAt": "2026-06-23T11:12:11.740Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:11 GMT",
                "etag": "W/\"c4-Q5kbGTciDAetAchYVLbzaVawFXk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 3,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:11.740Z",
              "endedAt": "2026-06-23T11:12:11.757Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:11 GMT",
                "etag": "W/\"c4-Q5kbGTciDAetAchYVLbzaVawFXk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "14",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 429,
                "message": "Rate limit exceeded. Please try again in 30 minute(s).",
                "payload": {
                  "attemptsUsed": 0,
                  "otpSentCount": 3,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:11.757Z",
              "endedAt": "2026-06-23T11:12:11.982Z",
              "durationMs": 225,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "178",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:11 GMT",
                "etag": "W/\"b2-kLGV8BzgfeOduDzgeEbI67BEdaY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "221",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213131871,
                  "endTime": 1782213131942,
                  "durationMs": 71,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "EMAIL_900A",
              "caseName": "Verify email OTP (SSFB 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:12:11.982Z",
              "endedAt": "2026-06-23T11:12:12.136Z",
              "durationMs": 154,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "otp": "123456",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_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:12:12 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": "151",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"otp\":\"123456\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SSFB\\\"}\"}'",
              "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": "EMAIL_900",
              "caseName": "Save email to user profile (SSFB 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:12:12.136Z",
              "endedAt": "2026-06-23T11:12:12.319Z",
              "durationMs": 183,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn"
              },
              "requestQuery": {
                "issuer_code": "SSFB",
                "issuer_type": "BANK"
              },
              "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:12:12 GMT",
                "etag": "W/\"66e-pqnhdROdlqh3CO8ginoSJ+BF5F4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:12.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "dilip@fixerra.inn",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:12.000Z",
                  "profile_updated_at": "2026-06-23T11:12:12.244Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "EMAIL_901",
              "caseName": "Get user to confirm email state (SSFB 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:12:12.319Z",
              "endedAt": "2026-06-23T11:12:12.365Z",
              "durationMs": 46,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1453",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:12 GMT",
                "etag": "W/\"5ad-9gyTzAND5G3IVFIaBhBzb8+aB3c\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "dilip@fixerra.inn",
                  "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:11:55.349Z",
                  "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:12:12.000Z",
                  "profile_updated_at": "2026-06-23T11:12:12.000Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "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:12:12.365Z",
              "endedAt": "2026-06-23T11:12:12.428Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "email": "qa.user@fixerra.in"
              },
              "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:12:12 GMT",
                "etag": "W/\"c4-wfdqcVSyy7NVzdg1HqXLC6UUIDs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 429,
                "message": "Rate limit exceeded. Please try again in 30 minute(s).",
                "payload": {
                  "attemptsUsed": 0,
                  "otpSentCount": 4,
                  "retryAfter": "30 minute(s)",
                  "retryAfterSeconds": 1796
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"email\":\"qa.user@fixerra.in\"}'",
              "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_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:12:12.428Z",
              "endedAt": "2026-06-23T11:12:12.441Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "196",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:12 GMT",
                "etag": "W/\"c4-wfdqcVSyy7NVzdg1HqXLC6UUIDs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1796
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.441Z",
              "endedAt": "2026-06-23T11:12:12.453Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 GMT",
                "etag": "W/\"c4-wfdqcVSyy7NVzdg1HqXLC6UUIDs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 4,
                  "retryAfter": "30 minute(s)",
                  "retryAfterSeconds": 1796
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.453Z",
              "endedAt": "2026-06-23T11:12:12.465Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 GMT",
                "etag": "W/\"c4-wfdqcVSyy7NVzdg1HqXLC6UUIDs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 4,
                  "retryAfter": "30 minute(s)",
                  "retryAfterSeconds": 1796
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.465Z",
              "endedAt": "2026-06-23T11:12:12.529Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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": "60",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.529Z",
              "endedAt": "2026-06-23T11:12:12.540Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.540Z",
              "endedAt": "2026-06-23T11:12:12.556Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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": "13",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.556Z",
              "endedAt": "2026-06-23T11:12:12.645Z",
              "durationMs": 89,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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": "86",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.645Z",
              "endedAt": "2026-06-23T11:12:12.655Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.656Z",
              "endedAt": "2026-06-23T11:12:12.667Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.667Z",
              "endedAt": "2026-06-23T11:12:12.731Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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": "59",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.731Z",
              "endedAt": "2026-06-23T11:12:12.740Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.740Z",
              "endedAt": "2026-06-23T11:12:12.750Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.750Z",
              "endedAt": "2026-06-23T11:12:12.763Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.763Z",
              "endedAt": "2026-06-23T11:12:12.830Z",
              "durationMs": 67,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 GMT",
                "etag": "W/\"c4-wfdqcVSyy7NVzdg1HqXLC6UUIDs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 429,
                "message": "Rate limit exceeded. Please try again in 30 minute(s).",
                "payload": {
                  "attemptsUsed": 0,
                  "otpSentCount": 4,
                  "retryAfter": "30 minute(s)",
                  "retryAfterSeconds": 1796
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.831Z",
              "endedAt": "2026-06-23T11:12:12.841Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.841Z",
              "endedAt": "2026-06-23T11:12:12.847Z",
              "durationMs": 6,
              "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:12: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": "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  -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:12:12.847Z",
              "endedAt": "2026-06-23T11:12:12.853Z",
              "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:12: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": "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:12:12.853Z",
              "endedAt": "2026-06-23T11:12:12.931Z",
              "durationMs": 78,
              "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:12: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": "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\":\"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:12:12.931Z",
              "endedAt": "2026-06-23T11:12:12.970Z",
              "durationMs": 39,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:12 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": "36",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:12.970Z",
              "endedAt": "2026-06-23T11:12:13.062Z",
              "durationMs": 92,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "89",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.062Z",
              "endedAt": "2026-06-23T11:12:13.156Z",
              "durationMs": 94,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "90",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.156Z",
              "endedAt": "2026-06-23T11:12:13.232Z",
              "durationMs": 76,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "73",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.232Z",
              "endedAt": "2026-06-23T11:12:13.343Z",
              "durationMs": 111,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "107",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.343Z",
              "endedAt": "2026-06-23T11:12:13.428Z",
              "durationMs": 85,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "82",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.428Z",
              "endedAt": "2026-06-23T11:12:13.441Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.441Z",
              "endedAt": "2026-06-23T11:12:13.462Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "17",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.462Z",
              "endedAt": "2026-06-23T11:12:13.549Z",
              "durationMs": 87,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "84",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.549Z",
              "endedAt": "2026-06-23T11:12:13.583Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "31",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.583Z",
              "endedAt": "2026-06-23T11:12:13.637Z",
              "durationMs": 54,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "50",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.637Z",
              "endedAt": "2026-06-23T11:12:13.672Z",
              "durationMs": 35,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "32",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.672Z",
              "endedAt": "2026-06-23T11:12:13.683Z",
              "durationMs": 11,
              "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:12:13 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": "8",
                "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:12:13.683Z",
              "endedAt": "2026-06-23T11:12:13.689Z",
              "durationMs": 6,
              "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:12:13 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:12:13.689Z",
              "endedAt": "2026-06-23T11:12:13.728Z",
              "durationMs": 39,
              "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:12:13 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": "37",
                "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:12:13.729Z",
              "endedAt": "2026-06-23T11:12:13.762Z",
              "durationMs": 33,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:13 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": "30",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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:12:13.762Z",
              "endedAt": "2026-06-23T11:12:13.873Z",
              "durationMs": 111,
              "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": "7653",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:13 GMT",
                "etag": "W/\"1de5-SyiJ03N+bUFBJQTNZ/wED6fG/eg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "108",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T10:50:18.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": "Business",
                  "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": "Married",
                  "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:12:13.778Z",
                  "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:12:13.873Z",
              "endedAt": "2026-06-23T11:12:13.889Z",
              "durationMs": 16,
              "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:12:13 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": "13",
                "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:12:13.889Z",
              "endedAt": "2026-06-23T11:12:13.952Z",
              "durationMs": 63,
              "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": "7653",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:13 GMT",
                "etag": "W/\"1de5-gRm36v5PZzuxWJK9Zu+ogUIgBGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:13.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": "Business",
                  "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": "Married",
                  "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:12:13.897Z",
                  "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:12:13.952Z",
              "endedAt": "2026-06-23T11:12:14.051Z",
              "durationMs": 99,
              "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": "7653",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:14 GMT",
                "etag": "W/\"1de5-lIhPuKtqF/iIrMjh3LEHJsi8OL4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:13.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": "Business",
                  "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": "Married",
                  "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:12:13.960Z",
                  "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:12:14.051Z",
              "endedAt": "2026-06-23T11:12:14.121Z",
              "durationMs": 70,
              "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": "7653",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:14 GMT",
                "etag": "W/\"1de5-giUpFdJCM6IndsF6mNkjsePa1Ok\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:14.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": "Business",
                  "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": "Married",
                  "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:12:14.058Z",
                  "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:12:14.121Z",
              "endedAt": "2026-06-23T11:12:14.186Z",
              "durationMs": 65,
              "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": "7653",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:14 GMT",
                "etag": "W/\"1de5-iyAKlgOMeV4qlcZ1GST+wfkZknE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:14.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": "Business",
                  "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": "Married",
                  "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:12:14.130Z",
                  "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:12:14.186Z",
              "endedAt": "2026-06-23T11:12:14.206Z",
              "durationMs": 20,
              "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:12:14 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": "17",
                "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:12:14.206Z",
              "endedAt": "2026-06-23T11:12:14.235Z",
              "durationMs": 29,
              "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:12:14 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": "26",
                "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:12:14.235Z",
              "endedAt": "2026-06-23T11:12:14.392Z",
              "durationMs": 157,
              "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": "7663",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:14 GMT",
                "etag": "W/\"1def-i7etBGiq+KQxY/NEz+chD+L10x4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "153",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:14.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": "Business",
                  "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": "Married",
                  "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:12:14.245Z",
                  "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:12:14.392Z",
              "endedAt": "2026-06-23T11:12:14.481Z",
              "durationMs": 89,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:14 GMT",
                "etag": "W/\"1ddb-er/1VrOiv+jJID8xvmSnxoh9+d0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:14.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": "Business",
                  "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": "Married",
                  "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:12:14.427Z",
                  "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:12:14.481Z",
              "endedAt": "2026-06-23T11:12:14.631Z",
              "durationMs": 150,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:14 GMT",
                "etag": "W/\"1ddb-yR0BCJrqYbBNrcZ5mxgdjWBZi4k\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:14.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": "Business",
                  "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": "Married",
                  "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:12:14.529Z",
                  "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:12:14.631Z",
              "endedAt": "2026-06-23T11:12:14.688Z",
              "durationMs": 57,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:14 GMT",
                "etag": "W/\"1ddb-21GQ8jaVjkaRu0bfy25ZZBv9yzY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:14.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": "Business",
                  "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": "Married",
                  "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:12:14.639Z",
                  "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:12:14.688Z",
              "endedAt": "2026-06-23T11:12:14.778Z",
              "durationMs": 90,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:14 GMT",
                "etag": "W/\"1ddb-l764TjxKZ4NXH5/pCcbenCd5gK0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:14.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": 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": "Business",
                  "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": "Married",
                  "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:12:14.734Z",
                  "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:12:14.778Z",
              "endedAt": "2026-06-23T11:12:14.869Z",
              "durationMs": 91,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:14 GMT",
                "etag": "W/\"1ddb-WfnEMCpObjbfORtzndqv6n1JTWk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:14.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": "Business",
                  "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": "Married",
                  "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:12:14.786Z",
                  "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:12:14.869Z",
              "endedAt": "2026-06-23T11:12:14.984Z",
              "durationMs": 115,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:14 GMT",
                "etag": "W/\"1ddb-GP6vuDDXG6F4Mn4g0nGRDuf/eJ4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:14.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": "Business",
                  "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": "Married",
                  "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:12:14.928Z",
                  "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:12:14.984Z",
              "endedAt": "2026-06-23T11:12:15.075Z",
              "durationMs": 91,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:15 GMT",
                "etag": "W/\"1ddb-JXyCrokBfZ0Hwy0TrNUhMRaN6qs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:15.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": "Business",
                  "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": "Married",
                  "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:12:14.993Z",
                  "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:12:15.076Z",
              "endedAt": "2026-06-23T11:12:15.148Z",
              "durationMs": 72,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:15 GMT",
                "etag": "W/\"1ddb-riNK5nj3Wj2WYVdHL00ZOGpk0nI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:15.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": "Business",
                  "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": "Married",
                  "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:12:15.084Z",
                  "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:12:15.148Z",
              "endedAt": "2026-06-23T11:12:15.202Z",
              "durationMs": 54,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:15 GMT",
                "etag": "W/\"1ddb-PVdJA4PksePZDTwapItFbaFqukI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:15.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": "Business",
                  "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": "Married",
                  "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:12:15.157Z",
                  "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:12:15.202Z",
              "endedAt": "2026-06-23T11:12:15.342Z",
              "durationMs": 140,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:15 GMT",
                "etag": "W/\"1ddb-ZNF3GaGAP7M+NjWKoDALHZv8iO0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:15.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": "Business",
                  "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": "Married",
                  "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:12:15.234Z",
                  "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:12:15.342Z",
              "endedAt": "2026-06-23T11:12:15.392Z",
              "durationMs": 50,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:15 GMT",
                "etag": "W/\"1ddb-0NmY1c5N4NnuI2AxBtJKUesdGik\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:15.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": "Business",
                  "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": "Married",
                  "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:12:15.349Z",
                  "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:12:15.392Z",
              "endedAt": "2026-06-23T11:12:15.436Z",
              "durationMs": 44,
              "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:12: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": "41",
                "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:12:15.436Z",
              "endedAt": "2026-06-23T11:12:15.454Z",
              "durationMs": 18,
              "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:12: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": "14",
                "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:12:15.454Z",
              "endedAt": "2026-06-23T11:12:15.650Z",
              "durationMs": 196,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:15 GMT",
                "etag": "W/\"1ddb-Mp5Tw4TRw1+HiVjjfXdHHFlA8Gs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "192",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:15.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": "Business",
                  "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": "Married",
                  "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:12:15.541Z",
                  "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:12:15.650Z",
              "endedAt": "2026-06-23T11:12:15.784Z",
              "durationMs": 134,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:15 GMT",
                "etag": "W/\"1ddb-BJ4XijltJ4g2jMRfYgIe00EqpK8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:15.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": "Business",
                  "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": "Married",
                  "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:12:15.730Z",
                  "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:12:15.784Z",
              "endedAt": "2026-06-23T11:12:15.792Z",
              "durationMs": 8,
              "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:12:15 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:12:15.792Z",
              "endedAt": "2026-06-23T11:12:15.879Z",
              "durationMs": 87,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:15 GMT",
                "etag": "W/\"1ddb-lqbHX7cHg1MGeE0L0W7GKibwP70\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:15.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": "Business",
                  "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": "Married",
                  "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:12:15.838Z",
                  "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:12:15.879Z",
              "endedAt": "2026-06-23T11:12:15.888Z",
              "durationMs": 9,
              "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:12:15 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": "5",
                "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:12:15.888Z",
              "endedAt": "2026-06-23T11:12:15.895Z",
              "durationMs": 7,
              "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:12:15 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": "3",
                "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:12:15.895Z",
              "endedAt": "2026-06-23T11:12:15.932Z",
              "durationMs": 37,
              "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:12:15 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": "33",
                "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:12:15.932Z",
              "endedAt": "2026-06-23T11:12:16.031Z",
              "durationMs": 99,
              "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:12:15 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": "15",
                "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:12:16.031Z",
              "endedAt": "2026-06-23T11:12:16.054Z",
              "durationMs": 23,
              "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:12:16 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": "11",
                "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:12:16.054Z",
              "endedAt": "2026-06-23T11:12:16.075Z",
              "durationMs": 21,
              "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:12:16 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": "18",
                "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:12:16.075Z",
              "endedAt": "2026-06-23T11:12:16.144Z",
              "durationMs": 69,
              "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:12:16 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": "65",
                "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:12:16.144Z",
              "endedAt": "2026-06-23T11:12:16.159Z",
              "durationMs": 15,
              "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:12:16 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": "10",
                "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:12:16.159Z",
              "endedAt": "2026-06-23T11:12:16.175Z",
              "durationMs": 16,
              "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:12:16 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": "12",
                "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:12:16.175Z",
              "endedAt": "2026-06-23T11:12:16.240Z",
              "durationMs": 65,
              "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:12:16 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": "61",
                "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:12:16.241Z",
              "endedAt": "2026-06-23T11:12:16.257Z",
              "durationMs": 16,
              "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:12:16 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": "13",
                "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:12:16.257Z",
              "endedAt": "2026-06-23T11:12:16.270Z",
              "durationMs": 13,
              "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:12:16 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": "9",
                "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:12:16.270Z",
              "endedAt": "2026-06-23T11:12:16.334Z",
              "durationMs": 64,
              "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:12:16 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": "61",
                "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:12:16.334Z",
              "endedAt": "2026-06-23T11:12:16.349Z",
              "durationMs": 15,
              "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:12:16 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 '{\"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:12:16.349Z",
              "endedAt": "2026-06-23T11:12:16.363Z",
              "durationMs": 14,
              "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:12:16 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": "11",
                "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:12:16.363Z",
              "endedAt": "2026-06-23T11:12:16.376Z",
              "durationMs": 13,
              "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:12:16 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": "10",
                "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:12:16.376Z",
              "endedAt": "2026-06-23T11:12:16.456Z",
              "durationMs": 80,
              "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": "7643",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:16 GMT",
                "etag": "W/\"1ddb-OFWTLHHzr9N2JP7y5HQiFMI1LY4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:16.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": "Business",
                  "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": "Married",
                  "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:12:16.383Z",
                  "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:12:16.456Z",
              "endedAt": "2026-06-23T11:12:16.465Z",
              "durationMs": 9,
              "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:12:16 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\":\"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:12:16.465Z",
              "endedAt": "2026-06-23T11:12:16.531Z",
              "durationMs": 66,
              "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:12:16 GMT",
                "etag": "W/\"1df6-OXW0SFiHDQp3m9USlax9gfy8mes\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:16.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:12:16.472Z",
                  "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:12:16.531Z",
              "endedAt": "2026-06-23T11:12:16.656Z",
              "durationMs": 125,
              "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:12:16 GMT",
                "etag": "W/\"1df4-NLQdNLRAkrEtw3yFfXzr0xsB1X4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "122",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:16.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": "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:12:16.545Z",
                  "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:12:16.656Z",
              "endedAt": "2026-06-23T11:12:16.732Z",
              "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:12:16 GMT",
                "etag": "W/\"1dec-cnX5Kj8I6HXGmLYxj+6YEn26htQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:16.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:12:16.663Z",
                  "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:12:16.732Z",
              "endedAt": "2026-06-23T11:12:16.746Z",
              "durationMs": 14,
              "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:12:16 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": "11",
                "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:12:16.746Z",
              "endedAt": "2026-06-23T11:12:16.839Z",
              "durationMs": 93,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1453",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:16 GMT",
                "etag": "W/\"5ad-YIKqtChAMKYx9VGaqabeU5C42Y4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "dilip@fixerra.inn",
                  "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:11:55.349Z",
                  "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:12:14.000Z",
                  "profile_updated_at": "2026-06-23T11:12:12.000Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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:12:16.839Z",
              "endedAt": "2026-06-23T11:12:16.953Z",
              "durationMs": 114,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1453",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:16 GMT",
                "etag": "W/\"5ad-YIKqtChAMKYx9VGaqabeU5C42Y4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "dilip@fixerra.inn",
                  "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:11:55.349Z",
                  "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:12:14.000Z",
                  "profile_updated_at": "2026-06-23T11:12:12.000Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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:12:16.953Z",
              "endedAt": "2026-06-23T11:12:17.053Z",
              "durationMs": 100,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "issuer_code": "SSFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1453",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:17 GMT",
                "etag": "W/\"5ad-YIKqtChAMKYx9VGaqabeU5C42Y4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "dilip@fixerra.inn",
                  "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:11:55.349Z",
                  "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:12:14.000Z",
                  "profile_updated_at": "2026-06-23T11:12:12.000Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.000Z",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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:12:17.053Z",
              "endedAt": "2026-06-23T11:12:17.060Z",
              "durationMs": 7,
              "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:12:17 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' \\\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": []
            }
          ],
          "summary": {
            "total": 139,
            "passed": 139,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 8550
          }
        },
        {
          "stepId": "step-06-personal-details",
          "stepName": "Personal Details",
          "cases": [
            {
              "caseId": "PI_001",
              "caseName": "Get dropdown options for personal info form (SSFB / Suryoday)",
              "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:12:17.060Z",
              "endedAt": "2026-06-23T11:12:17.065Z",
              "durationMs": 5,
              "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:12:17 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": "2",
                "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": "PI_002",
              "caseName": "Save personal details for SSFB / Suryoday 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:12:17.065Z",
              "endedAt": "2026-06-23T11:12:17.263Z",
              "durationMs": 198,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:17 GMT",
                "etag": "W/\"678-HF0n4UXT69Jf01I4ynpNYhBHDb0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "195",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:17.143Z",
                  "profile_updated_at": "2026-06-23T11:12:17.143Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:17.263Z",
              "endedAt": "2026-06-23T11:12:17.387Z",
              "durationMs": 124,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1662",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:17 GMT",
                "etag": "W/\"67e-4+JLOg32X4rVjId82Xaf4eHLteA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "120",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "personal.contenttype@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:17.297Z",
                  "profile_updated_at": "2026-06-23T11:12:17.297Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:17.387Z",
              "endedAt": "2026-06-23T11:12:17.515Z",
              "durationMs": 128,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1663",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:17 GMT",
                "etag": "W/\"67f-UhSjSh6sMRxzacDzdR7/P0pxwwM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "personal.responsetime@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:17.448Z",
                  "profile_updated_at": "2026-06-23T11:12:17.448Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:17.515Z",
              "endedAt": "2026-06-23T11:12:17.620Z",
              "durationMs": 105,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "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": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:17 GMT",
                "etag": "W/\"678-yZV75QJTGeGOoQJ5OIK/fiPWcGM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "personal.query@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:17.550Z",
                  "profile_updated_at": "2026-06-23T11:12:17.550Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "PI_006",
              "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:12:17.620Z",
              "endedAt": "2026-06-23T11:12:17.762Z",
              "durationMs": 142,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "1655",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:17 GMT",
                "etag": "W/\"677-VfQkb3679S4I2gFm7V381pghR20\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "138",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "personal.ssfb@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:17.652Z",
                  "profile_updated_at": "2026-06-23T11:12:17.652Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "PI_007",
              "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:12:17.762Z",
              "endedAt": "2026-06-23T11:12:17.890Z",
              "durationMs": 128,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "1655",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:17 GMT",
                "etag": "W/\"677-LDHQk3ro3QCcFg5DAloHipbsqpA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "personal.usfb@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:17.792Z",
                  "profile_updated_at": "2026-06-23T11:12:17.792Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:17.890Z",
              "endedAt": "2026-06-23T11:12:18.029Z",
              "durationMs": 139,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:18 GMT",
                "etag": "W/\"678-kC8k1lU6Y64BbJTfbBHP0HLzX4I\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "personal.ausfb@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:17.916Z",
                  "profile_updated_at": "2026-06-23T11:12:17.916Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.029Z",
              "endedAt": "2026-06-23T11:12:18.160Z",
              "durationMs": 131,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "1654",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:18 GMT",
                "etag": "W/\"676-YgNriZqMMoL5AwJAkxdkRfia7lA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "127",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "personal.iib@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:18.059Z",
                  "profile_updated_at": "2026-06-23T11:12:18.059Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.160Z",
              "endedAt": "2026-06-23T11:12:18.191Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:18 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": "27",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.191Z",
              "endedAt": "2026-06-23T11:12:18.243Z",
              "durationMs": 52,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "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:12:18 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": "48",
                "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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.243Z",
              "endedAt": "2026-06-23T11:12:18.362Z",
              "durationMs": 119,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "true"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1666",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:18 GMT",
                "etag": "W/\"682-DZdcZ+ADymqNgoY1/Gl/baUTLeU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "personal.creditcard.true@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:18.275Z",
                  "profile_updated_at": "2026-06-23T11:12:18.275Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.362Z",
              "endedAt": "2026-06-23T11:12:18.508Z",
              "durationMs": 146,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:18 GMT",
                "etag": "W/\"683-ba1DdzGkGjXoeiazJGNNXqtuKoU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "personal.creditcard.false@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:18.433Z",
                  "profile_updated_at": "2026-06-23T11:12:18.433Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.508Z",
              "endedAt": "2026-06-23T11:12:18.538Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "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:12:18 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.538Z",
              "endedAt": "2026-06-23T11:12:18.657Z",
              "durationMs": 119,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1653",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:18 GMT",
                "etag": "W/\"675-0a+SFBLST3WEy2gNvHhHkV13eqU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:13.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "valid.email@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:18.565Z",
                  "profile_updated_at": "2026-06-23T11:12:18.565Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.657Z",
              "endedAt": "2026-06-23T11:12:18.672Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:18 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.672Z",
              "endedAt": "2026-06-23T11:12:18.683Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:18 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.683Z",
              "endedAt": "2026-06-23T11:12:18.695Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:18 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.695Z",
              "endedAt": "2026-06-23T11:12:18.729Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:18 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": "30",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:18.730Z",
              "endedAt": "2026-06-23T11:12:19.353Z",
              "durationMs": 623,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1631",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:19 GMT",
                "etag": "W/\"65f-KzGQTzfiCE7Q0OnSItuzyL5LJp8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "620",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:19.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
                  "code": "91",
                  "dob": "",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:11:55.349Z",
                  "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:12:19.000Z",
                  "profile_updated_at": "2026-06-23T11:12:18.936Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "PI_024",
              "caseName": "Verify empty email",
              "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:12:19.353Z",
              "endedAt": "2026-06-23T11:12:19.541Z",
              "durationMs": 188,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "201",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:19 GMT",
                "etag": "W/\"c9-wKXv3FWBEBME8iTerAPyZggrN2w\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXUSER1290",
                    "error": "Failed update personal details for ssfb bank"
                  }
                ]
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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 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 FIXUSER1290",
                  "passed": true,
                  "message": "FIXUSER1290 present"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [
                "FIXUSER1290"
              ],
              "actualErrorCodes": [
                "FIXUSER1290"
              ]
            },
            {
              "caseId": "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:12:19.541Z",
              "endedAt": "2026-06-23T11:12:19.631Z",
              "durationMs": 90,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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": "18",
                "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.631Z",
              "endedAt": "2026-06-23T11:12:19.646Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.646Z",
              "endedAt": "2026-06-23T11:12:19.731Z",
              "durationMs": 85,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.731Z",
              "endedAt": "2026-06-23T11:12:19.744Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.744Z",
              "endedAt": "2026-06-23T11:12:19.756Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.756Z",
              "endedAt": "2026-06-23T11:12:19.780Z",
              "durationMs": 24,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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": "20",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.780Z",
              "endedAt": "2026-06-23T11:12:19.833Z",
              "durationMs": 53,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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": "49",
                "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.833Z",
              "endedAt": "2026-06-23T11:12:19.846Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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": "9",
                "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.846Z",
              "endedAt": "2026-06-23T11:12:19.857Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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": "7",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.857Z",
              "endedAt": "2026-06-23T11:12:19.874Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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": "13",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.874Z",
              "endedAt": "2026-06-23T11:12:19.937Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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": "60",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.937Z",
              "endedAt": "2026-06-23T11:12:19.956Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.956Z",
              "endedAt": "2026-06-23T11:12:19.968Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:19 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": "8",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:19.968Z",
              "endedAt": "2026-06-23T11:12:20.051Z",
              "durationMs": 83,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:20 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.051Z",
              "endedAt": "2026-06-23T11:12:20.153Z",
              "durationMs": 102,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:20 GMT",
                "etag": "W/\"678-8oGseWHuKd1nfyIc0ZQ0v+LelhA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "98",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:19.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.078Z",
                  "profile_updated_at": "2026-06-23T11:12:20.078Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.153Z",
              "endedAt": "2026-06-23T11:12:20.165Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:20 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": "9",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.165Z",
              "endedAt": "2026-06-23T11:12:20.275Z",
              "durationMs": 110,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:20 GMT",
                "etag": "W/\"678-Ql+XQ7V7cyuS77LYbfvDIpWhtrs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "106",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:20.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:20.197Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.275Z",
              "endedAt": "2026-06-23T11:12:20.296Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:20 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": "18",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.296Z",
              "endedAt": "2026-06-23T11:12:20.404Z",
              "durationMs": 108,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:20 GMT",
                "etag": "W/\"678-AmCOphXxelbuegJrgt6wqFteeWY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:20.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:20.347Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.404Z",
              "endedAt": "2026-06-23T11:12:20.428Z",
              "durationMs": 24,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:20 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": "20",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.428Z",
              "endedAt": "2026-06-23T11:12:20.440Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:20 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": "8",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.440Z",
              "endedAt": "2026-06-23T11:12:20.631Z",
              "durationMs": 191,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:20 GMT",
                "etag": "W/\"678-VSBx9g8+p2oq28ghQzTBD3B661Y\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "120",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:20.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:20.467Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.631Z",
              "endedAt": "2026-06-23T11:12:20.731Z",
              "durationMs": 100,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:20 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": "8",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.731Z",
              "endedAt": "2026-06-23T11:12:20.814Z",
              "durationMs": 83,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:20 GMT",
                "etag": "W/\"678-aXU5Z2HDm2DRLDMjtN9YQ9nk/jI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:20.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:20.762Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.814Z",
              "endedAt": "2026-06-23T11:12:20.837Z",
              "durationMs": 23,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:20 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": "19",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.837Z",
              "endedAt": "2026-06-23T11:12:20.972Z",
              "durationMs": 135,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:20 GMT",
                "etag": "W/\"678-EoV4eH9Hd7nHvhuOQVc2B7h5Qik\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "131",
                "server": "envoy",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:20.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:20.865Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.972Z",
              "endedAt": "2026-06-23T11:12:20.998Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:20 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": "14",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:20.999Z",
              "endedAt": "2026-06-23T11:12:21.097Z",
              "durationMs": 98,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:21 GMT",
                "etag": "W/\"678-Dm0HZU+Lmd+05sly/5zwM7T1qfs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:21.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:21.040Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.097Z",
              "endedAt": "2026-06-23T11:12:21.157Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "49",
                "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.157Z",
              "endedAt": "2026-06-23T11:12:21.168Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "8",
                "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.168Z",
              "endedAt": "2026-06-23T11:12:21.288Z",
              "durationMs": 120,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:21 GMT",
                "etag": "W/\"678-bMjX20Nvlj60V21oVyJD+S/55FQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "117",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:21.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:21.235Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.288Z",
              "endedAt": "2026-06-23T11:12:21.308Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "16",
                "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.308Z",
              "endedAt": "2026-06-23T11:12:21.426Z",
              "durationMs": 118,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:21 GMT",
                "etag": "W/\"678-8Svj1hFV7eRkqqMEpnqut9bxto4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "115",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:21.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:21.338Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.426Z",
              "endedAt": "2026-06-23T11:12:21.439Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.440Z",
              "endedAt": "2026-06-23T11:12:21.453Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.453Z",
              "endedAt": "2026-06-23T11:12:21.530Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "74",
                "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.530Z",
              "endedAt": "2026-06-23T11:12:21.546Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "13",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.546Z",
              "endedAt": "2026-06-23T11:12:21.560Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.560Z",
              "endedAt": "2026-06-23T11:12:21.629Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "66",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.629Z",
              "endedAt": "2026-06-23T11:12:21.642Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "9",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.642Z",
              "endedAt": "2026-06-23T11:12:21.655Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "10",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.655Z",
              "endedAt": "2026-06-23T11:12:21.668Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "10",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.668Z",
              "endedAt": "2026-06-23T11:12:21.737Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "65",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.737Z",
              "endedAt": "2026-06-23T11:12:21.758Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "18",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.758Z",
              "endedAt": "2026-06-23T11:12:21.827Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:21 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": "66",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.827Z",
              "endedAt": "2026-06-23T11:12:21.994Z",
              "durationMs": 167,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:21 GMT",
                "etag": "W/\"678-sjR7Oz9rDb4QuWUQ2k5Fg2XadrI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:21.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:21.854Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:21.994Z",
              "endedAt": "2026-06-23T11:12:22.027Z",
              "durationMs": 33,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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": "30",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.027Z",
              "endedAt": "2026-06-23T11:12:22.186Z",
              "durationMs": 159,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:22 GMT",
                "etag": "W/\"678-ekba+y25zevKaPT3h88LR6JGG9s\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "155",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:22.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:22.133Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.186Z",
              "endedAt": "2026-06-23T11:12:22.228Z",
              "durationMs": 42,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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": "39",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.228Z",
              "endedAt": "2026-06-23T11:12:22.315Z",
              "durationMs": 87,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:22 GMT",
                "etag": "W/\"678-XPGj+g/wj96skF7Kx2D8teMHgYM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:22.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:22.259Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.315Z",
              "endedAt": "2026-06-23T11:12:22.331Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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": "13",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.332Z",
              "endedAt": "2026-06-23T11:12:22.462Z",
              "durationMs": 130,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1656",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:22 GMT",
                "etag": "W/\"678-RmrjEeLyOnK7WvJiljHzl9HChFo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:22.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "suite.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:20.000Z",
                  "profile_updated_at": "2026-06-23T11:12:22.364Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.462Z",
              "endedAt": "2026-06-23T11:12:22.474Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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": "8",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.474Z",
              "endedAt": "2026-06-23T11:12:22.495Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.495Z",
              "endedAt": "2026-06-23T11:12:22.548Z",
              "durationMs": 53,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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": "31",
                "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.548Z",
              "endedAt": "2026-06-23T11:12:22.560Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.560Z",
              "endedAt": "2026-06-23T11:12:22.580Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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": "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.580Z",
              "endedAt": "2026-06-23T11:12:22.643Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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": "60",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.643Z",
              "endedAt": "2026-06-23T11:12:22.656Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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": "9",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.656Z",
              "endedAt": "2026-06-23T11:12:22.668Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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": "9",
                "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.668Z",
              "endedAt": "2026-06-23T11:12:22.728Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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": "56",
                "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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.728Z",
              "endedAt": "2026-06-23T11:12:22.741Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.741Z",
              "endedAt": "2026-06-23T11:12:22.748Z",
              "durationMs": 7,
              "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": "SSFB",
                "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:12:22 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SSFB&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": "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:12:22.748Z",
              "endedAt": "2026-06-23T11:12:22.753Z",
              "durationMs": 5,
              "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": "SSFB",
                "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:12:22 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?issuer_code=SSFB&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": "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:12:22.753Z",
              "endedAt": "2026-06-23T11:12:22.759Z",
              "durationMs": 6,
              "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": "SSFB",
                "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:12:22 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=SSFB&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": "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:12:22.760Z",
              "endedAt": "2026-06-23T11:12:22.778Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.778Z",
              "endedAt": "2026-06-23T11:12:22.953Z",
              "durationMs": 175,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1658",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:22 GMT",
                "etag": "W/\"67a-O/wOpgreB/8NixcUBCRkJLqQDdk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:22.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "headers.personal@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:22.844Z",
                  "profile_updated_at": "2026-06-23T11:12:22.844Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.954Z",
              "endedAt": "2026-06-23T11:12:22.966Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:22 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:22.967Z",
              "endedAt": "2026-06-23T11:12:23.092Z",
              "durationMs": 125,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1649",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"671-HmpCJONkcg4uF6Xwl6ex0rKwfb8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "122",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:22.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "duplicate@fixerra.in",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:22.995Z",
                  "profile_updated_at": "2026-06-23T11:12:22.995Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:23.092Z",
              "endedAt": "2026-06-23T11:12:23.277Z",
              "durationMs": 185,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "issuer_type": "BANK",
                "credit_card": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1652",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"674-0NQBEhvNsjFznynIN/50a2NVREU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:11:55.000Z",
                  "updatedAt": "2026-06-23T11:12:22.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": null,
                  "email": "email.gate@fixerra.test",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "",
                  "middle_name": "",
                  "last_name": "",
                  "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:11:55.349Z",
                  "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:12:23.147Z",
                  "profile_updated_at": "2026-06-23T11:12:23.147Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:41:55.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&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:23.277Z",
              "endedAt": "2026-06-23T11:12:23.298Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:23 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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "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:12:23.298Z",
              "endedAt": "2026-06-23T11:12:23.329Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB",
                "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:12:23 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": "28",
                "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=SSFB&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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"
              ]
            }
          ],
          "summary": {
            "total": 93,
            "passed": 93,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 6262
          }
        },
        {
          "stepId": "step-07-stepper-ekyc",
          "stepName": "Aadhaar eKYC Stepper",
          "cases": [
            {
              "caseId": "EKYC_001",
              "caseName": "Verify check-status success",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.329Z",
              "endedAt": "2026-06-23T11:12:23.362Z",
              "durationMs": 33,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "page_name": "stepper_ssfb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"page_name\":\"stepper_ssfb\"}'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": true,
                  "message": "statusCode=200"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "success=1"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "Payload present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_002",
              "caseName": "Verify response status code",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.362Z",
              "endedAt": "2026-06-23T11:12:23.440Z",
              "durationMs": 78,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "page_name": "stepper_ssfb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"page_name\":\"stepper_ssfb\"}'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": true,
                  "message": "statusCode=200"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_003",
              "caseName": "Verify success flag",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.440Z",
              "endedAt": "2026-06-23T11:12:23.550Z",
              "durationMs": 110,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "page_name": "stepper_ssfb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"page_name\":\"stepper_ssfb\"}'",
              "validations": [
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "success=1"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_004",
              "caseName": "Verify payload object exists",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.550Z",
              "endedAt": "2026-06-23T11:12:23.583Z",
              "durationMs": 33,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "page_name": "stepper_ssfb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"page_name\":\"stepper_ssfb\"}'",
              "validations": [
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "Payload present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_005",
              "caseName": "Verify FD product type flow",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.583Z",
              "endedAt": "2026-06-23T11:12:23.618Z",
              "durationMs": 35,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "product_type": "FD"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"product_type\":\"FD\"}'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "Payload present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_006",
              "caseName": "Verify RD product type flow",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.618Z",
              "endedAt": "2026-06-23T11:12:23.651Z",
              "durationMs": 33,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": true,
                "product_type": "RD"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":true,\"product_type\":\"RD\"}'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "Payload present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_007",
              "caseName": "Verify SA product type flow",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.651Z",
              "endedAt": "2026-06-23T11:12:23.685Z",
              "durationMs": 33,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "product_type": "SA"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"product_type\":\"SA\"}'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "Payload present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_008",
              "caseName": "Verify pan_consent flow",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.685Z",
              "endedAt": "2026-06-23T11:12:23.717Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "pan_consent": true
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"pan_consent\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_009",
              "caseName": "Verify custom name flow",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.717Z",
              "endedAt": "2026-06-23T11:12:23.749Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "name": "QA Automation User"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"name\":\"QA Automation User\"}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_010",
              "caseName": "Verify credit card flow",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.750Z",
              "endedAt": "2026-06-23T11:12:23.853Z",
              "durationMs": 103,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "cc": true
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"cc\":true}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_011",
              "caseName": "Verify verify_pan flow",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.853Z",
              "endedAt": "2026-06-23T11:12:23.885Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "verify_pan": 1
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"verify_pan\":1}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_012",
              "caseName": "Verify eKYC verified flow",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.885Z",
              "endedAt": "2026-06-23T11:12:23.943Z",
              "durationMs": 58,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "is_ekyc_verified": 1,
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"is_ekyc_verified\":1,\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_013",
              "caseName": "Verify flowId query parameter behavior",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:23.943Z",
              "endedAt": "2026-06-23T11:12:23.980Z",
              "durationMs": 37,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "product_type": "SA"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:23 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"product_type\":\"SA\"}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_014",
              "caseName": "Verify missing JWT",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:23.980Z",
              "endedAt": "2026-06-23T11:12:23.986Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "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:12:23 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_015",
              "caseName": "Verify invalid JWT",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:23.986Z",
              "endedAt": "2026-06-23T11:12:23.991Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer bad.jwt"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "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:12:23 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer bad.jwt' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_016",
              "caseName": "Verify expired JWT",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:23.991Z",
              "endedAt": "2026-06-23T11:12:23.996Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer expired.jwt.token"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "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:12:23 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_017",
              "caseName": "Verify malformed JWT",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:23.996Z",
              "endedAt": "2026-06-23T11:12:24.001Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Invalid bearer format"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "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:12:23 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Invalid bearer format' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_018",
              "caseName": "Verify wrong authorization scheme",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:24.001Z",
              "endedAt": "2026-06-23T11:12:24.006Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Basic token"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "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:12:24 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Basic token' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_019",
              "caseName": "Verify verify_pan datatype validation",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.006Z",
              "endedAt": "2026-06-23T11:12:24.024Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "verify_pan": "1",
                "is_rd": 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:12:24 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 POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"verify_pan\":\"1\",\"is_rd\":false}'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "statusCode=400"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_020",
              "caseName": "Verify is_rd datatype validation",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.024Z",
              "endedAt": "2026-06-23T11:12:24.047Z",
              "durationMs": 23,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": "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:12:24 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": "20",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad request",
                "payload": {},
                "error": []
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":\"false\"}'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "statusCode=400"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_021",
              "caseName": "Verify cc datatype validation",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "failed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.047Z",
              "endedAt": "2026-06-23T11:12:24.078Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "cc": "true"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"cc\":\"true\"}'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": false,
                  "message": "Expected 400 got 201"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": false,
                  "message": "Expected body.statusCode 400 got 200"
                }
              ],
              "failureReason": "Expected 400 got 201; Expected body.statusCode 400 got 200",
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_022",
              "caseName": "Verify verify_personal_details datatype validation",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.078Z",
              "endedAt": "2026-06-23T11:12:24.135Z",
              "durationMs": 57,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "verify_personal_details": 1
              },
              "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:12:24 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": "53",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad request",
                "payload": {},
                "error": []
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"verify_personal_details\":1}'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "statusCode=400"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_023",
              "caseName": "Verify PAN datatype validation",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.135Z",
              "endedAt": "2026-06-23T11:12:24.151Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "pan": 1234567890
              },
              "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:12:24 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": "13",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad request",
                "payload": {},
                "error": []
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"pan\":1234567890}'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "statusCode=400"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_024",
              "caseName": "Verify empty request body",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.151Z",
              "endedAt": "2026-06-23T11:12:24.183Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {},
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_025",
              "caseName": "Verify null request body",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.183Z",
              "endedAt": "2026-06-23T11:12:24.190Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": null,
              "requestQuery": {},
              "responseHeaders": {
                "content-length": "214",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"d6-2V0DqiThPaTXhH+sIoaG+1/H0fU\"",
                "vary": "Origin",
                "x-powered-by": "Express",
                "x-envoy-upstream-service-time": "3",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Unexpected token 'n', \"null\" is not valid JSON",
                "payload": {},
                "error": {
                  "statusCode": 400,
                  "message": "Unexpected token 'n', \"null\" is not valid JSON",
                  "error": "Bad Request"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                },
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "statusCode=400"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_026",
              "caseName": "Verify unknown field handling",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.190Z",
              "endedAt": "2026-06-23T11:12:24.239Z",
              "durationMs": 49,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "unknown_field": "value"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"unknown_field\":\"value\"}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_027",
              "caseName": "Verify verify_pan=0 boundary",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.239Z",
              "endedAt": "2026-06-23T11:12:24.276Z",
              "durationMs": 37,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "verify_pan": 0
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"verify_pan\":0}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_028",
              "caseName": "Verify is_rd absent",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.276Z",
              "endedAt": "2026-06-23T11:12:24.349Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                }
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"}}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_029",
              "caseName": "Verify is_rd=false",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.349Z",
              "endedAt": "2026-06-23T11:12:24.379Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_030",
              "caseName": "Verify product_type absent",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.379Z",
              "endedAt": "2026-06-23T11:12:24.410Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_031",
              "caseName": "Verify empty custom name",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.410Z",
              "endedAt": "2026-06-23T11:12:24.468Z",
              "durationMs": 58,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "name": ""
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"name\":\"\"}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_032",
              "caseName": "Verify whitespace custom name",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.468Z",
              "endedAt": "2026-06-23T11:12:24.500Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "name": " "
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"name\":\" \"}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_033",
              "caseName": "Verify pan_consent=false",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.500Z",
              "endedAt": "2026-06-23T11:12:24.574Z",
              "durationMs": 74,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "pan_consent": false
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"pan_consent\":false}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_034",
              "caseName": "Verify invalid redirect_url",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:24.574Z",
              "endedAt": "2026-06-23T11:12:24.615Z",
              "durationMs": 41,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "redirect_url": "invalid"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"6d-24sYwHZE7qQUN8pQ+fGn0BxYfGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "pan_exists": false,
                  "is_pan_verified": false
                },
                "error": {}
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"redirect_url\":\"invalid\"}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 400",
                  "passed": true,
                  "message": "Status 201 OK, body.statusCode=200"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "OTP_SEND_001",
              "caseName": "Send SSFB issuer OTP (pre-eKYC)",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/send",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.615Z",
              "endedAt": "2026-06-23T11:12:24.662Z",
              "durationMs": 47,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "208",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"d0-E/SAGk8K7l9pyjktVYwi7OniwG4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "SEND_OTP_FAILED",
                    "f_error_message": "Failed to send OTP",
                    "errorCode": "FIXUSER1485",
                    "error": "Failed to send OTP"
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/otp/send?f_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Response status should be 200 or 400",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                },
                {
                  "description": "Response should be handled gracefully",
                  "passed": true,
                  "message": "Graceful response envelope present"
                }
              ],
              "docsFile": "user-services/API_QA_PI_GET_API_V1_OTP_SEND.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1485"
              ]
            },
            {
              "caseId": "OTP_SEND_010",
              "caseName": "Verify OTP send missing JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/send",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:24.662Z",
              "endedAt": "2026-06-23T11:12:24.677Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:24 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": "8",
                "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/api/v1/otp/send?f_code=SSFB' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_API_V1_OTP_SEND.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "OTP_SEND_011",
              "caseName": "Verify OTP send invalid JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/send",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:24.677Z",
              "endedAt": "2026-06-23T11:12:24.683Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer bad.jwt"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:24 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/api/v1/otp/send?f_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer bad.jwt'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_API_V1_OTP_SEND.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "OTP_SEND_012",
              "caseName": "Verify OTP send expired JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/send",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:24.683Z",
              "endedAt": "2026-06-23T11:12:24.689Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer expired.jwt.token"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:24 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/api/v1/otp/send?f_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_API_V1_OTP_SEND.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "OTP_VERIFY_005",
              "caseName": "Verify incorrect OTP",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/verify",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.689Z",
              "endedAt": "2026-06-23T11:12:24.756Z",
              "durationMs": 67,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB",
                "otp": "000000"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "261",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"105-Ou4Tpf8DMO++RwerOt6bbLoPCwc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "OTP expired",
                    "f_error_message": "OTP has expired, please request a new one",
                    "errorCode": "FIXSSFB245",
                    "error": "No correlation ID found in cache; OTP session expired"
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/otp/verify?f_code=SSFB&otp=000000' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Response status should be 400 or 500",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                }
              ],
              "docsFile": "user-services/API_QA_PI_GET_API_V1_OTP_VERIFY.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXSSFB245"
              ]
            },
            {
              "caseId": "OTP_VERIFY_006",
              "caseName": "Verify missing OTP",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/verify",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.757Z",
              "endedAt": "2026-06-23T11:12:24.799Z",
              "durationMs": 42,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "261",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"105-Ou4Tpf8DMO++RwerOt6bbLoPCwc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "OTP expired",
                    "f_error_message": "OTP has expired, please request a new one",
                    "errorCode": "FIXSSFB245",
                    "error": "No correlation ID found in cache; OTP session expired"
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/otp/verify?f_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                }
              ],
              "docsFile": "user-services/API_QA_PI_GET_API_V1_OTP_VERIFY.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXSSFB245"
              ]
            },
            {
              "caseId": "OTP_VERIFY_007",
              "caseName": "Verify OTP length validation",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/verify",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.799Z",
              "endedAt": "2026-06-23T11:12:24.829Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB",
                "otp": "123"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "261",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"105-Ou4Tpf8DMO++RwerOt6bbLoPCwc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "OTP expired",
                    "f_error_message": "OTP has expired, please request a new one",
                    "errorCode": "FIXSSFB245",
                    "error": "No correlation ID found in cache; OTP session expired"
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/otp/verify?f_code=SSFB&otp=123' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Response status should be 400 or 500",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                }
              ],
              "docsFile": "user-services/API_QA_PI_GET_API_V1_OTP_VERIFY.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXSSFB245"
              ]
            },
            {
              "caseId": "OTP_VERIFY_008",
              "caseName": "Verify OTP with alphabets",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/verify",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.829Z",
              "endedAt": "2026-06-23T11:12:24.867Z",
              "durationMs": 38,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB",
                "otp": "ABC123"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "261",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"105-Ou4Tpf8DMO++RwerOt6bbLoPCwc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "OTP expired",
                    "f_error_message": "OTP has expired, please request a new one",
                    "errorCode": "FIXSSFB245",
                    "error": "No correlation ID found in cache; OTP session expired"
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/otp/verify?f_code=SSFB&otp=ABC123' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Response status should be 400 or 500",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                }
              ],
              "docsFile": "user-services/API_QA_PI_GET_API_V1_OTP_VERIFY.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXSSFB245"
              ]
            },
            {
              "caseId": "OTP_VERIFY_009",
              "caseName": "Verify OTP with special characters",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/verify",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:12:24.867Z",
              "endedAt": "2026-06-23T11:12:24.941Z",
              "durationMs": 74,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB",
                "otp": "@#1234"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "261",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:24 GMT",
                "etag": "W/\"105-Ou4Tpf8DMO++RwerOt6bbLoPCwc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "OTP expired",
                    "f_error_message": "OTP has expired, please request a new one",
                    "errorCode": "FIXSSFB245",
                    "error": "No correlation ID found in cache; OTP session expired"
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/otp/verify?f_code=SSFB&otp=%40%231234' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Response status should be 400 or 500",
                  "passed": true,
                  "message": "Status 400 OK, body.statusCode=400"
                }
              ],
              "docsFile": "user-services/API_QA_PI_GET_API_V1_OTP_VERIFY.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXSSFB245"
              ]
            },
            {
              "caseId": "OTP_VERIFY_011",
              "caseName": "Verify OTP verify missing JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/verify",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:24.941Z",
              "endedAt": "2026-06-23T11:12:24.948Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestQuery": {
                "f_code": "SSFB",
                "otp": "123456"
              },
              "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:12:24 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/api/v1/otp/verify?f_code=SSFB&otp=123456' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_API_V1_OTP_VERIFY.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "OTP_VERIFY_012",
              "caseName": "Verify OTP verify invalid JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/verify",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:24.948Z",
              "endedAt": "2026-06-23T11:12:24.953Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer bad.jwt"
              },
              "requestQuery": {
                "f_code": "SSFB",
                "otp": "123456"
              },
              "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:12:24 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/api/v1/otp/verify?f_code=SSFB&otp=123456' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer bad.jwt'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_API_V1_OTP_VERIFY.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "OTP_VERIFY_013",
              "caseName": "Verify OTP verify expired JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/otp/verify",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:24.953Z",
              "endedAt": "2026-06-23T11:12:24.959Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer expired.jwt.token"
              },
              "requestQuery": {
                "f_code": "SSFB",
                "otp": "123456"
              },
              "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:12:24 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/api/v1/otp/verify?f_code=SSFB&otp=123456' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_API_V1_OTP_VERIFY.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_EXT_003",
              "caseName": "Verify external eKYC URL missing JWT",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:24.959Z",
              "endedAt": "2026-06-23T11:12:24.967Z",
              "durationMs": 8,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "page_name": "stepper_ssfb"
              },
              "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:12:24 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"page_name\":\"stepper_ssfb\"}'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_EXT_004",
              "caseName": "Verify external eKYC URL invalid JWT",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:24.967Z",
              "endedAt": "2026-06-23T11:12:24.972Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer bad.jwt"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "page_name": "stepper_ssfb"
              },
              "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:12:24 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer bad.jwt' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"page_name\":\"stepper_ssfb\"}'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "EKYC_EXT_005",
              "caseName": "Verify external eKYC URL expired JWT",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v2/ssfb/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:24.972Z",
              "endedAt": "2026-06-23T11:12:24.977Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer expired.jwt.token"
              },
              "requestPayload": {
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "SSFB"
                },
                "is_rd": false,
                "page_name": "stepper_ssfb"
              },
              "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:12:24 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/api/v2/ssfb/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token' \\\n  -d '{\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SSFB\"},\"is_rd\":false,\"page_name\":\"stepper_ssfb\"}'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401 OK, body.statusCode=401"
                },
                {
                  "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_GET_CHECK_STATUS.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            }
          ],
          "summary": {
            "total": 49,
            "passed": 48,
            "failed": 1,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 1645
          }
        },
        {
          "stepId": "step-08-nominee",
          "stepName": "Nominee",
          "cases": [
            {
              "caseId": "SSFB_NOMINEE_001",
              "caseName": "Get existing nominees (SSFB)",
              "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:12:24.978Z",
              "endedAt": "2026-06-23T11:12:25.026Z",
              "durationMs": 48,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:24 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": "46",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": []
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "SSFB_NOMINEE_002",
              "caseName": "Create valid adult nominee (SSFB)",
              "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:12:25.026Z",
              "endedAt": "2026-06-23T11:12:25.062Z",
              "durationMs": 36,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"206-VGJRs7Sb2plD4K4vuU1208Y7zSY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": true,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10771,
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "created_at": "2026-06-23T11:12:25.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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/66d6bddd-539e-4086-bdb4-de3692f9bf7a",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:25.062Z",
              "endedAt": "2026-06-23T11:12:25.079Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"27c-PqicD6XD7UHHANU5oheU0IXN2Ew\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "14",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "User already exists.",
                "payload": {
                  "is_default": true,
                  "id": 10771,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "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:12:25.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": null
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee/66d6bddd-539e-4086-bdb4-de3692f9bf7a?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "SSFB_NOMINEE_004",
              "caseName": "Update nominee relation by id",
              "service": "user-services",
              "method": "PUT",
              "url": "https://users-api.dev.fixerra.in/user-nominee/66d6bddd-539e-4086-bdb4-de3692f9bf7a",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:25.079Z",
              "endedAt": "2026-06-23T11:12:25.144Z",
              "durationMs": 65,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "nominee_relation": "Mother",
                "nominee_salutation": "MRS"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"270-R71T1ATvo4yNF0BsQXYg/aVhSUk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "SUCCESS",
                "payload": {
                  "is_default": true,
                  "id": 10771,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "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:12:25.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": null
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/66d6bddd-539e-4086-bdb4-de3692f9bf7a?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.144Z",
              "endedAt": "2026-06-23T11:12:25.179Z",
              "durationMs": 35,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"263-GXFLm6THO9QIxgqCzI1X8o2PnCE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10772,
                  "f_user_nominee_id": "65a2a263-c1a8-401a-8d3c-f9e4367563b9",
                  "created_at": "2026-06-23T11:12:25.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_NOMINEE_006",
              "caseName": "Delete nominee by id (cleanup minor nominee)",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/user-nominee/65a2a263-c1a8-401a-8d3c-f9e4367563b9",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:25.179Z",
              "endedAt": "2026-06-23T11:12:25.276Z",
              "durationMs": 97,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"2ae-WU80Vs6KN+pKLTBm/fBgYXLS2IA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": {
                  "is_default": false,
                  "id": 10772,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_nominee_id": "65a2a263-c1a8-401a-8d3c-f9e4367563b9",
                  "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:12:25.000Z",
                  "guardian_dob": "1990-04-15T00:00:00.000Z",
                  "guardian_relation": "Father",
                  "guardian_salutation": "MR",
                  "guardian_pan": "",
                  "deleted_at": "2026-06-23T11:12:25.265Z"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/65a2a263-c1a8-401a-8d3c-f9e4367563b9?f_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "SSFB_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:12:25.276Z",
              "endedAt": "2026-06-23T11:12:25.289Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:25 GMT",
                "etag": "W/\"272-PB3LrBuScUBui6mFTfWnEF/dn9Q\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "is_default": true,
                    "id": 10771,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                    "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:12:25.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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SSFB_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:12:25.289Z",
              "endedAt": "2026-06-23T11:12:25.301Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:25 GMT",
                "etag": "W/\"272-PB3LrBuScUBui6mFTfWnEF/dn9Q\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 10771,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                    "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:12:25.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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SSFB_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:12:25.301Z",
              "endedAt": "2026-06-23T11:12:25.370Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"208-0KbmDiBGM0La/Jop9pAyL7Z93bM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10773,
                  "f_user_nominee_id": "d177168a-9a48-4737-ae0b-54a2bf2f2c09",
                  "created_at": "2026-06-23T11:12:25.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_NOMINEE_010",
              "caseName": "Delete legacy-route nominee (cleanup)",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/user-nominee/d177168a-9a48-4737-ae0b-54a2bf2f2c09",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:25.370Z",
              "endedAt": "2026-06-23T11:12:25.424Z",
              "durationMs": 54,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"287-FVtkUlCicSeA87nTcJro1bCLwsM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": {
                  "is_default": false,
                  "id": 10773,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_nominee_id": "d177168a-9a48-4737-ae0b-54a2bf2f2c09",
                  "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:12:25.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": "2026-06-23T11:12:25.413Z"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/d177168a-9a48-4737-ae0b-54a2bf2f2c09?f_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "SSFB_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:12:25.424Z",
              "endedAt": "2026-06-23T11:12:25.453Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"208-5flXTVR3dZMHdL8uxJ+FVFI8dH4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10774,
                  "f_user_nominee_id": "7491c155-1180-4809-bb51-decad9fdd214",
                  "created_at": "2026-06-23T11:12:25.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.453Z",
              "endedAt": "2026-06-23T11:12:25.545Z",
              "durationMs": 92,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"207-Zrt4r3tYccKsS4kcPOwanL7yqw4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10775,
                  "f_user_nominee_id": "a4b03eeb-9962-4555-9ea8-6f5a6b8fdcd3",
                  "created_at": "2026-06-23T11:12:25.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.545Z",
              "endedAt": "2026-06-23T11:12:25.573Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"208-05E44+56rX1twIR4DvdveOYTESc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10776,
                  "f_user_nominee_id": "92e98800-e405-4951-88fe-9f77a2c4b577",
                  "created_at": "2026-06-23T11:12:25.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.573Z",
              "endedAt": "2026-06-23T11:12:25.646Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 GMT",
                "etag": "W/\"248-4L4Qw+Pc7XtZ76fzg93IW2tbbhw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10777,
                  "f_user_nominee_id": "25a2f626-cb9d-4a68-857d-50acd47c7541",
                  "created_at": "2026-06-23T11:12:25.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.646Z",
              "endedAt": "2026-06-23T11:12:25.661Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.661Z",
              "endedAt": "2026-06-23T11:12:25.742Z",
              "durationMs": 81,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 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": "78",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.742Z",
              "endedAt": "2026-06-23T11:12:25.829Z",
              "durationMs": 87,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 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": "83",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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": "SSFB_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:12:25.829Z",
              "endedAt": "2026-06-23T11:12:25.862Z",
              "durationMs": 33,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 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": "30",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.862Z",
              "endedAt": "2026-06-23T11:12:25.929Z",
              "durationMs": 67,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 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": "63",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.929Z",
              "endedAt": "2026-06-23T11:12:25.941Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 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": "9",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.941Z",
              "endedAt": "2026-06-23T11:12:25.952Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 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/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.952Z",
              "endedAt": "2026-06-23T11:12:25.971Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 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": "15",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:25.971Z",
              "endedAt": "2026-06-23T11:12:26.026Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:25 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": "53",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.027Z",
              "endedAt": "2026-06-23T11:12:26.037Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:26 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": "7",
                "server": "envoy",
                "connection": "close"
              },
              "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.037Z",
              "endedAt": "2026-06-23T11:12:26.067Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:26 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": "15",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.067Z",
              "endedAt": "2026-06-23T11:12:26.078Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {},
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:26 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": "8",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{}'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": true,
                  "message": "Status 400 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1072",
                "FIXUSER1071",
                "FIXUSER1077"
              ]
            },
            {
              "caseId": "SSFB_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:12:26.078Z",
              "endedAt": "2026-06-23T11:12:26.129Z",
              "durationMs": 51,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:26 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": "48",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Should not return a 5xx server error",
                  "passed": true,
                  "message": "HTTP 200 (no server error)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SSFB_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:12:26.129Z",
              "endedAt": "2026-06-23T11:12:26.154Z",
              "durationMs": 25,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "nominee_relation": "Mother"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:26 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": "21",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.154Z",
              "endedAt": "2026-06-23T11:12:26.207Z",
              "durationMs": 53,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:26 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": "46",
                "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=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "validations": [
                {
                  "description": "Should not return a 5xx server error",
                  "passed": true,
                  "message": "HTTP 400 (no server error)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SSFB_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:12:26.207Z",
              "endedAt": "2026-06-23T11:12:26.231Z",
              "durationMs": 24,
              "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:12:26 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": "21",
                "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": "SSFB_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:12:26.231Z",
              "endedAt": "2026-06-23T11:12:26.236Z",
              "durationMs": 5,
              "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:12:26 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": "2",
                "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": "SSFB_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:12:26.236Z",
              "endedAt": "2026-06-23T11:12:26.241Z",
              "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:12:26 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": "SSFB_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:12:26.241Z",
              "endedAt": "2026-06-23T11:12:26.245Z",
              "durationMs": 4,
              "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:12:26 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": "1",
                "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": "SSFB_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:12:26.245Z",
              "endedAt": "2026-06-23T11:12:26.274Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "full_name": "John A Doe",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:26 GMT",
                "etag": "W/\"206-jeSbZiNRhkDM0draZn7d7tOWn0E\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10778,
                  "f_user_nominee_id": "d3123b37-abb0-41f3-844d-1d67eb121b35",
                  "created_at": "2026-06-23T11:12:26.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.274Z",
              "endedAt": "2026-06-23T11:12:26.348Z",
              "durationMs": 74,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "full_name": "Madonna",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:26 GMT",
                "etag": "W/\"206-lbt1mU8+34gHLhg4BsO4j14o8g8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10779,
                  "f_user_nominee_id": "e05e7279-ba66-4c1a-800a-4e848f263d71",
                  "created_at": "2026-06-23T11:12:26.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.348Z",
              "endedAt": "2026-06-23T11:12:26.367Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "full_name": "John2 Doe",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:26 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": "15",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.367Z",
              "endedAt": "2026-06-23T11:12:26.426Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "full_name": ".",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:26 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": "56",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.427Z",
              "endedAt": "2026-06-23T11:12:26.526Z",
              "durationMs": 99,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:26 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": "96",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.526Z",
              "endedAt": "2026-06-23T11:12:26.552Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:26 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": "23",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.552Z",
              "endedAt": "2026-06-23T11:12:26.663Z",
              "durationMs": 111,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:26 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": "80",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.663Z",
              "endedAt": "2026-06-23T11:12:26.680Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:26 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": "14",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.681Z",
              "endedAt": "2026-06-23T11:12:26.733Z",
              "durationMs": 52,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "606",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:26 GMT",
                "etag": "W/\"25e-98pxE2KKDAymg6ufOoiSE/8bm6M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "first_name": "Phoneuser",
                  "middle_name": "",
                  "last_name": "Kumar",
                  "nominee_dob": "1990-04-15",
                  "nominee_phone": "249a22814bf213a7ff2e68cfa58da9d3:bbf414b779181654c22d97f6ba0865e0",
                  "nominee_pan": "",
                  "nominee_relation": "Father",
                  "nominee_salutation": "MR",
                  "guardian_first_name": "",
                  "guardian_last_name": "",
                  "nominee_name_consent": null,
                  "id": 10780,
                  "f_user_nominee_id": "04629cac-a559-4cf7-a5e6-a1655ee9ca6e",
                  "created_at": "2026-06-23T11:12:26.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.733Z",
              "endedAt": "2026-06-23T11:12:26.753Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:26 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": "16",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.753Z",
              "endedAt": "2026-06-23T11:12:26.779Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:26 GMT",
                "etag": "W/\"233-wg9n854JPWemXCvbKDWTLrr+qSM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10781,
                  "f_user_nominee_id": "dbd1be17-de95-4a1a-a110-ba5b8cf378b2",
                  "created_at": "2026-06-23T11:12:26.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.779Z",
              "endedAt": "2026-06-23T11:12:26.833Z",
              "durationMs": 54,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:26 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": "50",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.833Z",
              "endedAt": "2026-06-23T11:12:26.849Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:26 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": "13",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.850Z",
              "endedAt": "2026-06-23T11:12:26.945Z",
              "durationMs": 95,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "first_name": "Minor",
                "last_name": "Kumar",
                "nominee_dob": "2015-01-01",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:26 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": "92",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:26.945Z",
              "endedAt": "2026-06-23T11:12:27.027Z",
              "durationMs": 82,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:26 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": "79",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:27.028Z",
              "endedAt": "2026-06-23T11:12:27.069Z",
              "durationMs": 41,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"20a-7WKf+WJEHUwcy3KzTz/6Bqhs38c\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": true,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10782,
                  "f_user_nominee_id": "77a1af2d-5809-4740-b5ad-c9698cbe1919",
                  "created_at": "2026-06-23T11:12:27.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:27.069Z",
              "endedAt": "2026-06-23T11:12:27.128Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"16ad-nriNY0NclHYkx5lkrHrxZsKwHyw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "is_default": true,
                    "id": 10782,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "77a1af2d-5809-4740-b5ad-c9698cbe1919",
                    "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:12:27.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10778,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "d3123b37-abb0-41f3-844d-1d67eb121b35",
                    "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:12:26.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10779,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "e05e7279-ba66-4c1a-800a-4e848f263d71",
                    "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:12:26.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10780,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "04629cac-a559-4cf7-a5e6-a1655ee9ca6e",
                    "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:12:26.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10781,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "dbd1be17-de95-4a1a-a110-ba5b8cf378b2",
                    "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:12:26.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10771,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                    "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:12:25.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10774,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "7491c155-1180-4809-bb51-decad9fdd214",
                    "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:12:25.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10775,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "a4b03eeb-9962-4555-9ea8-6f5a6b8fdcd3",
                    "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:12:25.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10776,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "92e98800-e405-4951-88fe-9f77a2c4b577",
                    "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:12:25.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10777,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "25a2f626-cb9d-4a68-857d-50acd47c7541",
                    "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:12:25.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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "SSFB_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:12:27.129Z",
              "endedAt": "2026-06-23T11:12:27.158Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"209-sxkcL+KM/RJJUirLDEKa1KYUn9A\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10783,
                  "f_user_nominee_id": "d4ed1373-6140-41d9-98bb-c0ef09e6336e",
                  "created_at": "2026-06-23T11:12:27.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:27.158Z",
              "endedAt": "2026-06-23T11:12:27.244Z",
              "durationMs": 86,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"24a-CUg7onn7BhKy7EfctDpLe6YAmLY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10784,
                  "f_user_nominee_id": "27ad6adb-4b8f-4b55-8202-79ce503e250f",
                  "created_at": "2026-06-23T11:12:27.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:27.244Z",
              "endedAt": "2026-06-23T11:12:27.274Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"20b-vcq4P02Pes3gRaxw9ULO6nTYfx0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "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": 10785,
                  "f_user_nominee_id": "a95a2bac-369b-4263-b39a-2440c5d3aabc",
                  "created_at": "2026-06-23T11:12:27.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:27.274Z",
              "endedAt": "2026-06-23T11:12:27.338Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "5812",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:27 GMT",
                "etag": "W/\"16b4-9YBD/NNQFRgtVNIauHSVLAUaKfQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "is_default": false,
                    "id": 10785,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "a95a2bac-369b-4263-b39a-2440c5d3aabc",
                    "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:12:27.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10784,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "27ad6adb-4b8f-4b55-8202-79ce503e250f",
                    "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:12:27.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": true,
                    "id": 10782,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "77a1af2d-5809-4740-b5ad-c9698cbe1919",
                    "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:12:27.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10783,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "d4ed1373-6140-41d9-98bb-c0ef09e6336e",
                    "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:12:27.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10778,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "d3123b37-abb0-41f3-844d-1d67eb121b35",
                    "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:12:26.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10779,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "e05e7279-ba66-4c1a-800a-4e848f263d71",
                    "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:12:26.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10780,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "04629cac-a559-4cf7-a5e6-a1655ee9ca6e",
                    "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:12:26.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10781,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "dbd1be17-de95-4a1a-a110-ba5b8cf378b2",
                    "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:12:26.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10771,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                    "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:12:25.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10774,
                    "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "7491c155-1180-4809-bb51-decad9fdd214",
                    "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:12:25.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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "SSFB_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:12:27.339Z",
              "endedAt": "2026-06-23T11:12:27.345Z",
              "durationMs": 6,
              "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:12:27 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/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": "SSFB_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": "SSFB_NOMINEE_ADDR_001",
              "caseName": "Create address for nominee (SSFB)",
              "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:12:27.346Z",
              "endedAt": "2026-06-23T11:12:27.371Z",
              "durationMs": 25,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                "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": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"27c-epFg98BerSrySb6wok1zeecmRRs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "CREATED",
                "payload": {
                  "is_default": false,
                  "same_as_user": false,
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "line2": "Near Test Lane",
                  "state": "MAHARASHTRA",
                  "country": "INDIA",
                  "address_type": "PERMANENT",
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d1ea9dad6b6ab7c5edcb46bd350dd054cdc9ba7cd39664363c47a604e01361097c88203ec3381ed2955464f7d5d584325389d26ca93cc93cacfc91b26b10731ea13576e0f0f109583c9356d1b139de5c5",
                  "id": 5133,
                  "f_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"f_user_nominee_id\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\",\"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": "SSFB_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:12:27.371Z",
              "endedAt": "2026-06-23T11:12:27.384Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "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:12:27 GMT",
                "etag": "W/\"30f-vks8jKGKgGpw34zmJsPXtZZwMLI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "id": 5133,
                    "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                    "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                    "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=66d6bddd-539e-4086-bdb4-de3692f9bf7a' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "SSFB_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:12:27.384Z",
              "endedAt": "2026-06-23T11:12:27.456Z",
              "durationMs": 72,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                "same_as_user": true
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"28e-LiSzpH/AcnoZBT6ih5H9ajGnIy4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "CREATED",
                "payload": {
                  "id": 5133,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "f_base_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                  "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"f_user_nominee_id\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\",\"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": "SSFB_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:12:27.456Z",
              "endedAt": "2026-06-23T11:12:27.468Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:27 GMT",
                "etag": "W/\"331-GMmJpqE62vsRSff4jnAr/v7ScFI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 5133,
                    "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                    "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                    "f_base_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                    "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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "SSFB_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:12:27.468Z",
              "endedAt": "2026-06-23T11:12:27.529Z",
              "durationMs": 61,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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:12:27 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": "58",
                "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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "SSFB_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:12:27.530Z",
              "endedAt": "2026-06-23T11:12:27.541Z",
              "durationMs": 11,
              "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:12:27 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": "8",
                "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": "SSFB_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:12:27.541Z",
              "endedAt": "2026-06-23T11:12:27.549Z",
              "durationMs": 8,
              "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:12:27 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-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": "SSFB_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:12:27.549Z",
              "endedAt": "2026-06-23T11:12:27.568Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "same_as_user": true
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 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": "16",
                "server": "envoy"
              },
              "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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": "SSFB_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:12:27.568Z",
              "endedAt": "2026-06-23T11:12:27.651Z",
              "durationMs": 83,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "MH",
                "country": "INDIA",
                "pincode": "ABC"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 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": "65",
                "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"f_user_nominee_id\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\",\"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": "SSFB_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:12:27.651Z",
              "endedAt": "2026-06-23T11:12:27.672Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "maharashtra",
                "country": "INDIA",
                "pincode": "400001"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"24e-mjPMtCLPpQY9lNEZIQ54aDthkkM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "CREATED",
                "payload": {
                  "id": 5133,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "f_base_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                  "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"f_user_nominee_id\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\",\"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": "SSFB_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:12:27.672Z",
              "endedAt": "2026-06-23T11:12:27.746Z",
              "durationMs": 74,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "MH",
                "pincode": "400001"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"245-CkO6365SdOjtOVMoCSylNNCMqMo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 5133,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "f_base_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                  "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"f_user_nominee_id\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\",\"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": "SSFB_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:12:27.747Z",
              "endedAt": "2026-06-23T11:12:27.779Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestPayload": {
                "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                "same_as_user": false,
                "line1": "Updated Address Line",
                "city": "Pune",
                "state": "MH",
                "country": "INDIA",
                "pincode": "411001"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"265-4cR7QylLfwh8+0dBLSgAn6quQNk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "CREATED",
                "payload": {
                  "id": 5133,
                  "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "f_base_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                  "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=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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\n  -d '{\"f_user_nominee_id\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\",\"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": "SSFB_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:12:27.779Z",
              "endedAt": "2026-06-23T11:12:27.831Z",
              "durationMs": 52,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "requestQuery": {
                "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "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:12:27 GMT",
                "etag": "W/\"302-Oh1LbPpHACJNGUgyaAxOCdAq7uw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 5133,
                    "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                    "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                    "f_base_user_address_id": "2650c9be-462e-47c1-a467-6349751a73b6",
                    "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=66d6bddd-539e-4086-bdb4-de3692f9bf7a' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE'",
              "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": "SSFB_NOMINEE_V1UPD_001",
              "caseName": "Update nominee via v1/update (SSFB)",
              "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:12:27.832Z",
              "endedAt": "2026-06-23T11:12:27.859Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 GMT",
                "etag": "W/\"283-Pq10dCILJ9adDTAKqSfPSEojgBE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 10771,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "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:12:25.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=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\"}'",
              "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": "SSFB_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:12:27.859Z",
              "endedAt": "2026-06-23T11:12:27.898Z",
              "durationMs": 39,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                "nomineeAddress": {
                  "same_as_user": false,
                  "line1": "ADFJ",
                  "street": "ASDFK",
                  "pincode": "431122",
                  "city": "BEED",
                  "state": "MAHARASHTRA",
                  "country": "INDIA"
                }
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1078",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:27 GMT",
                "etag": "W/\"436-gMg3tTpwIxrLewf7luDaswH6ycE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "35",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Nominee Data updated successfully",
                "payload": {
                  "is_default": true,
                  "id": 10771,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "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": "Father",
                  "nominee_salutation": "MR",
                  "guardian_first_name": "",
                  "guardian_last_name": "",
                  "created_at": "2026-06-23T11:12:25.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": null,
                  "nomineeAddress": {
                    "same_as_user": false,
                    "state": "MAHARASHTRA",
                    "country": "INDIA",
                    "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d67d8e56acb6a0037d70a856eb75e370a3e1608bd6960ad20a42428b87b82f01be86f7a24a27f69e4d4a476e892feb93819f43422c1405c9eaf47a2db0588fc01f80f14dadec1a1639c56890f969cbf0c",
                    "f_user_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                    "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
                  }
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\",\"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": "SSFB_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:12:27.898Z",
              "endedAt": "2026-06-23T11:12:27.930Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 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": "28",
                "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=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\"}'",
              "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": "SSFB_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:12:27.930Z",
              "endedAt": "2026-06-23T11:12:27.942Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 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=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\"}'",
              "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": "SSFB_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:12:27.942Z",
              "endedAt": "2026-06-23T11:12:27.951Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 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": "6",
                "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=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\"}'",
              "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": "SSFB_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:12:27.951Z",
              "endedAt": "2026-06-23T11:12:27.963Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 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": "9",
                "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=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\"}'",
              "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": "SSFB_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:12:27.963Z",
              "endedAt": "2026-06-23T11:12:28.026Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:27 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 PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\"}'",
              "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": "SSFB_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:12:28.026Z",
              "endedAt": "2026-06-23T11:12:28.036Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:28 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": "6",
                "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=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\"}'",
              "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": "SSFB_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:12:28.036Z",
              "endedAt": "2026-06-23T11:12:28.046Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:28 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": "7",
                "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=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\"}'",
              "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": "SSFB_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:12:28.046Z",
              "endedAt": "2026-06-23T11:12:28.126Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE"
              },
              "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": "66d6bddd-539e-4086-bdb4-de3692f9bf7a"
              },
              "requestQuery": {
                "f_code": "SSFB"
              },
              "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:12:28 GMT",
                "etag": "W/\"2c4-WDCmFqNQ2h/sd9YPLu26ZbMsSG0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "Nominee Data updated successfully",
                "payload": {
                  "is_default": true,
                  "id": 10771,
                  "f_user_ref_id": "a485bdba-fa1f-4fde-934e-9d38d9637dae",
                  "f_user_nominee_id": "66d6bddd-539e-4086-bdb4-de3692f9bf7a",
                  "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:12:25.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=SSFB' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJhNDg1YmRiYS1mYTFmLTRmZGUtOTM0ZS05ZDM4ZDk2MzdkYWUiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImIwOGQ1OWM1LTVjN2QtNDY3Yi1iMWY1LTZjODdiYzM2MWJhNCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTE5LCJleHAiOjE3ODIyOTk1MTl9.-q3YF4woavTxaQPrQGRs_15oHLfdRELB_R1THPUkGRE' \\\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\":\"66d6bddd-539e-4086-bdb4-de3692f9bf7a\"}'",
              "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": "SSFB_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:12:28.126Z",
              "endedAt": "2026-06-23T11:12:28.132Z",
              "durationMs": 6,
              "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:12:28 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": "SSFB_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:12:28.132Z",
              "endedAt": "2026-06-23T11:12:28.137Z",
              "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:12:28 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": 3148
          }
        }
      ]
    },
    {
      "id": "0eba7e5b-bbb8-428b-ac33-afe6be494649",
      "issuer": "bajaj",
      "journey": "ntb",
      "startedAt": "2026-06-23T11:11:52.058Z",
      "endedAt": "2026-06-23T11:13:15.036Z",
      "durationMs": 44384,
      "summary": {
        "total": 562,
        "passed": 560,
        "failed": 0,
        "skipped": 2,
        "running": 0,
        "pending": 0,
        "durationMs": 44384
      },
      "steps": [
        {
          "stepId": "step-01-login",
          "stepName": "Login",
          "cases": [
            {
              "caseId": "BAJ_LOGIN_001",
              "caseName": "Send OTP to Bajaj Finance test mobile number",
              "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:12:30.593Z",
              "endedAt": "2026-06-23T11:12:30.697Z",
              "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:12:30 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": "2997",
                "x-ratelimit-reset": "60",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "101",
                "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 indicate OTP send success",
                  "passed": true,
                  "message": "Success envelope present"
                },
                {
                  "description": "payload.attemptsUsed should be present",
                  "passed": true,
                  "message": "attemptsUsed=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:30.697Z",
              "endedAt": "2026-06-23T11:12:30.820Z",
              "durationMs": 123,
              "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:12:30 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": "60",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "120",
                "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": "BAJ_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": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:30.820Z",
              "endedAt": "2026-06-23T11:12:30.906Z",
              "durationMs": 86,
              "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:12:30 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": "2995",
                "x-ratelimit-reset": "60",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "83",
                "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": "Body statusCode should be 200",
                  "passed": true,
                  "message": "statusCode=200"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:30.906Z",
              "endedAt": "2026-06-23T11:12:31.009Z",
              "durationMs": 103,
              "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:12:31 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": "60",
                "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 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": "BAJ_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:12:31.009Z",
              "endedAt": "2026-06-23T11:12:31.121Z",
              "durationMs": 112,
              "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:12:31 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": "60",
                "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": "Payload object should exist",
                  "passed": true,
                  "message": "payload present"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:12:31.121Z",
              "endedAt": "2026-06-23T11:12:31.233Z",
              "durationMs": 112,
              "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:12:31 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": "2992",
                "x-ratelimit-reset": "59",
                "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": "payload.attemptsUsed should be 0",
                  "passed": true,
                  "message": "attemptsUsed=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:31.233Z",
              "endedAt": "2026-06-23T11:12:31.329Z",
              "durationMs": 96,
              "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:12:31 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": "2991",
                "x-ratelimit-reset": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "93",
                "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 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": "BAJ_LOGIN_023",
              "caseName": "Verify send OTP response schema",
              "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:12:31.329Z",
              "endedAt": "2026-06-23T11:12:31.442Z",
              "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:12:31 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": "2990",
                "x-ratelimit-reset": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "110",
                "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": "Success response schema should match contract",
                  "passed": true,
                  "message": "Success schema valid"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_LOGIN_024",
              "caseName": "Verify send OTP response time",
              "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:12:31.442Z",
              "endedAt": "2026-06-23T11:12:31.528Z",
              "durationMs": 86,
              "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:12:31 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": "59",
                "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": "Response status should be 201 or 200",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response time should be within 2000ms",
                  "passed": true,
                  "message": "duration=86ms"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:31.528Z",
              "endedAt": "2026-06-23T11:12:31.625Z",
              "durationMs": 97,
              "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:12:31 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "94",
                "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": "BAJ_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:12:31.625Z",
              "endedAt": "2026-06-23T11:12:31.730Z",
              "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": "94",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:31 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "102",
                "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": "BAJ_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:12:31.730Z",
              "endedAt": "2026-06-23T11:12:31.746Z",
              "durationMs": 16,
              "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:12:31 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": "59",
                "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' \\\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": "BAJ_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:12:31.746Z",
              "endedAt": "2026-06-23T11:12:31.753Z",
              "durationMs": 7,
              "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:12:31 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": "59",
                "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\":\"\"}'",
              "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": "BAJ_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:12:31.754Z",
              "endedAt": "2026-06-23T11:12:31.767Z",
              "durationMs": 13,
              "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:12:31 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "10",
                "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": "BAJ_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:12:31.767Z",
              "endedAt": "2026-06-23T11:12:31.774Z",
              "durationMs": 7,
              "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:12:31 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": "59",
                "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": "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": "BAJ_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:12:31.774Z",
              "endedAt": "2026-06-23T11:12:31.833Z",
              "durationMs": 59,
              "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:12:31 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": "59",
                "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": "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": "BAJ_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:12:31.833Z",
              "endedAt": "2026-06-23T11:12:31.840Z",
              "durationMs": 7,
              "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:12:31 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": "59",
                "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": "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": "BAJ_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:12:31.840Z",
              "endedAt": "2026-06-23T11:12:31.848Z",
              "durationMs": 8,
              "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:12:31 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": "59",
                "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": "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": "BAJ_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:12:31.848Z",
              "endedAt": "2026-06-23T11:12:31.855Z",
              "durationMs": 7,
              "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:12:31 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "3",
                "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": "BAJ_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:12:31.855Z",
              "endedAt": "2026-06-23T11:12:31.866Z",
              "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:12:31 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": "59",
                "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)"
                  },
                  {
                    "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": "BAJ_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:12:31.866Z",
              "endedAt": "2026-06-23T11:12:31.927Z",
              "durationMs": 61,
              "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:12:31 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "58",
                "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": "BAJ_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:12:31.927Z",
              "endedAt": "2026-06-23T11:12:31.937Z",
              "durationMs": 10,
              "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:12:31 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": "59",
                "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)"
                  },
                  {
                    "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": "BAJ_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:12:31.937Z",
              "endedAt": "2026-06-23T11:12:31.945Z",
              "durationMs": 8,
              "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:12:31 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": "59",
                "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": "BAJ_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:12:31.945Z",
              "endedAt": "2026-06-23T11:12:31.952Z",
              "durationMs": 7,
              "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:12:31 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": "59",
                "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": "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": "BAJ_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:12:31.952Z",
              "endedAt": "2026-06-23T11:12:31.959Z",
              "durationMs": 7,
              "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:12:31 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": "59",
                "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": "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": "BAJ_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:12:31.959Z",
              "endedAt": "2026-06-23T11:12:31.967Z",
              "durationMs": 8,
              "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:12:31 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": "59",
                "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": "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": "BAJ_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:12:31.967Z",
              "endedAt": "2026-06-23T11:12:32.027Z",
              "durationMs": 60,
              "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:12:31 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": "59",
                "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\":\"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": "BAJ_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:12:32.027Z",
              "endedAt": "2026-06-23T11:12:32.037Z",
              "durationMs": 10,
              "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:12:32 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": "59",
                "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)"
                  },
                  {
                    "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": "BAJ_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:12:32.037Z",
              "endedAt": "2026-06-23T11:12:32.048Z",
              "durationMs": 11,
              "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:12:32 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": "59",
                "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)"
                  },
                  {
                    "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": "BAJ_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:12:32.048Z",
              "endedAt": "2026-06-23T11:12:32.152Z",
              "durationMs": 104,
              "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:12:32 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": "58",
                "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/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": "BAJ_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:12:32.152Z",
              "endedAt": "2026-06-23T11:12:32.236Z",
              "durationMs": 84,
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.236Z",
              "endedAt": "2026-06-23T11:12:32.242Z",
              "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:12:32 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": "BAJ_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:12:32.243Z",
              "endedAt": "2026-06-23T11:12:32.255Z",
              "durationMs": 12,
              "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:12:32 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": "58",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "10",
                "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": "BAJ_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:12:32.255Z",
              "endedAt": "2026-06-23T11:12:32.394Z",
              "durationMs": 139,
              "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:12:32 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": "58",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "135",
                "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": "BAJ_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:12:32.394Z",
              "endedAt": "2026-06-23T11:12:32.409Z",
              "durationMs": 15,
              "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:12:32 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": "58",
                "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: 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": "BAJ_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:12:32.409Z",
              "endedAt": "2026-06-23T11:12:32.417Z",
              "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:12:32 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": "58",
                "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": "Response success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1208"
              ]
            },
            {
              "caseId": "BAJ_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:12:32.417Z",
              "endedAt": "2026-06-23T11:12:32.424Z",
              "durationMs": 7,
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.424Z",
              "endedAt": "2026-06-23T11:12:32.432Z",
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.433Z",
              "endedAt": "2026-06-23T11:12:32.440Z",
              "durationMs": 7,
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.440Z",
              "endedAt": "2026-06-23T11:12:32.448Z",
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.448Z",
              "endedAt": "2026-06-23T11:12:32.455Z",
              "durationMs": 7,
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.455Z",
              "endedAt": "2026-06-23T11:12:32.465Z",
              "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:12:32 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": "58",
                "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 FIXUSER1003 or FIXUSER1208",
                  "passed": true,
                  "message": "FIXUSER1003/FIXUSER1208 present"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [
                "FIXUSER1003",
                "FIXUSER1208"
              ],
              "actualErrorCodes": [
                "FIXUSER1208"
              ]
            },
            {
              "caseId": "BAJ_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:12:32.465Z",
              "endedAt": "2026-06-23T11:12:32.536Z",
              "durationMs": 71,
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.536Z",
              "endedAt": "2026-06-23T11:12:32.544Z",
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.544Z",
              "endedAt": "2026-06-23T11:12:32.552Z",
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.552Z",
              "endedAt": "2026-06-23T11:12:32.647Z",
              "durationMs": 95,
              "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:12:32 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": "58",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "92",
                "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": "BAJ_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:12:32.647Z",
              "endedAt": "2026-06-23T11:12:32.757Z",
              "durationMs": 110,
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.757Z",
              "endedAt": "2026-06-23T11:12:32.866Z",
              "durationMs": 109,
              "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:12:32 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": "58",
                "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": "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": "BAJ_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:12:32.866Z",
              "endedAt": "2026-06-23T11:12:33.298Z",
              "durationMs": 432,
              "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:12:33 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": "57",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "104",
                "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 108ms across 4 requests"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:33.298Z",
              "endedAt": "2026-06-23T11:12:33.763Z",
              "durationMs": 465,
              "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:12:33 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": "57",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "89",
                "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": "BAJ_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:12:33.763Z",
              "endedAt": "2026-06-23T11:12:34.091Z",
              "durationMs": 328,
              "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:12:34 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": "57",
                "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 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": "BAJ_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:12:34.091Z",
              "endedAt": "2026-06-23T11:12:34.181Z",
              "durationMs": 90,
              "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:12:34 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "87",
                "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": "BAJ_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:12:34.181Z",
              "endedAt": "2026-06-23T11:12:34.277Z",
              "durationMs": 96,
              "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:12:34 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "92",
                "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": "BAJ_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:12:34.278Z",
              "endedAt": "2026-06-23T11:12:34.362Z",
              "durationMs": 84,
              "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:12:34 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "81",
                "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": "BAJ_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:12:34.362Z",
              "endedAt": "2026-06-23T11:12:34.456Z",
              "durationMs": 94,
              "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:12:34 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "91",
                "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=94ms"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:34.456Z",
              "endedAt": "2026-06-23T11:12:34.552Z",
              "durationMs": 96,
              "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:12:34 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "92",
                "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": "BAJ_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:12:34.552Z",
              "endedAt": "2026-06-23T11:12:34.646Z",
              "durationMs": 94,
              "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:12:34 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "91",
                "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": "BAJ_LOGIN_002",
              "caseName": "Verify OTP and extract auth tokens (Bajaj Finance)",
              "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:12:34.647Z",
              "endedAt": "2026-06-23T11:12:34.688Z",
              "durationMs": 41,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestPayload": {
                "phone": "918668336629",
                "otp": "123456",
                "partner_url": "https://tradingquants.dev.fixerra.in",
                "consent": false,
                "issuer_code": "BAJAJ"
              },
              "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:12:34 GMT",
                "etag": "W/\"3ea-X7+mXKQAKzVcEO47uMpXv6PmOb4\"",
                "referrer-policy": "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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "37",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "User already exists.",
                "payload": {
                  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw",
                  "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJyZWZyZXNoIiwiZl91c2VyX2lkIjoiZTUyM2MxZTUtMDIyOS00NjM3LTk4M2MtMDVlOWFmYjg3YjljIiwiZl9wYXJ0bmVyX3VzZXJfaWQiOiJkMjBlNWViYS0wZGFiLTQ3NDMtOTU3ZS03MTUzYTkzOTViYjciLCJmX3BhcnRuZXJfaWQiOiI2OGJkY2Y4OS04NDY0LTRmODUtODk4Ny1hYTI4OTA4ZTIxYWQiLCJwYXJ0bmVyX3VybCI6Imh0dHBzOi8vdHJhZGluZ3F1YW50cy5kZXYuZml4ZXJyYS5pbiIsImlhdCI6MTc4MjIxMzE1NCwiZXhwIjoxNzgyODE3OTU0fQ.WKa67tEroLQxTn4JUD8TsmF905ZkbmufACnOrapaxZk"
                }
              },
              "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\":\"BAJAJ\"}'",
              "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": "BAJ_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:12:34.688Z",
              "endedAt": "2026-06-23T11:12:34.735Z",
              "durationMs": 47,
              "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:12:34 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "44",
                "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": "BAJ_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:12:34.735Z",
              "endedAt": "2026-06-23T11:12:34.743Z",
              "durationMs": 8,
              "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:12:34 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": "56",
                "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": "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": "BAJ_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:12:34.743Z",
              "endedAt": "2026-06-23T11:12:34.781Z",
              "durationMs": 38,
              "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:12:34 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": "56",
                "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": "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": "BAJ_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:12:34.782Z",
              "endedAt": "2026-06-23T11:12:34.789Z",
              "durationMs": 7,
              "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:12:34 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": "56",
                "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": "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": "BAJ_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:12:34.789Z",
              "endedAt": "2026-06-23T11:12:34.831Z",
              "durationMs": 42,
              "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:12:34 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": "56",
                "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": "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": "BAJ_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:12:34.831Z",
              "endedAt": "2026-06-23T11:12:35.126Z",
              "durationMs": 295,
              "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:12:35 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "292",
                "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": "BAJ_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:12:35.126Z",
              "endedAt": "2026-06-23T11:12:35.344Z",
              "durationMs": 218,
              "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:12:35 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": "55",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "197",
                "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": "BAJ_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:12:35.344Z",
              "endedAt": "2026-06-23T11:12:35.363Z",
              "durationMs": 19,
              "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:12:35 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": "55",
                "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": "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": 66,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 4764
          }
        },
        {
          "stepId": "step-02-fd-detail",
          "stepName": "FD Detail",
          "cases": [
            {
              "caseId": "BAJ_FD_DETAIL_001",
              "caseName": "Get Bajaj Finance issuer detail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.363Z",
              "endedAt": "2026-06-23T11:12:35.394Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "78067",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"130f3-UCoqlVzMNy7bFPU0JfAH7uyJoCY\"",
                "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": "14",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "issuerData": {
                    "id": 2,
                    "name": "Bajaj Finance Ltd",
                    "description": "Bajaj Finance Ltd (BFL) is a registered deposit-taking NBFC with the RBI. Established in 1926, it operates with assets under management (AUM) exceeding ₹2.7 lakh crores and serves over 7.6 crore customers across 300+ branches.",
                    "f_code": "BAJ",
                    "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                    "url": "https://images.dev.fixerra.in/logos/bajaj/Bajaj+Finance_Logo_Primary1.png",
                    "sub_logo": "https://images.dev.fixerra.in/logos/bajaj/Bajaj+Finance_Logo_Reverse2.png",
                    "compounding_freq": "Yearly",
                    "issuer_type": "NBFC",
                    "crisil_rating": "AAA/Stable",
                    "icra_rating": "AAA(Stable)",
                    "trusted_users": "6.9CR+ Since 1987",
                    "hero_tag": null,
                    "subtag_1": "AAA RATED BY CRISIL",
                    "subtag_2": "Compounds Yearly",
                    "is_range_required": true,
                    "bank_disabled_at": null,
                    "faq": null,
                    "active_issuer_rank": 2,
                    "baseline_issuer_rank": null,
                    "deleted_at": null,
                    "upcoming_bank": false,
                    "upcoming_bank_date": null,
                    "utm_url": null,
                    "renewal_options": {
                      "Principal": true,
                      "No Renewal": true,
                      "Total Amount": true
                    },
                    "enable_our_pg": false,
                    "enable_easy_split": false,
                    "pg_setting": null,
                    "is_nominee_required": false,
                    "bank_type": "",
                    "is_issuer_live": true,
                    "women_benefit": 0,
                    "senior_citizen_benefit": 0.35,
                    "minTenure": 365,
                    "maxTenure": 1825
                  },
                  "vehiclesPayload": [
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "e0a51128-37d4-4822-8938-36bc0b36f3c0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "fc13b99a-7191-45c1-801d-e748650b1f1f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": 9,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.29"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b7868371-b244-4aef-8646-2d839b596100",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "6eb72253-e205-4d51-a3ad-c426b7374a0a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "dfa5e8a7-d1f1-4092-8b31-268716549434",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c8371de7-b9ea-44ed-8ecf-f006b638995e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "32bd1ca2-13d5-4b71-be7d-6fb1c84d3a11",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.37"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "dbf40596-f27c-4503-b074-2e28dd32b886",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "ab25f6cd-3899-488b-a55f-20e8cfa34ae1",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "291842f4-5ba3-4d74-8243-67eff5dd528b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "2cda8d64-9cb1-4f94-9559-9fadaabb3cc8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "9f63c80c-aa48-4265-8e58-5c8bca4972a0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.53"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c5252c7f-9d73-4378-8933-9eb948fd079e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "8eeab912-f831-4b39-afc3-5931461c1349",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c0d148ed-ae54-451e-b8e1-6870e93be351",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "e6ec7719-474e-4b95-8bc5-5e1c1bfcfb01",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "cbef0660-542d-4514-b877-f147707cc13c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "ef4df069-d66d-4d47-9470-29f7a677f026",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "f0a1590e-3ccb-43f2-a236-6aed11a865ba",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "34c0b443-c9ce-4a4e-bb92-7134586547ab",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "dc4f91be-7ad0-47f3-afdb-fbcaa71419f7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "63a688f1-eb8d-4a53-8cde-71b6a2541a14",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "58d02901-8540-459e-b37a-1fdad8c80ea8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "26cf3cf5-67ad-4f43-a67f-53c6d9d14a39",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.59"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "16f3fb3f-1e37-4be0-8fc4-f6fbbc02a2da",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "9b2728e8-6f90-433c-b8e3-269781984f16",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b8f9f81e-954a-49de-ac68-675681771795",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "0528940d-84dc-4fff-af51-36546330df52",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.16"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "aa3cae60-a8e3-4d71-b7f1-3c45bf382832",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "6fdfc9bd-6b64-448e-8073-e56735ecc74c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "a236c23a-201f-4c61-974a-6800d09558b0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "7cd766a9-6d71-4631-859f-0d96db3bc54f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "d33b8cf6-69f6-4c1a-940a-8349c8cab510",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.99"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "d9f49909-bc4c-40b6-aaf6-d06a42371bb2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b6a00d37-0178-41e3-8618-1eb996b32219",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.78"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "6bbf5ddd-9376-4540-a659-63c5446d8b36",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.83"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "f32cf394-a68f-41ef-aa19-e79d7ebdd188",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "4b0e3065-f372-492f-a4af-a054aee8131f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "823d5416-f823-4bc0-b82c-3983d4778d13",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "2d20202e-1c91-4266-adf6-2ab3efee8229",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": 2,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.89"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "3c58f41a-5e5b-41e9-a0e2-009a8d652deb",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c9f5a7f0-bea0-4f10-945f-5dfd7cb83272",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "a42e62c8-4eb7-4b51-bd53-6c25e57a71c4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "49317d75-9176-4ee7-8328-a01a34200198",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "466232a1-4cb3-4502-bd18-6f506ace1747",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.96"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "66cb7c2b-0bcc-405a-8ad8-e5b775995c53",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "fa9e3b89-dddc-4ba7-932e-917a4545a4a1",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "1d3c9a4d-7459-4e80-95a1-1b32a80de225",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c3c20fa6-20b4-4b76-a622-c4ce923978ab",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "20cdd02c-ff2e-498f-9185-cb57f8161c01",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "679d101b-0774-4d17-99fc-1963504c68e3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.42"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b9ce1e8f-f148-403c-82e8-9cbdceca85ae",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "7837ae9a-8cff-4465-a422-72c79cdd15c2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "faec33d5-fa11-4ed5-9d72-1f307847f4b6",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "11436981-9e81-46d2-9dc0-039e171cc1de",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "2d46c4f7-2408-47dd-bf9a-1770ae7a71c4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.34"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "08495b58-ecc8-469a-bf08-51d48964cf4a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.23"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "72b736c9-4aa4-4a25-b130-21aff74c10ac",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.23"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "97b473a6-7c44-45e6-b045-b730efa2f4e7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.23"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "588fdb7d-f25a-4d09-bc91-a65d7da35a0b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.23"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "72a57e04-5225-403d-8b69-c33d08cc2ad0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.46"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "41bbfe66-5ade-49a8-b167-49d03f9d6176",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "118969ea-7885-48c0-a7ac-156f426d5a6b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "dac0c029-5287-46c5-b101-1885913809fc",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "5c28fb30-e893-47c8-8913-5367b01c89fd",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "f450856d-c2f8-4f64-a577-70a3730bb3e0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "0fe1d1c2-3e21-4940-a4d6-0c0934c51e92",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "dd41523f-20f1-4ff6-9284-4eff9dbf814d",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "a730d894-3fab-48eb-b932-6ede31b2b3fe",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "550ca26d-1163-40e0-9eda-ff522a688e50",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "e43dac96-3ef0-4dd0-aba0-75f99730f403",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "40545c0a-6e4d-4ecb-81f0-e5d387e86b91",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.01"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "6c763d12-3359-42c0-9758-e45fde226ca1",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "4048fd69-ff51-4356-8733-79b93fab12c6",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "1b202078-77d7-4ae5-b517-1147c466d0dc",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "10eb4efc-6806-4e7d-8170-ee2cd50a8a1a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b82b2ae5-3166-4d7f-a9df-50cde57b2950",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.97"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "02b4c582-f698-4a50-8559-834daa725b73",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.86"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "45c7b771-aa01-419f-a202-486da254d580",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.86"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "d3924942-49ab-417b-9754-fa4a2d463ac4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.86"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "08e50851-aa84-4e69-bfbe-8bed1943baa8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.86"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c1ed946f-07c4-4eeb-8a06-b12c81bc4db8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "de026fc9-0dd2-4715-97b9-034f888ee819",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "53add7b7-d2a1-4eab-912c-58e67ba400f8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "0830ade7-180b-438c-9801-be8979c144ab",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.19"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "e4a16a8a-3a1b-40cd-81fb-355d8777e353",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.74"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "e43bab4d-8e1d-4e61-9bbf-4567b922be3c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.78"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "2e149d3a-840b-4186-a297-c788f299cebb",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.83"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "1ebe7bc2-43b6-45ca-9c0a-1ee0c9074200",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "cc3b354e-4ad1-4a8c-a422-bc9db35e410f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "99769377-4d18-42ff-b654-91edf37d963c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.44"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "f680774c-5572-4505-912a-4bc34f0eaf10",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.49"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "78708d93-86c7-4276-be5a-c48315c0b48b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b0319fca-624b-487d-a11d-e5000c82f83a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.66"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "7f6b187d-a6e7-4559-aad2-89e5c3e6941e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c11770d1-5209-4979-93f5-e41bd2e32e6e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "0fda16a3-b094-4e0a-9e35-48f5d872e95a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "8539448a-df3c-4cd1-9950-d14128e54ef2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    }
                  ],
                  "highlights": [
                    {
                      "title": "All investments are regulated by RBI",
                      "url": "https://images.dev.fixerra.in/illustrations/RBI@3x.png"
                    },
                    {
                      "title": "Maturity Amount is directly credited to your bank account",
                      "url": "https://images.dev.fixerra.in/illustrations/Bank@3x.png"
                    },
                    {
                      "title": "Senior Citizens get up to 0.25% extra",
                      "url": "https://images.dev.fixerra.in/illustrations/Senior@3x.png"
                    }
                  ],
                  "about": [
                    {
                      "key": "Founded",
                      "value": "1926"
                    },
                    {
                      "key": "Customers Served",
                      "value": "8 Cr+"
                    },
                    {
                      "key": "Number of Branches",
                      "value": "300+"
                    },
                    {
                      "key": "CRISIL Rating",
                      "value": "AAA Stable"
                    },
                    {
                      "key": "Assets Under Management",
                      "value": "₹2.7 lakh Cr+"
                    }
                  ],
                  "distinctMinTenureValues": [
                    {
                      "value": 1003
                    },
                    {
                      "value": 1095
                    },
                    {
                      "value": 1277
                    },
                    {
                      "value": 1338
                    },
                    {
                      "value": 1825
                    },
                    {
                      "value": 365
                    },
                    {
                      "value": 456
                    },
                    {
                      "value": 547
                    },
                    {
                      "value": 669
                    },
                    {
                      "value": 730
                    }
                  ],
                  "interestPayouts": [
                    "Yearly",
                    "Maturity",
                    "Monthly",
                    "Quarterly",
                    "HalfYearly"
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/1b5b4acb-14a8-4a26-ac73-1e042ef67d48' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                },
                {
                  "description": "Response should contain issuer data (payload.issuerData)",
                  "passed": true,
                  "message": "Issuer data present (f_code=BAJ, f_issuer_id=1b5b4acb-14a8-4a26-ac73-1e042ef67d48)"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_FD_DETAIL_002",
              "caseName": "Get Bajaj maturity quote and capture investment vehicle id",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.394Z",
              "endedAt": "2026-06-23T11:12:35.407Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-DUVgEPKqWolVVbpXuDEmyqaydRM\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 53300
                      }
                    ]
                  }
                ],
                "maturity_amount": 53300
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=50000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "Maturity quote should include f_investment_vehicle_id",
                  "passed": true,
                  "message": "Vehicle id present (1b7f705e-0c25-4172-b38f-60d9eaf235ff)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_MAT_AUTH_001",
              "caseName": "BAJ maturity should reject missing auth",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:35.407Z",
              "endedAt": "2026-06-23T11:12:35.411Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:35 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/BAJ?tenure=365&investment_amount=15000&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": "BAJ_MAT_FREQ001",
              "caseName": "BAJ Maturity payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.412Z",
              "endedAt": "2026-06-23T11:12:35.422Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_FREQ002",
              "caseName": "BAJ Monthly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.422Z",
              "endedAt": "2026-06-23T11:12:35.452Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "932",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"3a4-ug6xgkFyJ0ezDjtDIvKTUaPoNng\"",
                "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": "27",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                "average_yield": "6.41",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 18.44
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 80.13
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 80.13
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 80.13
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 80.13
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 80.13
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 61.74
                      }
                    ]
                  }
                ],
                "payout_amount": 80.13,
                "total_payout": 961.5
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_FREQ003",
              "caseName": "BAJ Quarterly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.452Z",
              "endedAt": "2026-06-23T11:12:35.469Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "637",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"27d-of8Tdnvt/tT28fUlMp7XdhMkBR8\"",
                "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": "14",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Quarterly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "99769377-4d18-42ff-b654-91edf37d963c",
                "average_yield": "6.44",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 18.53
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 241.5
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 241.5
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 241.5
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 223.14
                      }
                    ]
                  }
                ],
                "payout_amount": 241.5,
                "total_payout": 966
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Quarterly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_FREQ004",
              "caseName": "BAJ HalfYearly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.469Z",
              "endedAt": "2026-06-23T11:12:35.486Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "569",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"239-u6J7R4T5WkWg3E1MB/lo2lTdYuM\"",
                "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": "14",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "HalfYearly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "f680774c-5572-4505-912a-4bc34f0eaf10",
                "average_yield": "6.49",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-09-30",
                        "amount": 264.05
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 486.75
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 223.04
                      }
                    ]
                  }
                ],
                "payout_amount": 486.75,
                "total_payout": 973.5
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=HalfYearly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_FREQ005",
              "caseName": "BAJ Yearly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.486Z",
              "endedAt": "2026-06-23T11:12:35.500Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "499",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1f3-e7v5SKwNwY0a1NQ3Vn+81sT2EIU\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Yearly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "78708d93-86c7-4276-be5a-c48315c0b48b",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 762.16
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 228.51
                      }
                    ]
                  }
                ],
                "payout_amount": 990,
                "total_payout": 990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Yearly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_BOUND_001",
              "caseName": "BAJ min amount boundary success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.500Z",
              "endedAt": "2026-06-23T11:12:35.512Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_BOUND_002",
              "caseName": "BAJ max amount boundary success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.512Z",
              "endedAt": "2026-06-23T11:12:35.522Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "1825",
                "investment_amount": "30000000",
                "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": "461",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1cd-LiLEEw4CrURGRCUr1eo/DLeZJok\"",
                "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": {
                "product_interest": "7.40",
                "payout_frequency": "Maturity",
                "maturity_date": "2031-06-22",
                "maturity_date_ist": "2031-06-22",
                "f_investment_vehicle_id": "d33b8cf6-69f6-4c1a-940a-8349c8cab510",
                "average_yield": "7.99",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 1825,
                "product_max_tenure": 1825,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2031,
                    "data": [
                      {
                        "date": "2031-06-22",
                        "amount": 42868931.76
                      }
                    ]
                  }
                ],
                "maturity_amount": 42868931.76
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=1825&investment_amount=30000000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_BOUND_003",
              "caseName": "BAJ amount below min should fail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.522Z",
              "endedAt": "2026-06-23T11:12:35.532Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "14000",
                "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:12:35 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/BAJ?tenure=365&investment_amount=14000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_BOUND_004",
              "caseName": "BAJ tenure below min should fail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.532Z",
              "endedAt": "2026-06-23T11:12:35.542Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "364",
                "investment_amount": "15000",
                "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:12:35 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/BAJ?tenure=364&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_NBFC_001",
              "caseName": "BAJ non-multiple amount should fail FIXMAS091",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.542Z",
              "endedAt": "2026-06-23T11:12:35.548Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100500",
                "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": "201",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"c9-2re6GDMEIAEFJ1IzkNKzA/vr5Vo\"",
                "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": "3",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS091",
                    "error": "investment_amount should be a multiple of 1000"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=100500&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "Body should be Fixerra error with FIXMAS091",
                  "passed": true,
                  "message": "FIXMAS091 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXMAS091"
              ]
            },
            {
              "caseId": "BAJ_MAT_WOMEN_001",
              "caseName": "BAJ women_citizen=true should fail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.548Z",
              "endedAt": "2026-06-23T11:12:35.558Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:35 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/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=true&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.558Z",
              "endedAt": "2026-06-23T11:12:35.568Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_interest should be a non-empty numeric string",
                  "passed": true,
                  "message": "product_interest=\"6.60\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.568Z",
              "endedAt": "2026-06-23T11:12:35.578Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"6.60\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.578Z",
              "endedAt": "2026-06-23T11:12:35.592Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"2027-06-23\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.593Z",
              "endedAt": "2026-06-23T11:12:35.602Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"1b7f705e-0c25-4172-b38f-60d9eaf235ff\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_MAT_009",
              "caseName": "Verify minimum investment amount returned (15000)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.602Z",
              "endedAt": "2026-06-23T11:12:35.612Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_min_investment should equal 15000",
                  "passed": true,
                  "message": "product_min_investment=15000"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_MAT_010",
              "caseName": "Verify maximum investment amount returned (30000000)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.612Z",
              "endedAt": "2026-06-23T11:12:35.622Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_max_investment should equal 30000000",
                  "passed": true,
                  "message": "product_max_investment=30000000"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.622Z",
              "endedAt": "2026-06-23T11:12:35.633Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=15990 > principal=15000"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_MAT_042",
              "caseName": "Verify total_payout returned for monthly (non-cumulative) FD",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.633Z",
              "endedAt": "2026-06-23T11:12:35.649Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "120000",
                "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": "909",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"38d-Gw7YTrrQB5OvO6jGvJ4kjuOPVJM\"",
                "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": "13",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                "average_yield": "6.41",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 147.52
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 641
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 641
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 641
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 493.92
                      }
                    ]
                  }
                ],
                "payout_amount": 641,
                "total_payout": 7692
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=120000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.total_payout should be a positive number",
                  "passed": true,
                  "message": "total_payout=7692"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_MAT_043",
              "caseName": "Verify payout_amount field present for monthly (non-cumulative) FD",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.649Z",
              "endedAt": "2026-06-23T11:12:35.664Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "120000",
                "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": "909",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"38d-Gw7YTrrQB5OvO6jGvJ4kjuOPVJM\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                "average_yield": "6.41",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 147.52
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 641
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 641
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 641
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 493.92
                      }
                    ]
                  }
                ],
                "payout_amount": 641,
                "total_payout": 7692
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=120000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.payout_amount should be a positive number",
                  "passed": true,
                  "message": "payout_amount=641"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.664Z",
              "endedAt": "2026-06-23T11:12:35.679Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "120000",
                "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": "909",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"38d-Gw7YTrrQB5OvO6jGvJ4kjuOPVJM\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                "average_yield": "6.41",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 147.52
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 641
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 641
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 641
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 493.92
                      }
                    ]
                  }
                ],
                "payout_amount": 641,
                "total_payout": 7692
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=120000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.680Z",
              "endedAt": "2026-06-23T11:12:35.693Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "120000",
                "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": "909",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"38d-Gw7YTrrQB5OvO6jGvJ4kjuOPVJM\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                "average_yield": "6.41",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 147.52
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 641
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 641
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 641
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 493.92
                      }
                    ]
                  }
                ],
                "payout_amount": 641,
                "total_payout": 7692
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=120000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.694Z",
              "endedAt": "2026-06-23T11:12:35.698Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:35 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/BAJ?tenure=365&investment_amount=15000&payout_frequency=Weekly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_059",
              "caseName": "Verify missing API key is rejected",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:35.698Z",
              "endedAt": "2026-06-23T11:12:35.703Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:35 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/BAJ?tenure=365&investment_amount=15000&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 an auth/validation error (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": "BAJ_MAT_060",
              "caseName": "Verify a non-empty (invalid) API key value still passes (apikey presence bypasses partner-key check)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.703Z",
              "endedAt": "2026-06-23T11:12:35.712Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "in****yz"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: in****yz'",
              "validations": [
                {
                  "description": "apikey header presence bypasses partner-key validation regardless of its value, so the request should succeed with maturity data",
                  "passed": true,
                  "message": "Request succeeded with maturity data (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": "BAJ_MAT_061",
              "caseName": "Verify an expired/stale-looking API key value still passes (apikey presence bypasses partner-key check)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.713Z",
              "endedAt": "2026-06-23T11:12:35.722Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "ex****00"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: ex****00'",
              "validations": [
                {
                  "description": "apikey header presence bypasses partner-key validation regardless of its value, so the request should succeed with maturity data",
                  "passed": true,
                  "message": "Request succeeded with maturity data (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": "BAJ_MAT_062",
              "caseName": "Verify a malformed API key token still passes (apikey presence bypasses partner-key check)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.722Z",
              "endedAt": "2026-06-23T11:12:35.731Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "Be****wt"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: Be****wt'",
              "validations": [
                {
                  "description": "apikey header presence bypasses partner-key validation regardless of its value, so the request should succeed with maturity data",
                  "passed": true,
                  "message": "Request succeeded with maturity data (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": "BAJ_MAT_063",
              "caseName": "Verify blank API key header is rejected",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:35.732Z",
              "endedAt": "2026-06-23T11:12:35.735Z",
              "durationMs": 3,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "****"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:35 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/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: ****'",
              "validations": [
                {
                  "description": "Should reject with an auth/validation error (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": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.735Z",
              "endedAt": "2026-06-23T11:12:35.745Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.745Z",
              "endedAt": "2026-06-23T11:12:35.754Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "Response should complete within 2000ms",
                  "passed": true,
                  "message": "duration=9ms"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_MAT_069",
              "caseName": "Verify SQL injection payload in investment_amount is safely ignored (leading numeric value '15000' is parsed, no injection)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.754Z",
              "endedAt": "2026-06-23T11:12:35.764Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000' 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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000%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 'apikey: d4****bb'",
              "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=15990"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.764Z",
              "endedAt": "2026-06-23T11:12:35.768Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365' OR '1'='1",
                "investment_amount": "15000",
                "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:12:35 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/BAJ?tenure=365%27+OR+%271%27%3D%271&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.768Z",
              "endedAt": "2026-06-23T11:12:35.774Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:35 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/BAJ?tenure=365&investment_amount=15000&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 'apikey: d4****bb'",
              "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": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.774Z",
              "endedAt": "2026-06-23T11:12:35.778Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:35 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/BAJ?tenure=365&investment_amount=15000&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 'apikey: d4****bb'",
              "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": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.778Z",
              "endedAt": "2026-06-23T11:12:35.783Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:35 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": "1",
                "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/BAJ?tenure=365&investment_amount=15000&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 'apikey: d4****bb'",
              "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": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.783Z",
              "endedAt": "2026-06-23T11:12:35.904Z",
              "durationMs": 121,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": "18",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.904Z",
              "endedAt": "2026-06-23T11:12:35.914Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"2027-06-23\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.914Z",
              "endedAt": "2026-06-23T11:12:35.929Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "120000",
                "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": "909",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"38d-Gw7YTrrQB5OvO6jGvJ4kjuOPVJM\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                "average_yield": "6.41",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 147.52
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 641
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 641
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 641
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 493.92
                      }
                    ]
                  }
                ],
                "payout_amount": 641,
                "total_payout": 7692
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=120000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "BAJ_MAT_085",
              "caseName": "Verify product_min_tenure equals 365",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.929Z",
              "endedAt": "2026-06-23T11:12:35.940Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_min_tenure should equal 365",
                  "passed": true,
                  "message": "product_min_tenure=365"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.940Z",
              "endedAt": "2026-06-23T11:12:35.949Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=365, product_max_tenure=425"
                }
              ],
              "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/1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.950Z",
              "endedAt": "2026-06-23T11:12:35.969Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "78067",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"130f3-UCoqlVzMNy7bFPU0JfAH7uyJoCY\"",
                "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": "15",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "issuerData": {
                    "id": 2,
                    "name": "Bajaj Finance Ltd",
                    "description": "Bajaj Finance Ltd (BFL) is a registered deposit-taking NBFC with the RBI. Established in 1926, it operates with assets under management (AUM) exceeding ₹2.7 lakh crores and serves over 7.6 crore customers across 300+ branches.",
                    "f_code": "BAJ",
                    "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                    "url": "https://images.dev.fixerra.in/logos/bajaj/Bajaj+Finance_Logo_Primary1.png",
                    "sub_logo": "https://images.dev.fixerra.in/logos/bajaj/Bajaj+Finance_Logo_Reverse2.png",
                    "compounding_freq": "Yearly",
                    "issuer_type": "NBFC",
                    "crisil_rating": "AAA/Stable",
                    "icra_rating": "AAA(Stable)",
                    "trusted_users": "6.9CR+ Since 1987",
                    "hero_tag": null,
                    "subtag_1": "AAA RATED BY CRISIL",
                    "subtag_2": "Compounds Yearly",
                    "is_range_required": true,
                    "bank_disabled_at": null,
                    "faq": null,
                    "active_issuer_rank": 2,
                    "baseline_issuer_rank": null,
                    "deleted_at": null,
                    "upcoming_bank": false,
                    "upcoming_bank_date": null,
                    "utm_url": null,
                    "renewal_options": {
                      "Principal": true,
                      "No Renewal": true,
                      "Total Amount": true
                    },
                    "enable_our_pg": false,
                    "enable_easy_split": false,
                    "pg_setting": null,
                    "is_nominee_required": false,
                    "bank_type": "",
                    "is_issuer_live": true,
                    "women_benefit": 0,
                    "senior_citizen_benefit": 0.35,
                    "minTenure": 365,
                    "maxTenure": 1825
                  },
                  "vehiclesPayload": [
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "e0a51128-37d4-4822-8938-36bc0b36f3c0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "fc13b99a-7191-45c1-801d-e748650b1f1f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": 9,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.29"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b7868371-b244-4aef-8646-2d839b596100",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "6eb72253-e205-4d51-a3ad-c426b7374a0a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "dfa5e8a7-d1f1-4092-8b31-268716549434",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c8371de7-b9ea-44ed-8ecf-f006b638995e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "32bd1ca2-13d5-4b71-be7d-6fb1c84d3a11",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.37"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "dbf40596-f27c-4503-b074-2e28dd32b886",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "ab25f6cd-3899-488b-a55f-20e8cfa34ae1",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "291842f4-5ba3-4d74-8243-67eff5dd528b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "2cda8d64-9cb1-4f94-9559-9fadaabb3cc8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "9f63c80c-aa48-4265-8e58-5c8bca4972a0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.53"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c5252c7f-9d73-4378-8933-9eb948fd079e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "8eeab912-f831-4b39-afc3-5931461c1349",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c0d148ed-ae54-451e-b8e1-6870e93be351",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "e6ec7719-474e-4b95-8bc5-5e1c1bfcfb01",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "cbef0660-542d-4514-b877-f147707cc13c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "ef4df069-d66d-4d47-9470-29f7a677f026",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "f0a1590e-3ccb-43f2-a236-6aed11a865ba",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "34c0b443-c9ce-4a4e-bb92-7134586547ab",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "dc4f91be-7ad0-47f3-afdb-fbcaa71419f7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "63a688f1-eb8d-4a53-8cde-71b6a2541a14",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "58d02901-8540-459e-b37a-1fdad8c80ea8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "26cf3cf5-67ad-4f43-a67f-53c6d9d14a39",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.59"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "16f3fb3f-1e37-4be0-8fc4-f6fbbc02a2da",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "9b2728e8-6f90-433c-b8e3-269781984f16",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b8f9f81e-954a-49de-ac68-675681771795",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "0528940d-84dc-4fff-af51-36546330df52",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.16"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "aa3cae60-a8e3-4d71-b7f1-3c45bf382832",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "6fdfc9bd-6b64-448e-8073-e56735ecc74c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "a236c23a-201f-4c61-974a-6800d09558b0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "7cd766a9-6d71-4631-859f-0d96db3bc54f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1338,
                      "product_max_tenure": 1338,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "d33b8cf6-69f6-4c1a-940a-8349c8cab510",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.99"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "d9f49909-bc4c-40b6-aaf6-d06a42371bb2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b6a00d37-0178-41e3-8618-1eb996b32219",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.78"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "6bbf5ddd-9376-4540-a659-63c5446d8b36",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.83"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "f32cf394-a68f-41ef-aa19-e79d7ebdd188",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "4b0e3065-f372-492f-a4af-a054aee8131f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "823d5416-f823-4bc0-b82c-3983d4778d13",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "2d20202e-1c91-4266-adf6-2ab3efee8229",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": 2,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.89"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "3c58f41a-5e5b-41e9-a0e2-009a8d652deb",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c9f5a7f0-bea0-4f10-945f-5dfd7cb83272",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "a42e62c8-4eb7-4b51-bd53-6c25e57a71c4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "49317d75-9176-4ee7-8328-a01a34200198",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1003,
                      "product_max_tenure": 1003,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "466232a1-4cb3-4502-bd18-6f506ace1747",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.96"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "66cb7c2b-0bcc-405a-8ad8-e5b775995c53",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "fa9e3b89-dddc-4ba7-932e-917a4545a4a1",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "1d3c9a4d-7459-4e80-95a1-1b32a80de225",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c3c20fa6-20b4-4b76-a622-c4ce923978ab",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1276,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "20cdd02c-ff2e-498f-9185-cb57f8161c01",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "679d101b-0774-4d17-99fc-1963504c68e3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.42"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b9ce1e8f-f148-403c-82e8-9cbdceca85ae",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "7837ae9a-8cff-4465-a422-72c79cdd15c2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "faec33d5-fa11-4ed5-9d72-1f307847f4b6",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "11436981-9e81-46d2-9dc0-039e171cc1de",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "2d46c4f7-2408-47dd-bf9a-1770ae7a71c4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.34"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "08495b58-ecc8-469a-bf08-51d48964cf4a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.23"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "72b736c9-4aa4-4a25-b130-21aff74c10ac",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.23"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "97b473a6-7c44-45e6-b045-b730efa2f4e7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.23"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "588fdb7d-f25a-4d09-bc91-a65d7da35a0b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.23"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "72a57e04-5225-403d-8b69-c33d08cc2ad0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.46"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "41bbfe66-5ade-49a8-b167-49d03f9d6176",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "118969ea-7885-48c0-a7ac-156f426d5a6b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "dac0c029-5287-46c5-b101-1885913809fc",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "5c28fb30-e893-47c8-8913-5367b01c89fd",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "f450856d-c2f8-4f64-a577-70a3730bb3e0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "0fe1d1c2-3e21-4940-a4d6-0c0934c51e92",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "dd41523f-20f1-4ff6-9284-4eff9dbf814d",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "a730d894-3fab-48eb-b932-6ede31b2b3fe",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "550ca26d-1163-40e0-9eda-ff522a688e50",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "e43dac96-3ef0-4dd0-aba0-75f99730f403",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "40545c0a-6e4d-4ecb-81f0-e5d387e86b91",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.01"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "6c763d12-3359-42c0-9758-e45fde226ca1",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "4048fd69-ff51-4356-8733-79b93fab12c6",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "1b202078-77d7-4ae5-b517-1147c466d0dc",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "10eb4efc-6806-4e7d-8170-ee2cd50a8a1a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b82b2ae5-3166-4d7f-a9df-50cde57b2950",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.97"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "02b4c582-f698-4a50-8559-834daa725b73",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.86"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "45c7b771-aa01-419f-a202-486da254d580",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.86"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "d3924942-49ab-417b-9754-fa4a2d463ac4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.86"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "08e50851-aa84-4e69-bfbe-8bed1943baa8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.86"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c1ed946f-07c4-4eeb-8a06-b12c81bc4db8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "de026fc9-0dd2-4715-97b9-034f888ee819",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "53add7b7-d2a1-4eab-912c-58e67ba400f8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "0830ade7-180b-438c-9801-be8979c144ab",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.19"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "e4a16a8a-3a1b-40cd-81fb-355d8777e353",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.74"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "e43bab4d-8e1d-4e61-9bbf-4567b922be3c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.78"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "2e149d3a-840b-4186-a297-c788f299cebb",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.83"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "1ebe7bc2-43b6-45ca-9c0a-1ee0c9074200",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 1002,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "cc3b354e-4ad1-4a8c-a422-bc9db35e410f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 669,
                      "product_max_tenure": 669,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "99769377-4d18-42ff-b654-91edf37d963c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.44"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "f680774c-5572-4505-912a-4bc34f0eaf10",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.49"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "78708d93-86c7-4276-be5a-c48315c0b48b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "b0319fca-624b-487d-a11d-e5000c82f83a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.66"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "7f6b187d-a6e7-4559-aad2-89e5c3e6941e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "c11770d1-5209-4979-93f5-e41bd2e32e6e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "0fda16a3-b094-4e0a-9e35-48f5d872e95a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "8539448a-df3c-4cd1-9950-d14128e54ef2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 456,
                      "product_max_tenure": 546,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
                      "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 425,
                      "product_min_investment": 15000,
                      "product_max_investment": 30000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-04-30T11:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    }
                  ],
                  "highlights": [
                    {
                      "title": "All investments are regulated by RBI",
                      "url": "https://images.dev.fixerra.in/illustrations/RBI@3x.png"
                    },
                    {
                      "title": "Maturity Amount is directly credited to your bank account",
                      "url": "https://images.dev.fixerra.in/illustrations/Bank@3x.png"
                    },
                    {
                      "title": "Senior Citizens get up to 0.25% extra",
                      "url": "https://images.dev.fixerra.in/illustrations/Senior@3x.png"
                    }
                  ],
                  "about": [
                    {
                      "key": "Founded",
                      "value": "1926"
                    },
                    {
                      "key": "Customers Served",
                      "value": "8 Cr+"
                    },
                    {
                      "key": "Number of Branches",
                      "value": "300+"
                    },
                    {
                      "key": "CRISIL Rating",
                      "value": "AAA Stable"
                    },
                    {
                      "key": "Assets Under Management",
                      "value": "₹2.7 lakh Cr+"
                    }
                  ],
                  "distinctMinTenureValues": [
                    {
                      "value": 1003
                    },
                    {
                      "value": 1095
                    },
                    {
                      "value": 1277
                    },
                    {
                      "value": 1338
                    },
                    {
                      "value": 1825
                    },
                    {
                      "value": 365
                    },
                    {
                      "value": 456
                    },
                    {
                      "value": 547
                    },
                    {
                      "value": 669
                    },
                    {
                      "value": 730
                    }
                  ],
                  "interestPayouts": [
                    "Yearly",
                    "Maturity",
                    "Monthly",
                    "Quarterly",
                    "HalfYearly"
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/1b5b4acb-14a8-4a26-ac73-1e042ef67d48' \\\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 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/1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:35.969Z",
              "endedAt": "2026-06-23T11:12:35.973Z",
              "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:12:35 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/1b5b4acb-14a8-4a26-ac73-1e042ef67d48' \\\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/1b5b4acb-14a8-4a26-ac73-1e042ef67d48",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.973Z",
              "endedAt": "2026-06-23T11:12:35.978Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "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:12:35 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": "2",
                "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/1b5b4acb-14a8-4a26-ac73-1e042ef67d48?product_type=ABC' \\\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_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-BAJ-001_0",
              "caseName": "[POSITIVE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.978Z",
              "endedAt": "2026-06-23T11:12:35.988Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&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-BAJ-002_1",
              "caseName": "[POSITIVE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:35.988Z",
              "endedAt": "2026-06-23T11:12:36.003Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "120000",
                "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": "909",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:35 GMT",
                "etag": "W/\"38d-Gw7YTrrQB5OvO6jGvJ4kjuOPVJM\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                "average_yield": "6.41",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 147.52
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 641
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 641
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 641
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 493.92
                      }
                    ]
                  }
                ],
                "payout_amount": 641,
                "total_payout": 7692
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=120000&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-BAJ-003_2",
              "caseName": "[POSITIVE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.003Z",
              "endedAt": "2026-06-23T11:12:36.017Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "120000",
                "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": "636",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"27c-+VSfinI4Al/RLNvXY0YveC36uAI\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Quarterly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "99769377-4d18-42ff-b654-91edf37d963c",
                "average_yield": "6.44",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 148.21
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 1932
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 1932
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 1932
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 1785.12
                      }
                    ]
                  }
                ],
                "payout_amount": 1932,
                "total_payout": 7728
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=120000&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-BAJ-004_3",
              "caseName": "[POSITIVE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.017Z",
              "endedAt": "2026-06-23T11:12:36.033Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "730",
                "investment_amount": "120000",
                "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": "663",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"297-v7yzhRQk4IEOB8k7BCcGMAWjCRE\"",
                "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": "13",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.85",
                "payout_frequency": "HalfYearly",
                "maturity_date": "2028-06-22",
                "maturity_date_ist": "2028-06-22",
                "f_investment_vehicle_id": "2e149d3a-840b-4186-a297-c788f299cebb",
                "average_yield": "6.83",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 730,
                "product_max_tenure": 1002,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-09-30",
                        "amount": 2219.98
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 4098
                      },
                      {
                        "date": "2027-09-30",
                        "amount": 4098
                      }
                    ]
                  },
                  {
                    "year": 2028,
                    "data": [
                      {
                        "date": "2028-03-31",
                        "amount": 4098
                      },
                      {
                        "date": "2028-06-22",
                        "amount": 1875.21
                      }
                    ]
                  }
                ],
                "payout_amount": 4098,
                "total_payout": 16392
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=730&investment_amount=120000&payout_frequency=HalfYearly&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-BAJ-005_4",
              "caseName": "[POSITIVE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.033Z",
              "endedAt": "2026-06-23T11:12:36.048Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "730",
                "investment_amount": "100000",
                "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": "564",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"234-NKf6K3Zqaq0Vqg+DqTyxXpFYPq0\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.85",
                "payout_frequency": "Yearly",
                "maturity_date": "2028-06-22",
                "maturity_date_ist": "2028-06-22",
                "f_investment_vehicle_id": "1ebe7bc2-43b6-45ca-9c0a-1ee0c9074200",
                "average_yield": "6.85",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 730,
                "product_max_tenure": 1002,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 5266.35
                      }
                    ]
                  },
                  {
                    "year": 2028,
                    "data": [
                      {
                        "date": "2028-03-31",
                        "amount": 6850
                      },
                      {
                        "date": "2028-06-22",
                        "amount": 1578.97
                      }
                    ]
                  }
                ],
                "payout_amount": 6850,
                "total_payout": 13700
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=730&investment_amount=100000&payout_frequency=Yearly&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-POS-001_5",
              "caseName": "[POSITIVE] BAJ valid, cumulative with minimum amount",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.048Z",
              "endedAt": "2026-06-23T11:12:36.060Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"1bf-CDHCb2o9/i3VdZTUBOIjTUV3fVY\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 15990
                      }
                    ]
                  }
                ],
                "maturity_amount": 15990
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\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-POS-002_6",
              "caseName": "[POSITIVE] BAJ valid, maximum boundary",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.060Z",
              "endedAt": "2026-06-23T11:12:36.070Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "1825",
                "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": "461",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"1cd-LiLEEw4CrURGRCUr1eo/DLeZJok\"",
                "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": {
                "product_interest": "7.40",
                "payout_frequency": "Maturity",
                "maturity_date": "2031-06-22",
                "maturity_date_ist": "2031-06-22",
                "f_investment_vehicle_id": "d33b8cf6-69f6-4c1a-940a-8349c8cab510",
                "average_yield": "7.99",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 1825,
                "product_max_tenure": 1825,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2031,
                    "data": [
                      {
                        "date": "2031-06-22",
                        "amount": 42868931.76
                      }
                    ]
                  }
                ],
                "maturity_amount": 42868931.76
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=1825&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'",
              "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-POS-007_7",
              "caseName": "[POSITIVE] Non-cumulative yearly payout",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.070Z",
              "endedAt": "2026-06-23T11:12:36.083Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "730",
                "investment_amount": "100000",
                "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": "564",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"234-NKf6K3Zqaq0Vqg+DqTyxXpFYPq0\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.85",
                "payout_frequency": "Yearly",
                "maturity_date": "2028-06-22",
                "maturity_date_ist": "2028-06-22",
                "f_investment_vehicle_id": "1ebe7bc2-43b6-45ca-9c0a-1ee0c9074200",
                "average_yield": "6.85",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 730,
                "product_max_tenure": 1002,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 5266.35
                      }
                    ]
                  },
                  {
                    "year": 2028,
                    "data": [
                      {
                        "date": "2028-03-31",
                        "amount": 6850
                      },
                      {
                        "date": "2028-06-22",
                        "amount": 1578.97
                      }
                    ]
                  }
                ],
                "payout_amount": 6850,
                "total_payout": 13700
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=730&investment_amount=100000&payout_frequency=Yearly&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-POS-008_8",
              "caseName": "[POSITIVE] Non-cumulative monthly payout",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.084Z",
              "endedAt": "2026-06-23T11:12:36.097Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "120000",
                "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": "909",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"38d-Gw7YTrrQB5OvO6jGvJ4kjuOPVJM\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                "average_yield": "6.41",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 147.52
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 641
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 641
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 641
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 641
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 641
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 641
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 493.92
                      }
                    ]
                  }
                ],
                "payout_amount": 641,
                "total_payout": 7692
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=120000&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-POS-009_9",
              "caseName": "[POSITIVE] Non-cumulative quarterly payout",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.097Z",
              "endedAt": "2026-06-23T11:12:36.112Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "120000",
                "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": "636",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"27c-+VSfinI4Al/RLNvXY0YveC36uAI\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Quarterly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "99769377-4d18-42ff-b654-91edf37d963c",
                "average_yield": "6.44",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 148.21
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 1932
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 1932
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 1932
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 1785.12
                      }
                    ]
                  }
                ],
                "payout_amount": 1932,
                "total_payout": 7728
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=120000&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-POS-010_10",
              "caseName": "[POSITIVE] Non-cumulative half-yearly payout",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.112Z",
              "endedAt": "2026-06-23T11:12:36.126Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "730",
                "investment_amount": "120000",
                "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": "663",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"297-v7yzhRQk4IEOB8k7BCcGMAWjCRE\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.85",
                "payout_frequency": "HalfYearly",
                "maturity_date": "2028-06-22",
                "maturity_date_ist": "2028-06-22",
                "f_investment_vehicle_id": "2e149d3a-840b-4186-a297-c788f299cebb",
                "average_yield": "6.83",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 730,
                "product_max_tenure": 1002,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-09-30",
                        "amount": 2219.98
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 4098
                      },
                      {
                        "date": "2027-09-30",
                        "amount": 4098
                      }
                    ]
                  },
                  {
                    "year": 2028,
                    "data": [
                      {
                        "date": "2028-03-31",
                        "amount": 4098
                      },
                      {
                        "date": "2028-06-22",
                        "amount": 1875.21
                      }
                    ]
                  }
                ],
                "payout_amount": 4098,
                "total_payout": 16392
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=730&investment_amount=120000&payout_frequency=HalfYearly&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-NEG-002_11",
              "caseName": "[NEGATIVE] Missing `tenure`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.126Z",
              "endedAt": "2026-06-23T11:12:36.132Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-002"
              },
              "requestQuery": {
                "investment_amount": "100000",
                "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": "195",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"c3-acSi0+V+oPy4lxbKkFByzOOgc8g\"",
                "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": "FIXMAS066",
                    "error": "tenure is required. Please enter tenure."
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?investment_amount=100000&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-NEG-002\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS066",
                  "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": [
                "FIXMAS066"
              ],
              "actualErrorCodes": [
                "FIXMAS066"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-003_12",
              "caseName": "[NEGATIVE] Missing `investment_amount`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.132Z",
              "endedAt": "2026-06-23T11:12:36.136Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-003"
              },
              "requestQuery": {
                "tenure": "365",
                "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": "217",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"d9-CE+h1K1rRFckkSI3gVMMxarn2ik\"",
                "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": "FIXMAS068",
                    "error": "investment_amount is required. Please enter investment_amount."
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&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-NEG-003\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS068",
                  "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": [
                "FIXMAS068"
              ],
              "actualErrorCodes": [
                "FIXMAS068"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-004_13",
              "caseName": "[NEGATIVE] Missing `payout_frequency`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.136Z",
              "endedAt": "2026-06-23T11:12:36.140Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-004"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100000",
                "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": "497",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"1f1-yqNl2onv8Bwsk/1wOO1oLhF1rt4\"",
                "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": "FIXMAS070",
                    "error": "payout_frequency is required. Please enter payout_frequency."
                  },
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS071",
                    "error": "Invalid payout_frequency. Please enter a valid payout_frequency"
                  },
                  {
                    "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/BAJ?tenure=365&investment_amount=100000&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-NEG-004\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS071",
                  "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": [
                "FIXMAS071"
              ],
              "actualErrorCodes": [
                "FIXMAS070",
                "FIXMAS071",
                "FIXMAS071"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-005_14",
              "caseName": "[NEGATIVE] `tenure` invalid type (`abc`)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.140Z",
              "endedAt": "2026-06-23T11:12:36.145Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-005"
              },
              "requestQuery": {
                "tenure": "abc",
                "investment_amount": "100000",
                "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": "198",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 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/BAJ?tenure=abc&investment_amount=100000&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-NEG-005\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS067",
                  "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": [
                "FIXMAS067"
              ],
              "actualErrorCodes": [
                "FIXMAS067"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-006_15",
              "caseName": "[NEGATIVE] `investment_amount` invalid type (`tenK`)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.145Z",
              "endedAt": "2026-06-23T11:12:36.148Z",
              "durationMs": 3,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-006"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "tenK",
                "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": "220",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"dc-jzj9O7Y3H5RGJCjRKHi0D657RvI\"",
                "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": "FIXMAS069",
                    "error": "Invalid investment_amount. Please enter a valid investment_amount"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=tenK&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-NEG-006\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS069",
                  "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": [
                "FIXMAS069"
              ],
              "actualErrorCodes": [
                "FIXMAS069"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-007_16",
              "caseName": "[NEGATIVE] `tenure=0` invalid",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.149Z",
              "endedAt": "2026-06-23T11:12:36.153Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-007"
              },
              "requestQuery": {
                "tenure": "0",
                "investment_amount": "100000",
                "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": "198",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 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": "1",
                "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/BAJ?tenure=0&investment_amount=100000&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-NEG-007\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS067",
                  "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": [
                "FIXMAS067"
              ],
              "actualErrorCodes": [
                "FIXMAS067"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-008_17",
              "caseName": "[NEGATIVE] `investment_amount<=0` invalid",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.153Z",
              "endedAt": "2026-06-23T11:12:36.157Z",
              "durationMs": 3,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-008"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "0",
                "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": "220",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"dc-jzj9O7Y3H5RGJCjRKHi0D657RvI\"",
                "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": "FIXMAS069",
                    "error": "Invalid investment_amount. Please enter a valid investment_amount"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=0&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-NEG-008\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS069",
                  "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": [
                "FIXMAS069"
              ],
              "actualErrorCodes": [
                "FIXMAS069"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-009_18",
              "caseName": "[NEGATIVE] Invalid `payout_frequency` value",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.157Z",
              "endedAt": "2026-06-23T11:12:36.161Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-009"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100000",
                "payout_frequency": "Weekly",
                "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": "218",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 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/BAJ?tenure=365&investment_amount=100000&payout_frequency=Weekly&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-NEG-009\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS071",
                  "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": [
                "FIXMAS071"
              ],
              "actualErrorCodes": [
                "FIXMAS071"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-010_19",
              "caseName": "[NEGATIVE] `investment_amount` not multiple of 1000",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.161Z",
              "endedAt": "2026-06-23T11:12:36.165Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-010"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100500",
                "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": "201",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"c9-2re6GDMEIAEFJ1IzkNKzA/vr5Vo\"",
                "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": "FIXMAS091",
                    "error": "investment_amount should be a multiple of 1000"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=100500&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-NEG-010\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS091",
                  "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": [
                "FIXMAS091"
              ],
              "actualErrorCodes": [
                "FIXMAS091"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-011_20",
              "caseName": "[NEGATIVE] Invalid `senior_citizen` type",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.165Z",
              "endedAt": "2026-06-23T11:12:36.170Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-011"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100000",
                "payout_frequency": "Maturity",
                "senior_citizen": "yes",
                "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:12:36 GMT",
                "etag": "W/\"d6-lQ785TfGm2j1X+Qeq5odMdVH2LY\"",
                "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": "FIXMAS072",
                    "error": "Invalid senior_citizen. Please enter a valid senior_citizen"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=100000&payout_frequency=Maturity&senior_citizen=yes&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-NEG-011\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS072",
                  "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": [
                "FIXMAS072"
              ],
              "actualErrorCodes": [
                "FIXMAS072"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-012_21",
              "caseName": "[NEGATIVE] Invalid `women_citizen` type",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.170Z",
              "endedAt": "2026-06-23T11:12:36.175Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-012"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "1",
                "tax_saver": "false"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "212",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"d4-r79aiDB1H3CwzBvxjvbFVYX8TlM\"",
                "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": "FIXMAS073",
                    "error": "Invalid women_citizen. Please enter a valid women_citizen"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=100000&payout_frequency=Maturity&senior_citizen=false&women_citizen=1&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"TC-MAT-NEG-012\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS073",
                  "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": [
                "FIXMAS073"
              ],
              "actualErrorCodes": [
                "FIXMAS073"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-013_22",
              "caseName": "[NEGATIVE] Invalid `tax_saver` type",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.175Z",
              "endedAt": "2026-06-23T11:12:36.179Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-013"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "0"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "208",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"d0-Ymg6YAV+YSIhuQoV/epuFfdu1Bw\"",
                "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": "FIXMAS074",
                    "error": "Invalid tax_saver. Please enter a valid boolean value"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=100000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=0' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"TC-MAT-NEG-013\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS074",
                  "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": [
                "FIXMAS074"
              ],
              "actualErrorCodes": [
                "FIXMAS074"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-014_23",
              "caseName": "[NEGATIVE] Unsupported `product_type`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.179Z",
              "endedAt": "2026-06-23T11:12:36.184Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-014"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100000",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "false",
                "product_type": "ABC"
              },
              "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:12:36 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": "2",
                "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/BAJ?tenure=365&investment_amount=100000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=ABC' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"TC-MAT-NEG-014\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS107",
                  "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": [
                "FIXMAS107"
              ],
              "actualErrorCodes": [
                "FIXMAS107"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-NEG-015_24",
              "caseName": "[NEGATIVE] Missing partner headers",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:12:36.184Z",
              "endedAt": "2026-06-23T11:12:36.188Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-NEG-015"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100000",
                "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": "79",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 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/BAJ?tenure=365&investment_amount=100000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"_qa_negative_test\":true,\"_tc_id\":\"TC-MAT-NEG-015\"}'",
              "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_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-BAJ-001_25",
              "caseName": "[EDGE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.188Z",
              "endedAt": "2026-06-23T11:12:36.197Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-LIMIT-BAJ-001"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "14000",
                "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:12:36 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/BAJ?tenure=365&investment_amount=14000&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-BAJ-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-BAJ-002_26",
              "caseName": "[EDGE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.198Z",
              "endedAt": "2026-06-23T11:12:36.208Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-LIMIT-BAJ-002"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "40000000",
                "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:12:36 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/BAJ?tenure=365&investment_amount=40000000&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-BAJ-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-BAJ-001_27",
              "caseName": "[POSITIVE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.208Z",
              "endedAt": "2026-06-23T11:12:36.218Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:36 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/BAJ?tenure=365&investment_amount=15000&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-BAJ-001_28",
              "caseName": "[POSITIVE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.218Z",
              "endedAt": "2026-06-23T11:12:36.228Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:36 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/BAJ?tenure=365&investment_amount=15000&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-BAJ-001_29",
              "caseName": "[POSITIVE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.228Z",
              "endedAt": "2026-06-23T11:12:36.238Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "451",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"1c3-WvDp+4DinJ+jo+cSsUFd1E7r7hU\"",
                "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": {
                "product_interest": "6.95",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "f450856d-c2f8-4f64-a577-70a3730bb3e0",
                "average_yield": "6.95",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 16042.5
                      }
                    ]
                  }
                ],
                "maturity_amount": 16042.5
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&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_TC-MAT-EDG-006_30",
              "caseName": "[EDGE] Conflicting filters all true (unsupported flags for BAJ)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.238Z",
              "endedAt": "2026-06-23T11:12:36.248Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-EDG-006"
              },
              "requestQuery": {
                "tenure": "1095",
                "investment_amount": "300000",
                "payout_frequency": "Quarterly",
                "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:12:36 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/BAJ?tenure=1095&investment_amount=300000&payout_frequency=Quarterly&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\":\"TC-MAT-EDG-006\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "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-EDG-007_31",
              "caseName": "[EDGE] Decimal amount valid multiple-of-1000 string",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.248Z",
              "endedAt": "2026-06-23T11:12:36.258Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-EDG-007"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100000.00",
                "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": "449",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"1c1-mtcyAbr1PEtYlyIl7CXh/l7TarM\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 106600
                      }
                    ]
                  }
                ],
                "maturity_amount": 106600
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=100000.00&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-EDG-007\"}'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                }
              ],
              "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-EDG-008_32",
              "caseName": "[EDGE] Decimal amount not valid step",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.258Z",
              "endedAt": "2026-06-23T11:12:36.263Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-EDG-008"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100000.5",
                "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": "201",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"c9-2re6GDMEIAEFJ1IzkNKzA/vr5Vo\"",
                "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": "FIXMAS091",
                    "error": "investment_amount should be a multiple of 1000"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=100000.5&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-EDG-008\"}'",
              "validations": [
                {
                  "description": "Should indicate error (HTTP 400 or body statusCode=400)",
                  "passed": true,
                  "message": "Error confirmed (HTTP 200, body.statusCode=400)"
                },
                {
                  "description": "Response should contain error code(s): FIXMAS091",
                  "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": [
                "FIXMAS091"
              ],
              "actualErrorCodes": [
                "FIXMAS091"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-BIZ-006_33",
              "caseName": "[POSITIVE] BAJ below issuer min",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.263Z",
              "endedAt": "2026-06-23T11:12:36.274Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "14000",
                "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:12:36 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": "9",
                "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/BAJ?tenure=365&investment_amount=14000&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": "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": [
                "FIXMAS092"
              ],
              "actualErrorCodes": [
                "FIXMAS092"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-BIZ-010_34",
              "caseName": "[POSITIVE] Amount non-multiple with internal bypass `job=true`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.274Z",
              "endedAt": "2026-06-23T11:12:36.284Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100500",
                "payout_frequency": "Maturity",
                "senior_citizen": "false",
                "women_citizen": "false",
                "tax_saver": "false",
                "job": "true"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "449",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"1c1-Nj1WplL3cxKLK9pgqegaVFWhvNQ\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "1b7f705e-0c25-4172-b38f-60d9eaf235ff",
                "average_yield": "6.60",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 107133
                      }
                    ]
                  }
                ],
                "maturity_amount": 107133
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=100500&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&job=true' \\\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": [
                "FIXMAS005"
              ],
              "actualErrorCodes": []
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-001_35",
              "caseName": "[POSITIVE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.284Z",
              "endedAt": "2026-06-23T11:12:36.299Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "932",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"3a4-ug6xgkFyJ0ezDjtDIvKTUaPoNng\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "6b53e620-750e-42ef-ab87-808922fc0d73",
                "average_yield": "6.41",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 18.44
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 80.13
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 80.13
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 80.13
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 80.13
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 80.13
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 80.13
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 61.74
                      }
                    ]
                  }
                ],
                "payout_amount": 80.13,
                "total_payout": 961.5
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&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_36",
              "caseName": "[POSITIVE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.299Z",
              "endedAt": "2026-06-23T11:12:36.315Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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": "933",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:36 GMT",
                "etag": "W/\"3a5-maS+6h95iHubSmIW5chSaURDJME\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.95",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0fe1d1c2-3e21-4940-a4d6-0c0934c51e92",
                "average_yield": "6.95",
                "product_min_investment": 15000,
                "product_max_investment": 30000000,
                "product_min_tenure": 365,
                "product_max_tenure": 425,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 19.99
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 86.88
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 86.88
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 86.88
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 86.88
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 86.88
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 86.88
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 86.88
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 86.88
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 86.88
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 86.88
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 86.88
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 66.94
                      }
                    ]
                  }
                ],
                "payout_amount": 86.88,
                "total_payout": 1042.5
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ?tenure=365&investment_amount=15000&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_37",
              "caseName": "[EDGE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.315Z",
              "endedAt": "2026-06-23T11:12:36.326Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-003"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:36 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/BAJ?tenure=365&investment_amount=15000&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_38",
              "caseName": "[EDGE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.326Z",
              "endedAt": "2026-06-23T11:12:36.336Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-004"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:36 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/BAJ?tenure=365&investment_amount=15000&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_39",
              "caseName": "[EDGE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.336Z",
              "endedAt": "2026-06-23T11:12:36.347Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-005"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:36 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/BAJ?tenure=365&investment_amount=15000&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_40",
              "caseName": "[EDGE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.347Z",
              "endedAt": "2026-06-23T11:12:36.357Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-006"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:36 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/BAJ?tenure=365&investment_amount=15000&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_41",
              "caseName": "[EDGE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.357Z",
              "endedAt": "2026-06-23T11:12:36.378Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-007"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:36 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/BAJ?tenure=365&investment_amount=15000&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_42",
              "caseName": "[EDGE] `BAJ`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/BAJ",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:36.378Z",
              "endedAt": "2026-06-23T11:12:36.388Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-008"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "15000",
                "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:12:36 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/BAJ?tenure=365&investment_amount=15000&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": 89,
            "passed": 89,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 1014
          }
        },
        {
          "stepId": "step-04-pan-verification",
          "stepName": "PAN Verification",
          "cases": [
            {
              "caseId": "BAJ_PAN_001",
              "caseName": "Get user profile before PAN entry (Bajaj Finance)",
              "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:12:36.388Z",
              "endedAt": "2026-06-23T11:12:36.440Z",
              "durationMs": 52,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:36 GMT",
                "etag": "W/\"573-ZYGjJFdQZl/+cPSTSCfvBQZ8Vuc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:30.000Z",
                  "isActive": true,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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:12:30.545Z",
                  "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:42:30.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_PAN_002",
              "caseName": "Track insights event for PAN verification step (Bajaj Finance)",
              "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:12:36.440Z",
              "endedAt": "2026-06-23T11:12:36.489Z",
              "durationMs": 49,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "state": "KYC_VERIFICATION",
                "sub_state": "PAN_VERIFICATION",
                "status": "SUCCESS",
                "issuer_code": "BAJ",
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "BAJ"
                },
                "d1": "{\"event_id\":\"53de4500-2c2e-4175-8ca1-d3440a55ae95\"}",
                "data": "{\"issuer_code\":\"BAJ\",\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}}"
              },
              "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:12:36 GMT",
                "etag": "W/\"41-J+FZcECpT5a5qPPJ1pYNrWZwv1o\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "event_id": "53de4500-2c2e-4175-8ca1-d3440a55ae95-1782213156448"
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"state\":\"KYC_VERIFICATION\",\"sub_state\":\"PAN_VERIFICATION\",\"status\":\"SUCCESS\",\"issuer_code\":\"BAJ\",\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"},\"d1\":\"{\\\"event_id\\\":\\\"53de4500-2c2e-4175-8ca1-d3440a55ae95\\\"}\",\"data\":\"{\\\"issuer_code\\\":\\\"BAJ\\\",\\\"fd_info\\\":{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}}\"}'",
              "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": "BAJ_PAN_003",
              "caseName": "Verify PAN for Bajaj Finance",
              "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:12:36.489Z",
              "endedAt": "2026-06-23T11:12:37.070Z",
              "durationMs": 581,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:37 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": "578",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:37.070Z",
              "endedAt": "2026-06-23T11:12:37.512Z",
              "durationMs": 442,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:37 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": "438",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:37.512Z",
              "endedAt": "2026-06-23T11:12:37.969Z",
              "durationMs": 457,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:37 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": "453",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:37.969Z",
              "endedAt": "2026-06-23T11:12:38.373Z",
              "durationMs": 404,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12: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": "401",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:38.373Z",
              "endedAt": "2026-06-23T11:12:38.771Z",
              "durationMs": 398,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12: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": "394",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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=398ms"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:38.771Z",
              "endedAt": "2026-06-23T11:12:39.145Z",
              "durationMs": 374,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12: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": "371",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.145Z",
              "endedAt": "2026-06-23T11:12:39.160Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.160Z",
              "endedAt": "2026-06-23T11:12:39.170Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": null,
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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": "6",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":null,\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.170Z",
              "endedAt": "2026-06-23T11:12:39.236Z",
              "durationMs": 66,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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": "62",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.236Z",
              "endedAt": "2026-06-23T11:12:39.245Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR343",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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": "6",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR343\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.245Z",
              "endedAt": "2026-06-23T11:12:39.258Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438LL",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438LL\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.258Z",
              "endedAt": "2026-06-23T11:12:39.336Z",
              "durationMs": 78,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "blxpr3438l",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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": "75",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"blxpr3438l\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.336Z",
              "endedAt": "2026-06-23T11:12:39.347Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXP@3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXP@3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.347Z",
              "endedAt": "2026-06-23T11:12:39.392Z",
              "durationMs": 45,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXP R3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXP R3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.392Z",
              "endedAt": "2026-06-23T11:12:39.436Z",
              "durationMs": 44,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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": "38",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.436Z",
              "endedAt": "2026-06-23T11:12:39.445Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "ABCDEFGHIJ",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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": "6",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"ABCDEFGHIJ\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.445Z",
              "endedAt": "2026-06-23T11:12:39.455Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "AB123456CD",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"AB123456CD\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.455Z",
              "endedAt": "2026-06-23T11:12:39.466Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "' OR 1=1 --",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"'\\'' OR 1=1 --\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.467Z",
              "endedAt": "2026-06-23T11:12:39.527Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "<script>alert(1)</script>",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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": "58",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"<script>alert(1)</script>\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.527Z",
              "endedAt": "2026-06-23T11:12:39.534Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": "{\"number\":",
              "requestQuery": {},
              "responseHeaders": {
                "content-length": "248",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:39 GMT",
                "etag": "W/\"f8-ydQRwr2txlf09MfVIoTWDDYnXgw\"",
                "vary": "Origin",
                "x-powered-by": "Express",
                "x-envoy-upstream-service-time": "3",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:39.535Z",
              "endedAt": "2026-06-23T11:12:39.548Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {},
              "requestQuery": {},
              "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:12:39 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": "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)"
                  },
                  {
                    "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:39.548Z",
              "endedAt": "2026-06-23T11:12:39.559Z",
              "durationMs": 11,
              "requestHeaders": {
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": "{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}",
              "requestQuery": {},
              "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:12:39 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' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.559Z",
              "endedAt": "2026-06-23T11:12:39.627Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "text/plain",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": "{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}",
              "requestQuery": {},
              "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:12:39 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": "65",
                "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' \\\n  -H 'Content-Type: text/plain' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.627Z",
              "endedAt": "2026-06-23T11:12:39.639Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.639Z",
              "endedAt": "2026-06-23T11:12:39.654Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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 POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.654Z",
              "endedAt": "2026-06-23T11:12:39.664Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.664Z",
              "endedAt": "2026-06-23T11:12:39.727Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:39 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:39.727Z",
              "endedAt": "2026-06-23T11:12:40.149Z",
              "durationMs": 422,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12: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": "419",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:40.149Z",
              "endedAt": "2026-06-23T11:12:40.491Z",
              "durationMs": 342,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12: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": "339",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:40.491Z",
              "endedAt": "2026-06-23T11:12:41.127Z",
              "durationMs": 636,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12: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": "489",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:41.127Z",
              "endedAt": "2026-06-23T11:12:42.235Z",
              "durationMs": 1108,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12: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": "469",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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 495ms across 3 requests"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:42.235Z",
              "endedAt": "2026-06-23T11:12:44.502Z",
              "durationMs": 2267,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12: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": "1754",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:44.503Z",
              "endedAt": "2026-06-23T11:12:45.203Z",
              "durationMs": 700,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:45 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": "698",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_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:12:45.203Z",
              "endedAt": "2026-06-23T11:12:45.592Z",
              "durationMs": 389,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:12:45 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": "385",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"BAJ\",\"issuer_type\":\"NBFC\"}'",
              "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": "BAJ_PAN_950",
              "caseName": "Persist DOB for downstream eligibility (CKYC fallback)",
              "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:12:45.592Z",
              "endedAt": "2026-06-23T11:12:45.651Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "fuserid": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "dob": "1992-04-30"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1844",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:45 GMT",
                "etag": "W/\"734-aw9Tnxf2PDz8M0D2D6btwNeJYew\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:12:30.000Z",
                  "updatedAt": "2026-06-23T11:12:45.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": null,
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
                  "code": "91",
                  "dob": "249a22814bf213a7ff2e68cfa58da9d3:ecfe610f12b665afad3545ca90ac0be2",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:12:30.545Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "KALU NATHU RATHOD",
                  "is_pan_verified": false,
                  "manual_pan_verified": null,
                  "is_email_verified": false,
                  "is_aadhaar_verified": false,
                  "is_nominee_present": false,
                  "is_ckyc_verified": false,
                  "is_bank_present": false,
                  "kin": "father",
                  "kin_first_name": "KALU",
                  "kin_middle_name": "NATHU",
                  "kin_last_name": "RATHOD",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:12:46.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": null,
                  "profile_updated_at": "2026-06-23T11:12:45.600Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:42:30.000Z",
                  "is_pan_consent_checked": false,
                  "pan_consent_checked_date": "2026-06-23T16:42:45.000Z"
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user' \\\n  -H 'Content-Type: application/json' \\\n  -H 'fuserid: e523c1e5-0229-4637-983c-05e9afb87b9c' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"dob\":\"1992-04-30\"}'",
              "validations": [
                {
                  "description": "DOB update should persist (201 with updated user)",
                  "passed": true,
                  "message": "DOB persisted (HTTP 200, dob=249a22814bf213a7ff2e68cfa58da9d3:ecfe610f12b665afad3545ca90ac0be2)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            }
          ],
          "summary": {
            "total": 37,
            "passed": 37,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 9260
          }
        },
        {
          "stepId": "step-05-personal-details-address",
          "stepName": "Email / Personal Details / Address",
          "cases": [
            {
              "caseId": "BAJ_EMAIL_001",
              "caseName": "Verify OTP sent to valid email (Bajaj 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:12:45.651Z",
              "endedAt": "2026-06-23T11:12:45.997Z",
              "durationMs": 346,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:45 GMT",
                "etag": "W/\"b3-LQMfIH3fLDh6K7JjpxEfe8glYnY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "343",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213165752,
                  "endTime": 1782213165956,
                  "durationMs": 204,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:45.997Z",
              "endedAt": "2026-06-23T11:12:46.016Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:46 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": "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": 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:46.016Z",
              "endedAt": "2026-06-23T11:12:46.029Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:46 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": "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": 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:46.030Z",
              "endedAt": "2026-06-23T11:12:46.043Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:46 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:46.043Z",
              "endedAt": "2026-06-23T11:12:46.055Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:46 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": "9",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:46.055Z",
              "endedAt": "2026-06-23T11:12:46.068Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:46 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:46.068Z",
              "endedAt": "2026-06-23T11:12:46.136Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:46 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": "65",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:46.136Z",
              "endedAt": "2026-06-23T11:12:46.147Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:46 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:46.147Z",
              "endedAt": "2026-06-23T11:12:46.158Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:46 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:46.158Z",
              "endedAt": "2026-06-23T11:12:46.170Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:46 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:46.170Z",
              "endedAt": "2026-06-23T11:12:46.230Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"issuer\":{\"f_code\":\"BAJ\"}}"
              },
              "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:12:46 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": "57",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"BAJ\\\"}}\"}'",
              "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": "BAJ_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:12:46.230Z",
              "endedAt": "2026-06-23T11:12:46.241Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "224",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:46 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:46.241Z",
              "endedAt": "2026-06-23T11:12:46.253Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:46 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:46.253Z",
              "endedAt": "2026-06-23T11:12:46.431Z",
              "durationMs": 178,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:46 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": "70",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_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:12:46.431Z",
              "endedAt": "2026-06-23T11:12:46.739Z",
              "durationMs": 308,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:46 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:46.740Z",
              "endedAt": "2026-06-23T11:12:47.039Z",
              "durationMs": 299,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:46 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.039Z",
              "endedAt": "2026-06-23T11:12:47.050Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.050Z",
              "endedAt": "2026-06-23T11:12:47.131Z",
              "durationMs": 81,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.131Z",
              "endedAt": "2026-06-23T11:12:47.142Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.142Z",
              "endedAt": "2026-06-23T11:12:47.153Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.153Z",
              "endedAt": "2026-06-23T11:12:47.231Z",
              "durationMs": 78,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.231Z",
              "endedAt": "2026-06-23T11:12:47.451Z",
              "durationMs": 220,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.452Z",
              "endedAt": "2026-06-23T11:12:47.463Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.463Z",
              "endedAt": "2026-06-23T11:12:47.477Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.477Z",
              "endedAt": "2026-06-23T11:12:47.488Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.488Z",
              "endedAt": "2026-06-23T11:12:47.527Z",
              "durationMs": 39,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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": "36",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.527Z",
              "endedAt": "2026-06-23T11:12:47.538Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.538Z",
              "endedAt": "2026-06-23T11:12:47.548Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.548Z",
              "endedAt": "2026-06-23T11:12:47.560Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.561Z",
              "endedAt": "2026-06-23T11:12:47.779Z",
              "durationMs": 218,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "DILIP@FIXERRA.INN"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "178",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:47 GMT",
                "etag": "W/\"b2-0vXXI+Oth1cgXPjEuTzDFuA0ZDw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "215",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213167672,
                  "endTime": 1782213167742,
                  "durationMs": 70,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.779Z",
              "endedAt": "2026-06-23T11:12:47.793Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.793Z",
              "endedAt": "2026-06-23T11:12:47.805Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.805Z",
              "endedAt": "2026-06-23T11:12:47.829Z",
              "durationMs": 24,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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": "21",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.829Z",
              "endedAt": "2026-06-23T11:12:47.843Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.843Z",
              "endedAt": "2026-06-23T11:12:47.857Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.857Z",
              "endedAt": "2026-06-23T11:12:47.941Z",
              "durationMs": 84,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.941Z",
              "endedAt": "2026-06-23T11:12:47.952Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:47 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:47.952Z",
              "endedAt": "2026-06-23T11:12:48.142Z",
              "durationMs": 190,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:48 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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 38ms across 5 requests"
                }
              ],
              "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:48.142Z",
              "endedAt": "2026-06-23T11:12:48.261Z",
              "durationMs": 119,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:48 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:48.261Z",
              "endedAt": "2026-06-23T11:12:48.431Z",
              "durationMs": 170,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:48 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": "33",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:48.431Z",
              "endedAt": "2026-06-23T11:12:48.443Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:48 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:48.443Z",
              "endedAt": "2026-06-23T11:12:48.452Z",
              "durationMs": 9,
              "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:12:48 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": "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": "BAJ_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:12:48.452Z",
              "endedAt": "2026-06-23T11:12:48.457Z",
              "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:12:48 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\":\"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": "BAJ_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:12:48.457Z",
              "endedAt": "2026-06-23T11:12:48.462Z",
              "durationMs": 5,
              "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:12:48 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 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": "BAJ_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:12:48.462Z",
              "endedAt": "2026-06-23T11:12:48.467Z",
              "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:12:48 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": "BAJ_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:12:48.468Z",
              "endedAt": "2026-06-23T11:12:48.537Z",
              "durationMs": 69,
              "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:12:48 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": "67",
                "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": "BAJ_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:12:48.538Z",
              "endedAt": "2026-06-23T11:12:48.626Z",
              "durationMs": 88,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:48 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": "86",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:48.626Z",
              "endedAt": "2026-06-23T11:12:48.637Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:48 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": "7",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:48.637Z",
              "endedAt": "2026-06-23T11:12:48.650Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:48 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": "10",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_EMAIL_900A",
              "caseName": "Verify email OTP (Bajaj 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:12:48.651Z",
              "endedAt": "2026-06-23T11:12:48.747Z",
              "durationMs": 96,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "otp": "123456",
                "fd_info": "{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}"
              },
              "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:12:48 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": "93",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"otp\":\"123456\",\"fd_info\":\"{\\\"amount\\\":50000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"BAJ\\\"}\"}'",
              "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": "BAJ_EMAIL_900",
              "caseName": "Save email to user profile (Bajaj 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:12:48.747Z",
              "endedAt": "2026-06-23T11:12:48.776Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn"
              },
              "requestQuery": {
                "issuer_code": "BAJ",
                "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:12:48 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": "26",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response should confirm user update",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_EMAIL_901",
              "caseName": "Get user to confirm email state (Bajaj 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:12:48.776Z",
              "endedAt": "2026-06-23T11:12:48.856Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1637",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:48 GMT",
                "etag": "W/\"665-X5g7mwL6rQFwXqiidmP8nIzMRh8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:12:30.000Z",
                  "isActive": true,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": "DILIP@FIXERRA.INN",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": "1992-04-30",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:12:30.545Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "KALU NATHU RATHOD",
                  "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": "father",
                  "kin_first_name": "KALU",
                  "kin_middle_name": "NATHU",
                  "kin_last_name": "RATHOD",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:12:46.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": "2026-06-23T11:12:49.000Z",
                  "profile_updated_at": "2026-06-23T11:12:46.000Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:42:30.000Z",
                  "decrypted_pan": "BLXPR3438L",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_PI_001",
              "caseName": "Get dropdown options for personal info form (Bajaj Finance)",
              "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:12:48.856Z",
              "endedAt": "2026-06-23T11:12:48.861Z",
              "durationMs": 5,
              "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:12:48 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": "2",
                "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": "BAJ_PI_002",
              "caseName": "Save personal details for Bajaj Finance 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:12:48.862Z",
              "endedAt": "2026-06-23T11:12:48.946Z",
              "durationMs": 84,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:48 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": "80",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:48.946Z",
              "endedAt": "2026-06-23T11:12:49.026Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:48 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": "77",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response content type should be application/json",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:49.026Z",
              "endedAt": "2026-06-23T11:12:49.055Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:49 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": "26",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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"
                },
                {
                  "description": "Response should complete within 2000ms",
                  "passed": true,
                  "message": "duration=29ms"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:49.055Z",
              "endedAt": "2026-06-23T11:12:49.114Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC",
                "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": "0",
                "content-security-policy": "default-src 'self'",
                "date": "Tue, 23 Jun 2026 11:12:49 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": "24",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&issuer_type=NBFC&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:49.115Z",
              "endedAt": "2026-06-23T11:12:49.145Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:49 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": "27",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:49.145Z",
              "endedAt": "2026-06-23T11:12:49.158Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.158Z",
              "endedAt": "2026-06-23T11:12:49.172Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.172Z",
              "endedAt": "2026-06-23T11:12:49.227Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.227Z",
              "endedAt": "2026-06-23T11:12:49.244Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "13",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.244Z",
              "endedAt": "2026-06-23T11:12:49.327Z",
              "durationMs": 83,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:49 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": "78",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:49.327Z",
              "endedAt": "2026-06-23T11:12:49.362Z",
              "durationMs": 35,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:49 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:49.362Z",
              "endedAt": "2026-06-23T11:12:49.375Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "9",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.376Z",
              "endedAt": "2026-06-23T11:12:49.445Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "66",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.445Z",
              "endedAt": "2026-06-23T11:12:49.535Z",
              "durationMs": 90,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "87",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.535Z",
              "endedAt": "2026-06-23T11:12:49.547Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.547Z",
              "endedAt": "2026-06-23T11:12:49.559Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.559Z",
              "endedAt": "2026-06-23T11:12:49.578Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.578Z",
              "endedAt": "2026-06-23T11:12:49.637Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.637Z",
              "endedAt": "2026-06-23T11:12:49.649Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "9",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.649Z",
              "endedAt": "2026-06-23T11:12:49.660Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "7",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.661Z",
              "endedAt": "2026-06-23T11:12:49.671Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "7",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.671Z",
              "endedAt": "2026-06-23T11:12:49.772Z",
              "durationMs": 101,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "66",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.772Z",
              "endedAt": "2026-06-23T11:12:49.787Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "11",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.787Z",
              "endedAt": "2026-06-23T11:12:49.831Z",
              "durationMs": 44,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "38",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.831Z",
              "endedAt": "2026-06-23T11:12:49.841Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.841Z",
              "endedAt": "2026-06-23T11:12:49.869Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:49 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": "25",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:49.869Z",
              "endedAt": "2026-06-23T11:12:49.927Z",
              "durationMs": 58,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "54",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.927Z",
              "endedAt": "2026-06-23T11:12:49.955Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:49 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": "25",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:49.955Z",
              "endedAt": "2026-06-23T11:12:49.968Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:49 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": "10",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:49.969Z",
              "endedAt": "2026-06-23T11:12:50.028Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:49 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": "55",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:50.028Z",
              "endedAt": "2026-06-23T11:12:50.045Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "13",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.045Z",
              "endedAt": "2026-06-23T11:12:50.057Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.057Z",
              "endedAt": "2026-06-23T11:12:50.134Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:50 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": "74",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:50.134Z",
              "endedAt": "2026-06-23T11:12:50.147Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.147Z",
              "endedAt": "2026-06-23T11:12:50.175Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:50 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": "25",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:50.175Z",
              "endedAt": "2026-06-23T11:12:50.188Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.188Z",
              "endedAt": "2026-06-23T11:12:50.258Z",
              "durationMs": 70,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:50 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": "67",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:50.258Z",
              "endedAt": "2026-06-23T11:12:50.270Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "9",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.271Z",
              "endedAt": "2026-06-23T11:12:50.353Z",
              "durationMs": 82,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:50 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": "79",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:50.353Z",
              "endedAt": "2026-06-23T11:12:50.365Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "9",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.365Z",
              "endedAt": "2026-06-23T11:12:50.435Z",
              "durationMs": 70,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "66",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.435Z",
              "endedAt": "2026-06-23T11:12:50.469Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:50 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:50.469Z",
              "endedAt": "2026-06-23T11:12:50.532Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "59",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.532Z",
              "endedAt": "2026-06-23T11:12:50.564Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:50 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": "29",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:50.564Z",
              "endedAt": "2026-06-23T11:12:50.614Z",
              "durationMs": 50,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.614Z",
              "endedAt": "2026-06-23T11:12:50.636Z",
              "durationMs": 22,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "19",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.636Z",
              "endedAt": "2026-06-23T11:12:50.648Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.648Z",
              "endedAt": "2026-06-23T11:12:50.659Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "7",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.659Z",
              "endedAt": "2026-06-23T11:12:50.669Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.669Z",
              "endedAt": "2026-06-23T11:12:50.730Z",
              "durationMs": 61,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "58",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.731Z",
              "endedAt": "2026-06-23T11:12:50.748Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "14",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.748Z",
              "endedAt": "2026-06-23T11:12:50.759Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "8",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.759Z",
              "endedAt": "2026-06-23T11:12:50.770Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "8",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.770Z",
              "endedAt": "2026-06-23T11:12:50.834Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "60",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.834Z",
              "endedAt": "2026-06-23T11:12:50.851Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "13",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.851Z",
              "endedAt": "2026-06-23T11:12:50.868Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "13",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.868Z",
              "endedAt": "2026-06-23T11:12:50.945Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:50 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": "74",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:50.945Z",
              "endedAt": "2026-06-23T11:12:50.957Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:50 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": "8",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:50.957Z",
              "endedAt": "2026-06-23T11:12:51.034Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:51 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": "75",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:51.034Z",
              "endedAt": "2026-06-23T11:12:51.047Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.048Z",
              "endedAt": "2026-06-23T11:12:51.153Z",
              "durationMs": 105,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:51 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": "102",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:51.153Z",
              "endedAt": "2026-06-23T11:12:51.228Z",
              "durationMs": 75,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "72",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.228Z",
              "endedAt": "2026-06-23T11:12:51.258Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:51 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": "26",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:51.258Z",
              "endedAt": "2026-06-23T11:12:51.269Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "8",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.269Z",
              "endedAt": "2026-06-23T11:12:51.286Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "13",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.286Z",
              "endedAt": "2026-06-23T11:12:51.337Z",
              "durationMs": 51,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "47",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.337Z",
              "endedAt": "2026-06-23T11:12:51.348Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.348Z",
              "endedAt": "2026-06-23T11:12:51.365Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "14",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.365Z",
              "endedAt": "2026-06-23T11:12:51.438Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "70",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.438Z",
              "endedAt": "2026-06-23T11:12:51.449Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "8",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.449Z",
              "endedAt": "2026-06-23T11:12:51.467Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "14",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.467Z",
              "endedAt": "2026-06-23T11:12:51.535Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "64",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.535Z",
              "endedAt": "2026-06-23T11:12:51.546Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.546Z",
              "endedAt": "2026-06-23T11:12:51.554Z",
              "durationMs": 8,
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&issuer_type=NBFC' \\\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": "BAJ_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:12:51.554Z",
              "endedAt": "2026-06-23T11:12:51.559Z",
              "durationMs": 5,
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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?issuer_code=BAJ&issuer_type=NBFC' \\\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": "BAJ_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:12:51.559Z",
              "endedAt": "2026-06-23T11:12:51.566Z",
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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=BAJ&issuer_type=NBFC' \\\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": "BAJ_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:12:51.566Z",
              "endedAt": "2026-06-23T11:12:51.587Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.587Z",
              "endedAt": "2026-06-23T11:12:51.647Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:51 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": "57",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Required response headers should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:51.647Z",
              "endedAt": "2026-06-23T11:12:51.660Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "9",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.660Z",
              "endedAt": "2026-06-23T11:12:51.689Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:51 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": "26",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:51.689Z",
              "endedAt": "2026-06-23T11:12:51.754Z",
              "durationMs": 65,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "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:12:51 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": "61",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:12:51.754Z",
              "endedAt": "2026-06-23T11:12:51.831Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:12:51.831Z",
              "endedAt": "2026-06-23T11:12:51.843Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:12:51 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": "9",
                "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=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_PI_990",
              "caseName": "Restore complete personal-details profile (pre-CKYC jump prerequisites)",
              "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:12:51.843Z",
              "endedAt": "2026-06-23T11:12:51.951Z",
              "durationMs": 108,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "occupation": "Public Sector",
                "education": "Graduate",
                "marital_status": "Unmarried",
                "source_of_income": "Salary",
                "annual_income": "Upto 5L Per Annum",
                "mother_name": "QA MOTHER",
                "father_name": "QA FATHER"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1974",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:51 GMT",
                "etag": "W/\"7b6-4tAbYsQ4yFRDm2B6xMj8rTBTVfw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "2026-06-23T11:12:30.000Z",
                  "updatedAt": "2026-06-23T11:12:51.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": "DILIP@FIXERRA.INN",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
                  "code": "91",
                  "dob": "249a22814bf213a7ff2e68cfa58da9d3:ecfe610f12b665afad3545ca90ac0be2",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:12:30.545Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "Public Sector",
                  "annual_income": "Upto 5L Per Annum",
                  "user_tax_status": "",
                  "father_name": "QA FATHER",
                  "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": "father",
                  "kin_first_name": "QA",
                  "kin_middle_name": "",
                  "kin_last_name": "FATHER",
                  "marital_status": "Unmarried",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:12:46.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": "2026-06-23T11:12:49.000Z",
                  "profile_updated_at": "2026-06-23T11:12:51.925Z",
                  "mother_name": "QA MOTHER",
                  "education": "Graduate",
                  "source_of_income": "Salary",
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:42:30.000Z",
                  "is_pan_consent_checked": false,
                  "pan_consent_checked_date": "2026-06-23T16:42:45.000Z",
                  "partner_url": "https://tradingquants.dev.fixerra.in"
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"occupation\":\"Public Sector\",\"education\":\"Graduate\",\"marital_status\":\"Unmarried\",\"source_of_income\":\"Salary\",\"annual_income\":\"Upto 5L Per Annum\",\"mother_name\":\"QA MOTHER\",\"father_name\":\"QA FATHER\"}'",
              "validations": [
                {
                  "description": "Profile fields should persist (201 with updated user)",
                  "passed": true,
                  "message": "Profile persisted (HTTP 200, marital_status=Unmarried)"
                }
              ],
              "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:12:51.952Z",
              "endedAt": "2026-06-23T11:12:52.098Z",
              "durationMs": 146,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "email": "qa.user@fixerra.in"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "178",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:52 GMT",
                "etag": "W/\"b2-c78tRC9mj99iFzPh9u5zQXjCZNY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213171984,
                  "endTime": 1782213172056,
                  "durationMs": 72,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.098Z",
              "endedAt": "2026-06-23T11:12:52.110Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "9",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.111Z",
              "endedAt": "2026-06-23T11:12:52.122Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "224",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:52 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.122Z",
              "endedAt": "2026-06-23T11:12:52.138Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "13",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.138Z",
              "endedAt": "2026-06-23T11:12:52.156Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.156Z",
              "endedAt": "2026-06-23T11:12:52.238Z",
              "durationMs": 82,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "78",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.238Z",
              "endedAt": "2026-06-23T11:12:52.249Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.249Z",
              "endedAt": "2026-06-23T11:12:52.261Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.261Z",
              "endedAt": "2026-06-23T11:12:52.341Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "77",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.341Z",
              "endedAt": "2026-06-23T11:12:52.351Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.351Z",
              "endedAt": "2026-06-23T11:12:52.361Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.361Z",
              "endedAt": "2026-06-23T11:12:52.431Z",
              "durationMs": 70,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "67",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.432Z",
              "endedAt": "2026-06-23T11:12:52.441Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.441Z",
              "endedAt": "2026-06-23T11:12:52.451Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.451Z",
              "endedAt": "2026-06-23T11:12:52.463Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "9",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.463Z",
              "endedAt": "2026-06-23T11:12:52.475Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.475Z",
              "endedAt": "2026-06-23T11:12:52.536Z",
              "durationMs": 61,
              "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:12:52 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": "57",
                "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:12:52.536Z",
              "endedAt": "2026-06-23T11:12:52.541Z",
              "durationMs": 5,
              "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:12:52 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 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:12:52.541Z",
              "endedAt": "2026-06-23T11:12:52.545Z",
              "durationMs": 4,
              "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:12:52 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:12:52.545Z",
              "endedAt": "2026-06-23T11:12:52.600Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "23",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.600Z",
              "endedAt": "2026-06-23T11:12:52.657Z",
              "durationMs": 57,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "53",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.657Z",
              "endedAt": "2026-06-23T11:12:52.840Z",
              "durationMs": 183,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "180",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.840Z",
              "endedAt": "2026-06-23T11:12:52.943Z",
              "durationMs": 103,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "99",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.943Z",
              "endedAt": "2026-06-23T11:12:52.970Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "22",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:52.970Z",
              "endedAt": "2026-06-23T11:12:53.027Z",
              "durationMs": 57,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:52 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": "54",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:53.027Z",
              "endedAt": "2026-06-23T11:12:53.048Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:53 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": "17",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:53.048Z",
              "endedAt": "2026-06-23T11:12:53.142Z",
              "durationMs": 94,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:53 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": "90",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:53.142Z",
              "endedAt": "2026-06-23T11:12:53.173Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:53 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": "28",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:53.174Z",
              "endedAt": "2026-06-23T11:12:53.253Z",
              "durationMs": 79,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:53 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": "76",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:53.253Z",
              "endedAt": "2026-06-23T11:12:53.272Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:53 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 POST 'https://users-api.dev.fixerra.in/signzy/email/verify' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:53.272Z",
              "endedAt": "2026-06-23T11:12:53.341Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:53 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": "66",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:53.341Z",
              "endedAt": "2026-06-23T11:12:53.346Z",
              "durationMs": 5,
              "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:12:53 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  -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:12:53.346Z",
              "endedAt": "2026-06-23T11:12:53.351Z",
              "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:12:53 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:12:53.351Z",
              "endedAt": "2026-06-23T11:12:53.363Z",
              "durationMs": 12,
              "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:12:53 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": "8",
                "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:12:53.363Z",
              "endedAt": "2026-06-23T11:12:53.393Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:12:53 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": "27",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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:12:53.393Z",
              "endedAt": "2026-06-23T11:12:53.472Z",
              "durationMs": 79,
              "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:12:53 GMT",
                "etag": "W/\"1dec-O/moPcKmujG07pCoEWaRMH2VNx0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:53.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:12:53.427Z",
                  "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:12:53.472Z",
              "endedAt": "2026-06-23T11:12:53.486Z",
              "durationMs": 14,
              "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:12:53 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": "11",
                "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:12:53.486Z",
              "endedAt": "2026-06-23T11:12:53.570Z",
              "durationMs": 84,
              "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:12:53 GMT",
                "etag": "W/\"1dec-JAKc4MNKVmZ6BDs2uOaTHJOG3TU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:53.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:12:53.493Z",
                  "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:12:53.570Z",
              "endedAt": "2026-06-23T11:12:53.677Z",
              "durationMs": 107,
              "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:12:53 GMT",
                "etag": "W/\"1dec-pmnId7L3OcO7E4KtbboeA2wduac\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:53.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:12:53.578Z",
                  "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:12:53.678Z",
              "endedAt": "2026-06-23T11:12:53.747Z",
              "durationMs": 69,
              "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:12:53 GMT",
                "etag": "W/\"1dec-eNN+1DnG55HTAK4Hr2Sw4QKpm4A\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "66",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:53.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:12:53.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=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:12:53.747Z",
              "endedAt": "2026-06-23T11:12:53.821Z",
              "durationMs": 74,
              "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:12:53 GMT",
                "etag": "W/\"1dec-4LwNyCvcatS0zYjI0fQ283fxfuc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:53.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:12:53.754Z",
                  "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:12:53.821Z",
              "endedAt": "2026-06-23T11:12:53.829Z",
              "durationMs": 8,
              "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:12:53 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": "5",
                "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:12:53.829Z",
              "endedAt": "2026-06-23T11:12:53.838Z",
              "durationMs": 9,
              "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:12:53 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": "5",
                "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:12:53.838Z",
              "endedAt": "2026-06-23T11:12:53.913Z",
              "durationMs": 75,
              "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:12:53 GMT",
                "etag": "W/\"1df6-WIw5A1PQePXRnVcBcC45ePY+YG4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:53.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:12:53.845Z",
                  "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:12:53.913Z",
              "endedAt": "2026-06-23T11:12:53.986Z",
              "durationMs": 73,
              "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:12:53 GMT",
                "etag": "W/\"1de2-cfYkxBNiEvwE0a0Bz9ysqkuAZVk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:53.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:12:53.933Z",
                  "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:12:53.986Z",
              "endedAt": "2026-06-23T11:12:54.077Z",
              "durationMs": 91,
              "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:12:54 GMT",
                "etag": "W/\"1de2-yq6x3IvNAhEnf7rYNETqjic2ahI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:54.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:12:54.032Z",
                  "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:12:54.077Z",
              "endedAt": "2026-06-23T11:12:54.402Z",
              "durationMs": 325,
              "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:12:54 GMT",
                "etag": "W/\"1de2-cSRf3S4RgWRxWBsYvL5IwIDypIU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "310",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:54.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:12:54.097Z",
                  "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:12:54.402Z",
              "endedAt": "2026-06-23T11:12:54.449Z",
              "durationMs": 47,
              "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:12:54 GMT",
                "etag": "W/\"1de2-gatEilz6CWHlI9/XvLmBnnqDT6s\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:54.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:12:54.410Z",
                  "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:12:54.449Z",
              "endedAt": "2026-06-23T11:12:54.506Z",
              "durationMs": 57,
              "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:12:54 GMT",
                "etag": "W/\"1de2-DOdeSPf6Zrh3DTiJuGflaj0Su64\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:54.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:12:54.456Z",
                  "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:12:54.506Z",
              "endedAt": "2026-06-23T11:12:54.565Z",
              "durationMs": 59,
              "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:12:54 GMT",
                "etag": "W/\"1de2-2C2ZlJIqL6x0brEzL/MdeJB/7ns\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:54.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:12:54.513Z",
                  "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:12:54.565Z",
              "endedAt": "2026-06-23T11:12:54.627Z",
              "durationMs": 62,
              "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:12:54 GMT",
                "etag": "W/\"1de2-q0ncZQW6jFpimN2KASsLQLHuz1s\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:54.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:12:54.573Z",
                  "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:12:54.627Z",
              "endedAt": "2026-06-23T11:12:54.677Z",
              "durationMs": 50,
              "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:12:54 GMT",
                "etag": "W/\"1de2-TyRFF4lV8P6r0c/KhCuoUmwKheE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:54.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:12:54.634Z",
                  "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:12:54.677Z",
              "endedAt": "2026-06-23T11:12:54.746Z",
              "durationMs": 69,
              "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:12:54 GMT",
                "etag": "W/\"1de2-YglQsSGebM8WZRBLq6udCf2ZN28\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:54.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": 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:12:54.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 '{\"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:12:54.746Z",
              "endedAt": "2026-06-23T11:12:54.801Z",
              "durationMs": 55,
              "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:12:54 GMT",
                "etag": "W/\"1de2-mnn6Gw7uqgyrmt4yTedmjvNRbmI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:54.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:12:54.761Z",
                  "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:12:54.801Z",
              "endedAt": "2026-06-23T11:12:54.873Z",
              "durationMs": 72,
              "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:12:54 GMT",
                "etag": "W/\"1de2-LyvkotQXg8NPSJPr0N/4yLT+wZ8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:54.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:12:54.830Z",
                  "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:12:54.873Z",
              "endedAt": "2026-06-23T11:12:54.888Z",
              "durationMs": 15,
              "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:12:54 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": "11",
                "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:12:54.888Z",
              "endedAt": "2026-06-23T11:12:54.904Z",
              "durationMs": 16,
              "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:12:54 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": "13",
                "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:12:54.904Z",
              "endedAt": "2026-06-23T11:12:54.966Z",
              "durationMs": 62,
              "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:12:54 GMT",
                "etag": "W/\"1de2-xCAqb5XBi2RmEhCHNJjAjdvJ310\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:54.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:12:54.910Z",
                  "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:12:54.966Z",
              "endedAt": "2026-06-23T11:12:55.046Z",
              "durationMs": 80,
              "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:12:55 GMT",
                "etag": "W/\"1de2-kDOMYr/gaFUaMU4q6nNPdVCcQ8k\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:54.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:12:54.973Z",
                  "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:12:55.046Z",
              "endedAt": "2026-06-23T11:12:55.054Z",
              "durationMs": 8,
              "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:12:55 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:12:55.055Z",
              "endedAt": "2026-06-23T11:12:55.152Z",
              "durationMs": 97,
              "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:12:55 GMT",
                "etag": "W/\"1de2-yNXZa/ukq9fZkKT3UVGvgYSkcLo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:55.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:12:55.061Z",
                  "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:12:55.152Z",
              "endedAt": "2026-06-23T11:12:55.161Z",
              "durationMs": 9,
              "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:12: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": "5",
                "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:12:55.161Z",
              "endedAt": "2026-06-23T11:12:55.168Z",
              "durationMs": 7,
              "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:12:55 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": "4",
                "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:12:55.168Z",
              "endedAt": "2026-06-23T11:12:55.176Z",
              "durationMs": 8,
              "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:12:55 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": "4",
                "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:12:55.176Z",
              "endedAt": "2026-06-23T11:12:55.183Z",
              "durationMs": 7,
              "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:12:55 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": "3",
                "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:12:55.183Z",
              "endedAt": "2026-06-23T11:12:55.189Z",
              "durationMs": 6,
              "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:12:55 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": "3",
                "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:12:55.189Z",
              "endedAt": "2026-06-23T11:12:55.227Z",
              "durationMs": 38,
              "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:12:55 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": "35",
                "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:12:55.227Z",
              "endedAt": "2026-06-23T11:12:55.237Z",
              "durationMs": 10,
              "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:12:55 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": "5",
                "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:12:55.237Z",
              "endedAt": "2026-06-23T11:12:55.244Z",
              "durationMs": 7,
              "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:12:55 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": "3",
                "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:12:55.244Z",
              "endedAt": "2026-06-23T11:12:55.252Z",
              "durationMs": 8,
              "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:12:55 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:12:55.252Z",
              "endedAt": "2026-06-23T11:12:55.337Z",
              "durationMs": 85,
              "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:12:55 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": "82",
                "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:12:55.337Z",
              "endedAt": "2026-06-23T11:12:55.430Z",
              "durationMs": 93,
              "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:12:55 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": "90",
                "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:12:55.430Z",
              "endedAt": "2026-06-23T11:12:55.546Z",
              "durationMs": 116,
              "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:12:55 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": "112",
                "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:12:55.546Z",
              "endedAt": "2026-06-23T11:12:55.828Z",
              "durationMs": 282,
              "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:12:55 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": "278",
                "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:12:55.828Z",
              "endedAt": "2026-06-23T11:12:55.845Z",
              "durationMs": 17,
              "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:12:55 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": "13",
                "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:12:55.845Z",
              "endedAt": "2026-06-23T11:12:55.859Z",
              "durationMs": 14,
              "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:12:55 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": "11",
                "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:12:55.859Z",
              "endedAt": "2026-06-23T11:12:55.928Z",
              "durationMs": 69,
              "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:12:55 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": "65",
                "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:12:55.928Z",
              "endedAt": "2026-06-23T11:12:55.977Z",
              "durationMs": 49,
              "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:12:55 GMT",
                "etag": "W/\"1de2-6yNmK0ST2lH0L85dnGA4mbeM6yg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:12:55.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:12:55.935Z",
                  "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:12:55.977Z",
              "endedAt": "2026-06-23T11:12:55.985Z",
              "durationMs": 8,
              "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:12:55 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\":\"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:12:55.985Z",
              "endedAt": "2026-06-23T11:12:56.044Z",
              "durationMs": 59,
              "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:12:56 GMT",
                "etag": "W/\"1df6-egi2mrX8XPBgxEutvatuQqlrDV8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:56.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:12:55.991Z",
                  "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:12:56.045Z",
              "endedAt": "2026-06-23T11:12:56.119Z",
              "durationMs": 74,
              "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:12:56 GMT",
                "etag": "W/\"1df4-1bWZ5Be1+a8tJ6ZBg43ZJjsOIaM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:56.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:12:56.052Z",
                  "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:12:56.119Z",
              "endedAt": "2026-06-23T11:12:56.251Z",
              "durationMs": 132,
              "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:12:56 GMT",
                "etag": "W/\"1dec-lrsiueXGVHmPgRX0i29UghNi56g\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "128",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:12:56.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:12:56.126Z",
                  "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:12:56.251Z",
              "endedAt": "2026-06-23T11:12:56.260Z",
              "durationMs": 9,
              "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:12:56 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": "6",
                "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:12:56.260Z",
              "endedAt": "2026-06-23T11:12:56.322Z",
              "durationMs": 62,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1676",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:56 GMT",
                "etag": "W/\"68c-PEmpJjGQ8owZOTODm6kj1t6sEhI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "35",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:12:30.000Z",
                  "isActive": true,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": "qa.user@fixerra.in",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": "1992-04-30",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:12:30.545Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "Public Sector",
                  "annual_income": "Upto 5L Per Annum",
                  "user_tax_status": "",
                  "father_name": "QA FATHER",
                  "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": "father",
                  "kin_first_name": "QA",
                  "kin_middle_name": "",
                  "kin_last_name": "FATHER",
                  "marital_status": "Unmarried",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:12:46.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": "2026-06-23T11:12:53.000Z",
                  "profile_updated_at": "2026-06-23T11:12:52.000Z",
                  "mother_name": "QA MOTHER",
                  "education": "Graduate",
                  "source_of_income": "Salary",
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:42:30.000Z",
                  "decrypted_pan": "BLXPR3438L",
                  "is_personal_details": {
                    "BAJ": true,
                    "MAH": true,
                    "SHRI": true
                  }
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:12:56.322Z",
              "endedAt": "2026-06-23T11:12:56.360Z",
              "durationMs": 38,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1676",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:56 GMT",
                "etag": "W/\"68c-PEmpJjGQ8owZOTODm6kj1t6sEhI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "35",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:12:30.000Z",
                  "isActive": true,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": "qa.user@fixerra.in",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": "1992-04-30",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:12:30.545Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "Public Sector",
                  "annual_income": "Upto 5L Per Annum",
                  "user_tax_status": "",
                  "father_name": "QA FATHER",
                  "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": "father",
                  "kin_first_name": "QA",
                  "kin_middle_name": "",
                  "kin_last_name": "FATHER",
                  "marital_status": "Unmarried",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:12:46.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": "2026-06-23T11:12:53.000Z",
                  "profile_updated_at": "2026-06-23T11:12:52.000Z",
                  "mother_name": "QA MOTHER",
                  "education": "Graduate",
                  "source_of_income": "Salary",
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:42:30.000Z",
                  "decrypted_pan": "BLXPR3438L",
                  "is_personal_details": {
                    "BAJ": true,
                    "MAH": true,
                    "SHRI": true
                  }
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:12:56.360Z",
              "endedAt": "2026-06-23T11:12:56.439Z",
              "durationMs": 78,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "issuer_code": "SSFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1676",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:56 GMT",
                "etag": "W/\"68c-PEmpJjGQ8owZOTODm6kj1t6sEhI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:12:30.000Z",
                  "isActive": true,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": "qa.user@fixerra.in",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": "1992-04-30",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:12:30.545Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "Public Sector",
                  "annual_income": "Upto 5L Per Annum",
                  "user_tax_status": "",
                  "father_name": "QA FATHER",
                  "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": "father",
                  "kin_first_name": "QA",
                  "kin_middle_name": "",
                  "kin_last_name": "FATHER",
                  "marital_status": "Unmarried",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:12:46.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": "2026-06-23T11:12:53.000Z",
                  "profile_updated_at": "2026-06-23T11:12:52.000Z",
                  "mother_name": "QA MOTHER",
                  "education": "Graduate",
                  "source_of_income": "Salary",
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:42:30.000Z",
                  "decrypted_pan": "BLXPR3438L",
                  "is_personal_details": {
                    "BAJ": true,
                    "MAH": true,
                    "SHRI": true
                  }
                }
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:12:56.439Z",
              "endedAt": "2026-06-23T11:12:56.446Z",
              "durationMs": 7,
              "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:12:56 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' \\\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": []
            }
          ],
          "summary": {
            "total": 224,
            "passed": 224,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 10772
          }
        },
        {
          "stepId": "step-06-ckyc-branch",
          "stepName": "CKYC Branch",
          "cases": [
            {
              "caseId": "BAJ_CKYC_001",
              "caseName": "Verify CKYC URL generation with valid token",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:56.446Z",
              "endedAt": "2026-06-23T11:12:57.823Z",
              "durationMs": 1377,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:57 GMT",
                "etag": "W/\"149-0/rzwP4H3tFWjRovQQ/b64KMLXs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1374",
                "server": "envoy",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/uU3oTqbT0cBpuidsozyNq1frZ5nItJJxj2MjDGdIr70WQg~IVzkTEjs1NjrDaxTbwX7k7BTpyRPipi9_uIIlWJ6yyxozrpiMngLQvU4YLIyZ47dkLvjHgNH1AaIeEzkTDpHY9xeBP68jvjtZh6U83SvDIfFxyhueKMMXRQIB_cMtziq~VxskR4ti__BdK3ot?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 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 be present",
                  "passed": true,
                  "message": "payload object present"
                },
                {
                  "description": "payload.url should be present and not null",
                  "passed": true,
                  "message": "payload.url present"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_002",
              "caseName": "Verify success flag",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:57.823Z",
              "endedAt": "2026-06-23T11:12:58.229Z",
              "durationMs": 406,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:58 GMT",
                "etag": "W/\"149-aPQvugEtwSzyeaQtyqb0MFK8jjA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "394",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/6Le4nUl4dYq2I7MEUfdssvqn5MqWgA~eUvuIoYqotJk3KW6M6KhJ8v3Xd8Auz5gtdQDy~odGBYl56Bv~NyTVLjYFFQGzv0_94kKv4_aPaW4VtlB8yDxQWU5majRFi8XUh3eb6XWfCEuAhH6GkKuxmwmAG~agqApa_uq9hz6PGVOUT8Ao3vPQ52OhWHZwH~tS?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "success=1"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_003",
              "caseName": "Verify statusCode field",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:58.230Z",
              "endedAt": "2026-06-23T11:12:58.570Z",
              "durationMs": 340,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:58 GMT",
                "etag": "W/\"149-HhxRXaHjhAyPyzDeE6SXnIyCtb0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "337",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/HKAXyYesmwTMb~QHIecPa9nB3UsRA3~aD0g00QOaCHfJT50qDc6YxSZbqu3rehYZ2jeIL0bIYs7xxUjBifcua7cZfi8rZ7O7SUCaE~XFvIJp2J3To7LrSk7Qi5BSqBh1QsVv4p~GXi8mk3Xm5Q73olA9cE9yGzZkUhhM2ZoBo_lRnkU4gV7wfeZBdMrNSfa1?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Body statusCode should be 200",
                  "passed": true,
                  "message": "statusCode=200"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_004",
              "caseName": "Verify success message",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:58.570Z",
              "endedAt": "2026-06-23T11:12:58.948Z",
              "durationMs": 378,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:58 GMT",
                "etag": "W/\"149-oObQosZaeEudzEIVQ7+wA+EOtSs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "375",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/0vM7FhscKfpMFkKBdlp0iZrRdzXRTzpcXf230WPoNKJ9EnXeZz3gZEKhVtu89U5m~9jOVWgNmT4Sqv4Pcs8WBWIvUA7xmAZEGzyRFjZ35drKjwsucgIas0lNHHszcFcKsr0SCNvEB~M83enVY5VLyViq7QScbkWbnMazm3zYqDyys13~icTYarR8E4GpDsQn?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response message should be \"SUCCESS\"",
                  "passed": true,
                  "message": "message=\"SUCCESS\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_005",
              "caseName": "Verify payload object present",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:58.948Z",
              "endedAt": "2026-06-23T11:12:59.276Z",
              "durationMs": 328,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:59 GMT",
                "etag": "W/\"149-U7aq0HYwOzjju0i/AKozsmMo59I\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "325",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/cLtviJsQhSHmuOGObKf0_IpuO_zc785wSoIl73ZQYGbCIsMq1OsESQJx3TrioiP6TcFzICPk77Y0zhw8ZM2AGa56M~a1QXm3IsnCzIuL0GyDvJKqI53JD4uLMcxVWGFtAgeKM45km~AwSQFZsmPTC2ByapyplbgfIDDczncPatysFjHSXCu~a4OkNau8eoId?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "payload object present"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_006",
              "caseName": "Verify URL field present",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:59.276Z",
              "endedAt": "2026-06-23T11:12:59.609Z",
              "durationMs": 333,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:59 GMT",
                "etag": "W/\"149-684v7RHGCftmDRasFBN0V22MF5k\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "330",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/tPLmmmrpr9wh7weQg54XhFv_Pu~cm3D3xC9QQzN_MZ_dgUvaZ9h5D4LFDmsXTEbmID_DKLGOrQMAOYnPU5ZWzrMulRW3C8HDeolKBwTZxU9gOpcr98oy_AvunF9hg6fwGSeaiq6sUIO2oliOJgkaOXzFRxgHjGmy5CvtTTBKkyz2NJkGR5SKYC1_vaW6fwnp?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "payload.url should be present and not null",
                  "passed": true,
                  "message": "payload.url present"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_007",
              "caseName": "Verify URL is not null",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:59.609Z",
              "endedAt": "2026-06-23T11:12:59.934Z",
              "durationMs": 325,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:12:59 GMT",
                "etag": "W/\"149-mntem1YJYx5g0eA1Z543rNLROfQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "322",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/FZEVFqb6WWZo2RpdQwG67vhRLeqmKzcero_sDWR2V62ba_CboY5a7ygPx5jyN2bJr~2hR4uGLctR74VDL3_Pdq1Ccr8iZK5eH8V_cWYZJtkZn9zT9PEqtd4iOPY~evTwHWkcMHE3Z_~_XUzjjzjZQZw5ivWw3ti6YuyDOJ0kbsELZ8s3GrAsnXMERGyrw2qL?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "payload.url should be present and not null",
                  "passed": true,
                  "message": "payload.url present"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_008",
              "caseName": "Verify URL is not empty",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:12:59.934Z",
              "endedAt": "2026-06-23T11:13:00.307Z",
              "durationMs": 373,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:00 GMT",
                "etag": "W/\"149-Hh9n2LE3xaTNRN89pFZmOZVUF/M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "370",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/r4NST2ni0mM_1ET7DBZH9fft2cLwzhE0Wcn5AF_27TegniUng8Qj0xieSPakoaJnaiWPwi6cUo8GDpsSwV9F2gHIBnqXKoU0Yh7OMTPRe7Kv1wwp~7PduLARPav_DvhGuT3aEkAdczilLvVn~bAla9NKh2IefRyX9yGFOeCAw~oB_~ROs0FnEJkFC8Xyg3iC?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "payload.url should not be empty",
                  "passed": true,
                  "message": "url length=258"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_009",
              "caseName": "Verify URL starts with HTTPS",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:00.307Z",
              "endedAt": "2026-06-23T11:13:00.676Z",
              "durationMs": 369,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:00 GMT",
                "etag": "W/\"149-vwUbE+njHr2EnwmaI6028Ju/t3U\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "366",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/IvWZ3uCxfesf9oPq6dYh~tsWYrLCKWS5HJHopuyOTw3lFz4rnG__QMopjmu4cNb_t2qb3iytuT02WMb7spj0vLqn5CU_xrDP_lJYGBjvBk3TvU4BcZhXJjXVNlH9AQTEXjdCQm6QKpCqyf4VnK9RGFcCPTcR9Dsmb4F~p1PLekZdHwbNwqYEU6R6EKo5Hiwl?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "payload.url should start with https://",
                  "passed": true,
                  "message": "URL starts with https://"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_010",
              "caseName": "Verify generated URL contains mode parameter",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:00.677Z",
              "endedAt": "2026-06-23T11:13:01.016Z",
              "durationMs": 339,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:01 GMT",
                "etag": "W/\"149-7KlkQPiPczBX1bBF7A1mwK2aNoQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "337",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/3QjMqeRnj_gVoVBlwhAADAHMRqpM6Wnr5NtovnuhP~vCILFWYLiZ06Pf1LUdsCcmt5esLm08YFB5nZ~kfulSXAhGynOf2ujbO7Yz79zqE62zWoAYiIKacrldm0B0CnF9jatZk90CkynFXRqAHrDyQ9JguEbkVU~ktBHTZv1xw7w17ta_gifkKRdUUDvUyTC9?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Generated URL should contain a mode parameter",
                  "passed": true,
                  "message": "mode parameter present in URL"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_011",
              "caseName": "Verify URL format validity",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:01.016Z",
              "endedAt": "2026-06-23T11:13:01.402Z",
              "durationMs": 386,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:01 GMT",
                "etag": "W/\"149-7gmBEUiulZvTdUR395c9aY0nzXg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "383",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/VaDHoMfyacj7QCw4M_Wmba0_FoU0IAQ1dsEWD7J_xi_G26TQelOC3vf7PVuWzP2WvSgCiGZDr4CaA64tDsiRk5QcmHuJ82Kl3g52oK8MLDeYY1lj~h2SOXAu46cEuldyivUECmN6Qyp22XIQvljw71EH35_uuLPDKcoDtJX8Kj0MSl8G2m1N_KqKSdt__fCt?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "payload.url should be a well-formed URL",
                  "passed": true,
                  "message": "URL is well-formed"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_012",
              "caseName": "Verify response content type",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:01.402Z",
              "endedAt": "2026-06-23T11:13:02.131Z",
              "durationMs": 728,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:02 GMT",
                "etag": "W/\"149-WQoTL6wkdMAVNtJ/noq4GuUB4kI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "688",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/98IKwbfILxRPgDYZFwPNg4vUX8OHKgBg7WQa9Je9lpwewBrXecq6ceWH_ebD8y8whYhZjdw0AKPALtgDbCWY431ov4FbJozjs44_Rp9iVr9lkqPnd2hZNIhkuRMdeBN0tS9O0o2hAS0IoBFObDu59AvDrv2scnhvM1zSbEN52vQKfLQFDQNceM5pZW_~1Dvl?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response content type should be application/json",
                  "passed": true,
                  "message": "application/json response"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_013",
              "caseName": "Verify response schema",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:02.131Z",
              "endedAt": "2026-06-23T11:13:02.699Z",
              "durationMs": 568,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:02 GMT",
                "etag": "W/\"149-Axv7tPCObmEx1TY1uGnbV6Qv+Q4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "559",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/ch3YwxNXRm~fWC~_6b1nTtdH0e8AVWK84733uBrfv97s4f1JgTxlFCGV_nRM1XsETFnhZLMopClUAV0Jf_S316QCQUlyP28hxLzXCSlVkY2GzPPY1TenCOA0cvMEmanl_ss1FjgMjivlKGJX7AtXiZOYrKGNlNUWcZ4hod_sc29lYAa4~6NWOXeWGZwtEmQp?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response schema should match contract (success/statusCode/message/payload.url)",
                  "passed": true,
                  "message": "Response schema valid"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_014",
              "caseName": "Verify response time",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:02.699Z",
              "endedAt": "2026-06-23T11:13:03.025Z",
              "durationMs": 326,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:03 GMT",
                "etag": "W/\"149-VnhwgPFkhnVIPVr1GJAGDThcFas\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "323",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/5FCGtvGCTfmb2AcE4p3vMBvFOpYoY_485QuCIshHQlzViZGaA2gdW1LuTOrxW6qQrGYVBuM97LVAgJicl9MgT1gD8vWbk50F88850ASqVeqtatR9q_5gvitj4VESIq6IF9_cTrK57JkUleXXBRnH_hOW1WmRJJMVVWD1bew4NdBLJyAS0QsvTowOLzjs2OEI?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response should complete within 2000ms",
                  "passed": true,
                  "message": "duration=326ms"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_015",
              "caseName": "Verify URL length",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:03.025Z",
              "endedAt": "2026-06-23T11:13:03.361Z",
              "durationMs": 336,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:03 GMT",
                "etag": "W/\"149-DHLWyu0Njx0Qu4h7sRzdbLzg2EU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "333",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/fb5YP6rduKxQuPV6PN3YDJJjDXILr7KmZxFVdcO3dxbcrXjo2wec~IanmAN6F_IWGQvXz9AZcfD1jmgMNObV17HLbr4~tzIo97qh4QHpklf7LE7zUoaiQ8orwzZXX_v8UNExLHv9LhKqTtHVhYXufSfABAca0NLuupvKhOLEWTWpDPWg3s2CKqMsAjFdrHZf?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "payload.url length should be within 2048 characters",
                  "passed": true,
                  "message": "url length=258"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_016",
              "caseName": "Verify repeated API calls generate URL successfully",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:03.361Z",
              "endedAt": "2026-06-23T11:13:03.664Z",
              "durationMs": 303,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:03 GMT",
                "etag": "W/\"149-a167QCIuvWJhizmVF6gBoshDwpo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "300",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/FtYb0vEDWmPm6CCdUL~samUPHN7U1VGvhD0igCGyK1QVQwaPVYpeQrlo3d1w028Yuj7xoTqM2DtWnlDNPWhyH1xLhxv2Wx7b_rxat0_HMiFpGJvqHqLKscKU9PUl0kmQbROP3koCz08zs4sXL4FoIQ8aw22ABfTBi3A4IuiBRCqrlO7c~9iGIGQCOodLnDq~?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 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.url should be present and not null",
                  "passed": true,
                  "message": "payload.url present"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_018",
              "caseName": "Verify URL uniqueness per session",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:03.664Z",
              "endedAt": "2026-06-23T11:13:04.005Z",
              "durationMs": 341,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:04 GMT",
                "etag": "W/\"149-oS/pAEh6Os1sDvi5zSVSwGeCRqk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "338",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/HfD8zRvamoTG~YlytLI~LMjCdj~h6y9u8iRZzu294XB~GxpwO1KqYZhueGnsPG5ABAMC4J~Q~Crqm0CSCXinZi917b8IEYkxb9QK4GMlezLHj1MIgcR4ycT34MFyug_iaI0Grnw7VWnHhCidYFlDJAp5j7WuiyjWLIl2xLG~j9NW7OVsPVR3ydYVRmC7eEM5?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                },
                {
                  "description": "URL behavior across repeated calls should be valid (same or unique session URL)",
                  "passed": true,
                  "message": "Different URL returned across calls (per-call session)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_019",
              "caseName": "Verify Authorization header mandatory",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:04.005Z",
              "endedAt": "2026-06-23T11:13:04.030Z",
              "durationMs": 25,
              "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:13: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": "21",
                "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/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json'",
              "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"x-partner-key is required\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_020",
              "caseName": "Verify invalid JWT token",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:04.030Z",
              "endedAt": "2026-06-23T11:13:04.035Z",
              "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:13: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": "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/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer invalid.jwt.token'",
              "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_021",
              "caseName": "Verify expired JWT token",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:04.035Z",
              "endedAt": "2026-06-23T11:13:04.040Z",
              "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:13: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": "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/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
              "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_022",
              "caseName": "Verify malformed JWT token",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:04.040Z",
              "endedAt": "2026-06-23T11:13:04.044Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer corrupted-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:13: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": "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/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer corrupted-token-!!!'",
              "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_023",
              "caseName": "Verify empty Authorization header",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:04.045Z",
              "endedAt": "2026-06-23T11:13:04.049Z",
              "durationMs": 4,
              "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:13: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": "2",
                "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/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json'",
              "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"x-partner-key is required\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_025",
              "caseName": "Verify Bearer keyword missing",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:04.049Z",
              "endedAt": "2026-06-23T11:13:04.054Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:13: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": "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/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_026",
              "caseName": "Verify invalid Bearer format",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:04.054Z",
              "endedAt": "2026-06-23T11:13:04.131Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Basic dXNlcjpwYXNz"
              },
              "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:13: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": "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/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Basic dXNlcjpwYXNz'",
              "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_027",
              "caseName": "Verify request without Accept header",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:04.131Z",
              "endedAt": "2026-06-23T11:13:04.458Z",
              "durationMs": 327,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:04 GMT",
                "etag": "W/\"149-DeOdHNZGjFxaDVAMIBvKBeor4Bc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "325",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/sejGixYAwQVe~LVqMiCiUk4vUVg8vo8v6DQRkt9RvUj3MAIKrcUKmOUxd~kboNab9Ec5gRbriyrKv2pYQx7IHf27ymLo6n8e9kryJQWTI1GCl7YbtRMKuAN_08TNP6VbFi0l4jImeFxNjwClgKbR7oBjCI29Itl8Ry1SHyVw2HUqo~_RI35CeWYBYjpE1bQc?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Request without Accept header (acceptable per current API design)",
                  "passed": true,
                  "message": "Status 200 acceptable for Request without Accept header"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_028",
              "caseName": "Verify invalid Accept header",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:04.459Z",
              "endedAt": "2026-06-23T11:13:04.769Z",
              "durationMs": 310,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Accept": "application/x-invalid",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:04 GMT",
                "etag": "W/\"149-R0giDzbSZd1T6DTT0ztgVGULmYY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "307",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/gZ_K4i_RgD3yGmpqNFbalqnxsQcfivcOj9a0cN91047Et6cQHveHDwmGsij7z0Nq_nS3GrYtQZ4ZOSFE3ZaT4mrEVNm8~hk8GuU_5ALWc7~7NqpFWl3rAu~AUYzxOAzOh1jJDQhkUOD73h7tpJB8JKF1dYVMZhzUzN013QuyzKliSPjwG6BUldjN_42Xk9KG?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Accept: application/x-invalid' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Invalid Accept header (acceptable per current API design)",
                  "passed": true,
                  "message": "Status 200 acceptable for Invalid Accept header"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_029",
              "caseName": "Verify request from unsupported origin",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:04.769Z",
              "endedAt": "2026-06-23T11:13:04.774Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Origin": "https://malicious.example.com",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "content-length": "100",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:04 GMT",
                "etag": "W/\"64-unexnbgEYt5zAgSjb5Ia1Ano0Ug\"",
                "x-powered-by": "Express",
                "x-envoy-upstream-service-time": "3",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Not allowed by CORS",
                "payload": {},
                "error": "error occurred"
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Origin: https://malicious.example.com' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Unsupported Origin header (acceptable per current API design)",
                  "passed": true,
                  "message": "Status 400 acceptable for Unsupported Origin header"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_030",
              "caseName": "Verify invalid Referer header",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:04.774Z",
              "endedAt": "2026-06-23T11:13:05.100Z",
              "durationMs": 326,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Referer": "not-a-valid-referer",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:05 GMT",
                "etag": "W/\"149-y6n4jth6MnmmRhUzi71/4dgH9HE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "323",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/pC3Y29CugNzB77yWX3dYhHHiVwlFk8uYFaO9zdK0RLJazbVN6papDp~YBf5H8lrmHbT9VeGhy7ZT07oGne2u0zylBDsd6f~ImNPPWG0mlWF~LTNYmyDUcTSuR6A6D~d_J32M9oXUK4JClAgHfgmpq1h2UXXATiD82WspzwcV~UaUno~IcB5_8aqlo1ROyTyD?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Referer: not-a-valid-referer' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Invalid Referer header (acceptable per current API design)",
                  "passed": true,
                  "message": "Status 200 acceptable for Invalid Referer header"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_031",
              "caseName": "Verify HTTP method POST instead of GET",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 405,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:13:05.100Z",
              "endedAt": "2026-06-23T11:13:05.106Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "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:13:05 GMT",
                "etag": "W/\"be-SIVEc9jh1CA/c8JqxmMUFmrJ8vA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot POST /v1/issuer-bajaj/ckyc-url",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot POST /v1/issuer-bajaj/ckyc-url",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_032",
              "caseName": "Verify HTTP method PUT",
              "service": "user-services",
              "method": "PUT",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 405,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:13:05.106Z",
              "endedAt": "2026-06-23T11:13:05.128Z",
              "durationMs": 22,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "188",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:05 GMT",
                "etag": "W/\"bc-ciSHun02okYgyjlHCjUbfaBNmFY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 0,
                "statusCode": 404,
                "message": "Cannot PUT /v1/issuer-bajaj/ckyc-url",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot PUT /v1/issuer-bajaj/ckyc-url",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_033",
              "caseName": "Verify HTTP method DELETE",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 405,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:13:05.129Z",
              "endedAt": "2026-06-23T11:13:05.133Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "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:13:05 GMT",
                "etag": "W/\"c2-AukO1N5EuQ1oEAs8vYKW5zlTMzs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": 404,
                "message": "Cannot DELETE /v1/issuer-bajaj/ckyc-url",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot DELETE /v1/issuer-bajaj/ckyc-url",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_034",
              "caseName": "Verify HTTP method PATCH",
              "service": "user-services",
              "method": "PATCH",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 405,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:13:05.134Z",
              "endedAt": "2026-06-23T11:13:05.139Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "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:13:05 GMT",
                "etag": "W/\"c0-TqxBAC6N+kutnsnyV6sTINCzIw0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot PATCH /v1/issuer-bajaj/ckyc-url",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot PATCH /v1/issuer-bajaj/ckyc-url",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X PATCH 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_035",
              "caseName": "Verify URL field datatype",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:05.139Z",
              "endedAt": "2026-06-23T11:13:05.441Z",
              "durationMs": 302,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:05 GMT",
                "etag": "W/\"149-VJWlrwuBy0YfhVSoySjFXhpS92A\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "300",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/CNnZzuRaNZOdOW_byjXllOnbC1xzQmozynjXtPdH1_QvpdUmIOQ8lK3qA5LFiMn5L5qu5PsjCWgNJPF8~S3OWW1gGZqkqDnH_cFC~VhXx1~WirmLLooc6LLXDF3jd_cER9DA_rVBxeE0OZ9xjLhq9o3yd6XUD~p88bO8lDi7Mwk_bdHXhHQk5X3yk~fTCJZw?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "payload.url should have the expected datatype",
                  "passed": true,
                  "message": "payload.url datatype OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_036",
              "caseName": "Verify payload datatype",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:05.442Z",
              "endedAt": "2026-06-23T11:13:05.758Z",
              "durationMs": 316,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:05 GMT",
                "etag": "W/\"149-Mk2OzWAfe7A33LGjfMQd7wpB43U\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "314",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/lFTuuOVZKuPwO0907gRmuZlbFte62EnpGZJhUpHQFCnsj9NW7qIWzizjq7QoviTfKFgGZYzHbQgv_ZqCIoIbD0CqqhVBd7UePm6FS~VTrFx34DUeermwRvIFiHiZZkjxR2b5NFgfsdZ0oydMNnyVMp_pT_m1tiXKRKqT1nvVHVERAstKmtbKrzXsG1wDlCHr?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "payload should have the expected datatype",
                  "passed": true,
                  "message": "payload datatype OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_037",
              "caseName": "Verify success datatype",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:05.758Z",
              "endedAt": "2026-06-23T11:13:06.117Z",
              "durationMs": 359,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:06 GMT",
                "etag": "W/\"149-qYPKqvXnrFjikjEtaJlCBd1h4RU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "355",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/ltkRbo09Brv6FqHUbMzEtYtd3Ns6ROpbO8m0FX50Ji_xPt3BSImr2guDVbhqSe9H3X6MpwEkvAfo8zL49Smvbi6skHClIeDjtu_hiAO2lsctnY9kp155YD91itK9zvm2QUESyH1VewbVJ439pXaKwl2_~xve_iunHL_sG5fOezkScia3ajm_hMy_2h021Yy3?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "success should have the expected datatype",
                  "passed": true,
                  "message": "success datatype OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_038",
              "caseName": "Verify statusCode datatype",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:06.117Z",
              "endedAt": "2026-06-23T11:13:06.470Z",
              "durationMs": 353,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:06 GMT",
                "etag": "W/\"149-UStn+e3aEBgcrjjAr+pAKTKjblU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "350",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/tVa3wvVLcBb7YaCIja2KabTmZg5NYuG57r6kFt8FI8OUW3zWL6socPlfqcx9y7JMXH90nfG5FhFpWP1q1LgtgQrf9gl~jO2GfciL_6HiR8MyaIyKMq64hHzlv1XXuPTKGmbFMlmC~5wmsFWBiPo_4CE5H7Fh2T6T7yqUJv13FzVQLwJ~4USLznKq0FVXRjld?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "statusCode should have the expected datatype",
                  "passed": true,
                  "message": "statusCode datatype OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_039",
              "caseName": "Verify message datatype",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:06.470Z",
              "endedAt": "2026-06-23T11:13:06.947Z",
              "durationMs": 477,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:06 GMT",
                "etag": "W/\"149-qKfdXw/WRkzyq/g6Zlp4cyh5Zwo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "474",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/HN4J9_hPNLyI7GMWc~8HdITQ8FLMPp0KYP7G7~AdGspDmaAfPAPWjWLHbOvjrRZBRcFDxcFpxWwMP~q63EDGHGNT7_OXW7Ap7V7FlNK5E_aJnvqVX4JjRw~XAZLywr~8iWn~mPFIn4HS3CZhl5WV3NkIIxaRiwQmfX4N0yTEWhWdMuloZHi7OJE1szbR5Rdb?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "message should have the expected datatype",
                  "passed": true,
                  "message": "message datatype OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_040",
              "caseName": "Verify response contains no sensitive user information",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:06.947Z",
              "endedAt": "2026-06-23T11:13:07.414Z",
              "durationMs": 467,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:07 GMT",
                "etag": "W/\"149-UglIf3mvT+SCK0BSKT3Swz+lFTI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "464",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/Hr8VuCDrzq6Qt0zQ1kz9B610NHxSMmlW4oEeM~jqSSj0YEVPqrvEQNbxBo4VjHl3yjAmyJf0dPZgpZee4BkGDi4Yvz6KunhIbTyq_eMVih8GrcHICeeHBa~aAbHfUtGfaPq7EcnbmJysPEUGCWPyUln1jODV~EfyLm_ByaWuldpSiRsBu5U5D7VA_AJIjKBB?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response should not expose PAN or mobile number",
                  "passed": true,
                  "message": "No PAN/mobile leakage in response body"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_041",
              "caseName": "Verify response does not expose JWT token",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:07.414Z",
              "endedAt": "2026-06-23T11:13:07.824Z",
              "durationMs": 410,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:07 GMT",
                "etag": "W/\"149-uXFThLMQaQIuznRAui5rTN/BuBY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "407",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/935ugIg2LygH7fibt4f9YOGpm~QC7Ka53hkiiOd2C6bCc1cnZMvQuwXeN4QFxKR13CUQ9VZHykYiTYz00ImsBHM5uaK19GyOgEmpqnIDppL0L7xHHUVIn7_pWnKz~Mb~T6q0FAVugkDabaqNLDH6UF1nOfqyBVc8qPXZwWeU7qwqoA0GwkQcxWpZr6WgVfMB?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response should not expose the JWT access token",
                  "passed": true,
                  "message": "JWT token not present in response body"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_042",
              "caseName": "Verify URL contains encoded parameters",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:07.824Z",
              "endedAt": "2026-06-23T11:13:08.193Z",
              "durationMs": 369,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:08 GMT",
                "etag": "W/\"149-C3vtDkkaOeIT2+HQRH5VJYIOmdI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "365",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/45T4ia9F8QKmHpmRFkugUjYu7cFNOwW68unpPI5y7jIk5F6uceW1mVBqSYIpD4AzfSRYAw0ECEji2tila_5o3pDlLLFlhjMJtf6VuvgQubJ7RXpAx0Ofhqfaq5_~1Og0zs~wljzcIJGhuw9WYrkNBu679OHIv1RMeC7_hkvr6YRu94BeXak4LlPV_cDiq9I9?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Generated URL should contain query parameters",
                  "passed": true,
                  "message": "URL contains query parameters"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_043",
              "caseName": "Verify URL does not expose personal data in plain text",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:08.193Z",
              "endedAt": "2026-06-23T11:13:08.576Z",
              "durationMs": 383,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:08 GMT",
                "etag": "W/\"149-k5AXu8O3yXZBlVvM6rNRqZxyWZY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "380",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/aFltggQU2hDVmYCs2wx14oQbKAyGP0n3x9N75Y0tUzcOz0AL4P0fRzWCLfH~LzoEpR1D5Wfqq7x922Z5LwQ2hfB0LkU8w6IlONqy1b3Zf3qMOD0OADzNH46ACDhrUwUH1Y5IDZfZ1LBW~U6f0SFCet2HxGISZzPc2dXTkkaiLtnvyNrSEqf5wtANvqjT2j80?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Generated URL should not contain PAN or mobile number in plain text",
                  "passed": true,
                  "message": "No PAN/mobile in plain text in URL"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_044",
              "caseName": "Verify SQL injection through headers",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:08.576Z",
              "endedAt": "2026-06-23T11:13:08.942Z",
              "durationMs": 366,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-QA-Test": "' OR '1'='1' --",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:08 GMT",
                "etag": "W/\"149-Fjf48d/jfVqOpL8hEENhOSGhgHo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "363",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/xHWvIlk16eRc6hXJAp_O2D6i2S77ljEEzraQaL_oS8e4BAuTSvypaZM9y84chouU4jSKXMwKJWtC4d2WlHrmcz3cUHIS8vHUXoQK7WgGLBYMuwIEztgiquqA9KCfz2AwaRPUcyfEiu4xQjmtDyI9QiBQtNhRXCkrURKhR9YQBAVya7fTFREqTr975fNXZaVK?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-QA-Test: '\\'' OR '\\''1'\\''='\\''1'\\'' --' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "SQL injection header should either be rejected or safely ignored",
                  "passed": true,
                  "message": "SQL injection header safely ignored by API"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_045",
              "caseName": "Verify XSS injection through headers",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:08.942Z",
              "endedAt": "2026-06-23T11:13:09.272Z",
              "durationMs": 330,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-QA-Test": "<script>alert(1)</script>",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:09 GMT",
                "etag": "W/\"149-Z+7dY4atZg0nDGbOkmqRjIvTFP8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "327",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/3kWOrKFgrbtC5FX71yC1t0VI7lIPws6KQN8K8BjmKw0nRlPhhsEFMCtUE6XJ9IDHYvzatyyhcQfCWCyqznyLKVjBk9MzxCA~ldUzkVSNlibJebkZwW4~g6RdHG7xByyKaYoBGI6lC9VtqdRb4EYt10dR93~h~3~wZYpg_p5YWmhIRr2q12Utm0iLoj65qjGk?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-QA-Test: <script>alert(1)</script>' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "XSS injection header should either be rejected or safely ignored",
                  "passed": true,
                  "message": "XSS injection header safely ignored by API"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_046",
              "caseName": "Verify HTML injection through headers",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:09.272Z",
              "endedAt": "2026-06-23T11:13:09.622Z",
              "durationMs": 350,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-QA-Test": "<img src=x onerror=alert(1)>",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:09 GMT",
                "etag": "W/\"149-sX2QqKMNzLfyQJgt20+D80DvC9U\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "347",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/tKPuCAiYOhFE0f5FvXDjYKjHO5vhGI0TjkPwgN0TrVhMgF9hRibX9PRa5lxcGxEkqid1vkvNgGrDuXg9L91c1z2hSKsloqHPURwOk2UN6Hjsx62S~MqaCcXrLF4H5XtcFbfSwppqA6Fr_fY7R2BoO0V19lnjXFx~yWHOq7gN~LaoCDa1tajc3WZLtz93AqFh?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-QA-Test: <img src=x onerror=alert(1)>' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "HTML injection header should either be rejected or safely ignored",
                  "passed": true,
                  "message": "HTML injection header safely ignored by API"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_047",
              "caseName": "Verify header tampering attack",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:09.622Z",
              "endedAt": "2026-06-23T11:13:09.970Z",
              "durationMs": 348,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-Forwarded-For": "127.0.0.1, malicious.example.com",
                "X-Forwarded-Host": "malicious.example.com",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:09 GMT",
                "etag": "W/\"149-DWfENJEZVCCWubAx6VJKp1KIX4U\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "345",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/65_FasT6BjD5TYQP39HGxS9ku8APWUPRMvh4h6CVBhzYGKjQedRBjbESfE5149i2IWtog3mVXDBLibMdRsnSLXorfVtGxsMWHTVnyLi2bAaoCx0V8RkVr6oBhtGkzivNJaz6NBsuzdfCF66LgMTPhXwXmKou2jJhVvgGnzW~d0cgMPpJmVe3tQmdpHKFzCVb?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-Forwarded-For: 127.0.0.1, malicious.example.com' \\\n  -H 'X-Forwarded-Host: malicious.example.com' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Header tampering should either be rejected or safely ignored",
                  "passed": true,
                  "message": "Header tampering safely ignored by API"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_048",
              "caseName": "Verify response header validation",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:09.970Z",
              "endedAt": "2026-06-23T11:13:10.309Z",
              "durationMs": 339,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:10 GMT",
                "etag": "W/\"149-ULIL6iKt+J4XOAs6Q0/4VubqU6E\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "336",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/vHXyMP3saxy4xpxngs7tIiXWb450VFad4Eg56_8B74Ga0ZQa60LoOY6CD_a_dq4PynBU99PgHj6XuaLHdKELRucLxKmIMkMnF5iiW2Ap4oR0JW2hzD4nojNndGsT9imDu0pe1_8GscEns~hb6uX4_Uyi3W4OPJJRwbAt3wkK~aZNVoIR3QzxQq6btfg6b9dY?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Required response headers should be present",
                  "passed": true,
                  "message": "Required response headers present"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_051",
              "caseName": "Verify API availability",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:10.309Z",
              "endedAt": "2026-06-23T11:13:10.643Z",
              "durationMs": 334,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:10 GMT",
                "etag": "W/\"149-4Wd5luxFutHwHSha/FS/OzVNjVo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "331",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/EPsfizlk6Es5QpWs3wqXy3rh0P6aHiX8G9xZ2RauJWC0PnoPvMW9d9bgpmJxxtjj0bBCIbpzoJmVrQcyhUYbfCpqXSN_Y_TQQv_LwleYzDYj0_8E19xzMAcKw0igGeEXYGh2TjywrEg9D4N4TfVLVAjjuIoD2t_0O~TFuQZafd8dWhn4KabwH9In5F32fS5P?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": true,
                  "message": "statusCode=200"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_054",
              "caseName": "Verify repeated requests with same token",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:10.643Z",
              "endedAt": "2026-06-23T11:13:10.967Z",
              "durationMs": 324,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "329",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:10 GMT",
                "etag": "W/\"149-rQ90vr9e9KubnKbN2LntTRyzQug\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "321",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://pods-staging.bajajfinserv.in/kpod/uiv4/kyc/index/Oy1d9_aJhyWI1kTWFLDFQ5P4Y5MCprntvMXWrdRpznG0pyml1u6KzXSBJhdIq7pG0OZ3wUyYwmUxK4oYbNzKhtyBlI3tVSpHI4_vQVszWjLlkjTfNc2hpkACvs4JrSDIknq~rCSaS9nr1kxrbwV4PWMJGsbdC2IJSKYOoMPLrvJ20V8zLo6VdQQfuQpsVpHV?mode=URL"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/ckyc-url' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "success=1"
                },
                {
                  "description": "Body statusCode should be 200",
                  "passed": true,
                  "message": "statusCode=200"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_061",
              "caseName": "Save Bajaj address for issuer-side readiness",
              "service": "user-services",
              "method": "PUT",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-bajaj/user/address",
              "status": "passed",
              "scenarioType": "static",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:10.967Z",
              "endedAt": "2026-06-23T11:13:11.071Z",
              "durationMs": 104,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "addressLine1": "QA Address Line 1",
                "addressLine2": "QA Address Line 2",
                "city": "Mumbai",
                "state": "Maharashtra",
                "pincode": "400001",
                "sub_district": "Mumbai",
                "street": "QA Street",
                "country": "India",
                "gender": "M",
                "fd_info": {
                  "amount": 50000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "BAJ"
                }
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "2003",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:11 GMT",
                "etag": "W/\"7d3-uSlM8HnOAgFb5y82EfTvprXcQ5I\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "success": 1,
                    "statusCode": 201,
                    "message": "User Updated",
                    "payload": {
                      "createdAt": "2026-06-23T11:12:30.000Z",
                      "updatedAt": "2026-06-23T11:13:11.000Z",
                      "deleted_at": null,
                      "createdBy": null,
                      "updatedBy": null,
                      "deletedBy": null,
                      "isActive": true,
                      "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                      "profile_photo": null,
                      "profile_photo_file_name": null,
                      "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                      "email": "qa.user@fixerra.in",
                      "password": "",
                      "sub_account": "",
                      "gender": "M",
                      "salutation": "",
                      "first_name": "DILIP",
                      "middle_name": "KALU",
                      "last_name": "RATHOD",
                      "pan_first_name": "DILIP",
                      "pan_middle_name": "KALU",
                      "pan_last_name": "RATHOD",
                      "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
                      "code": "91",
                      "dob": "249a22814bf213a7ff2e68cfa58da9d3:ecfe610f12b665afad3545ca90ac0be2",
                      "care_of": "",
                      "referral_code": "",
                      "masked_aadhaar": "",
                      "user_activation_date": null,
                      "user_registration_date": "2026-06-23T11:12:30.545Z",
                      "user_deactivation_date": "",
                      "custodial_account": "",
                      "occupation": "Public Sector",
                      "annual_income": "Upto 5L Per Annum",
                      "user_tax_status": "",
                      "father_name": "QA FATHER",
                      "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": "father",
                      "kin_first_name": "QA",
                      "kin_middle_name": "",
                      "kin_last_name": "FATHER",
                      "marital_status": "Unmarried",
                      "kapture_id": "",
                      "user_aadhaar_verification_date": null,
                      "user_pan_verification_date": "2026-06-23T11:12:46.000Z",
                      "user_nominee_update_date": null,
                      "user_bank_account_update_date": null,
                      "user_email_verification_date": "2026-06-23T11:12:53.000Z",
                      "profile_updated_at": "2026-06-23T11:13:11.040Z",
                      "mother_name": "QA MOTHER",
                      "education": "Graduate",
                      "source_of_income": "Salary",
                      "is_broker": false,
                      "is_aadhaar_xml_present": false,
                      "created_at_ist": "2026-06-23T16:42:30.000Z",
                      "is_pan_consent_checked": false,
                      "pan_consent_checked_date": "2026-06-23T16:42:45.000Z"
                    }
                  },
                  {
                    "success": true
                  }
                ]
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/v1/issuer-bajaj/user/address' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"addressLine1\":\"QA Address Line 1\",\"addressLine2\":\"QA Address Line 2\",\"city\":\"Mumbai\",\"state\":\"Maharashtra\",\"pincode\":\"400001\",\"sub_district\":\"Mumbai\",\"street\":\"QA Street\",\"country\":\"India\",\"gender\":\"M\",\"fd_info\":{\"amount\":50000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"BAJ\"}}'",
              "validations": [
                {
                  "description": "Response status should be 200 or 201",
                  "passed": true,
                  "message": "Status 200"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_062",
              "caseName": "Save verified bank account for fresh user (Bajaj)",
              "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:13:11.072Z",
              "endedAt": "2026-06-23T11:13:11.139Z",
              "durationMs": 67,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "account": "10076324285",
                "ifsc": "IDFB0040112",
                "account_holder_full_name": "QA Test User",
                "consent_checked": true,
                "fd_info": "{\"issuer\":{\"f_code\":\"BAJ\"}}"
              },
              "requestQuery": {
                "issuer_code": "BAJ",
                "issuer_type": "NBFC"
              },
              "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:13:11 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": "64",
                "server": "envoy"
              },
              "responseBody": {
                "verified": true
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=BAJ&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"account\":\"10076324285\",\"ifsc\":\"IDFB0040112\",\"account_holder_full_name\":\"QA Test User\",\"consent_checked\":true,\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"BAJ\\\"}}\"}'",
              "validations": [
                {
                  "description": "Bank save should succeed (200/201, verified)",
                  "passed": true,
                  "message": "Bank saved (HTTP 201)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_CKYC_063",
              "caseName": "Get bank accounts for Bajaj payout",
              "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:13:11.140Z",
              "endedAt": "2026-06-23T11:13:11.200Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "decrypt": "true",
                "page_name": "review_bank",
                "issuer_code": "BAJ"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "457",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:11 GMT",
                "etag": "W/\"1c9-sclSkpS90gATfW2xH4vFVR+f6dY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_bank_id": "9efbf426-4e1d-4e26-b129-aa2721ef9c61",
                    "account_number": "10076324285",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "bank_logo": "https://images.fixerra.in/bank_logos_payu/idfc-bank-apps-circle.svg",
                    "bank_alias": "IDFC",
                    "code": "IDFCNB",
                    "unsupported": false
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?decrypt=true&page_name=review_bank&issuer_code=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "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:13:11.200Z",
              "endedAt": "2026-06-23T11:13:11.232Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "726",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:11 GMT",
                "etag": "W/\"2d6-/dvX0RjN0RwiG2wsX8XQokER+40\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70481,
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_bank_id": "9efbf426-4e1d-4e26-b129-aa2721ef9c61",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:11.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:13:11.232Z",
              "endedAt": "2026-06-23T11:13:11.331Z",
              "durationMs": 99,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "page": "1",
                "limit": "10"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "726",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:11 GMT",
                "etag": "W/\"2d6-/dvX0RjN0RwiG2wsX8XQokER+40\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 70481,
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_bank_id": "9efbf426-4e1d-4e26-b129-aa2721ef9c61",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:11.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:13:11.331Z",
              "endedAt": "2026-06-23T11:13:11.431Z",
              "durationMs": 100,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "page": "0",
                "limit": "0"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "726",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:11 GMT",
                "etag": "W/\"2d6-/dvX0RjN0RwiG2wsX8XQokER+40\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "14",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70481,
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_bank_id": "9efbf426-4e1d-4e26-b129-aa2721ef9c61",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:11.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:13:11.431Z",
              "endedAt": "2026-06-23T11:13:11.463Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "decrypt": "true"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "790",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:11 GMT",
                "etag": "W/\"316-TC/ctJzY8c2zhKN79AhsldZ5tj0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70481,
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_bank_id": "9efbf426-4e1d-4e26-b129-aa2721ef9c61",
                    "account_number": "10076324285",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:11.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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"
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:13:11.463Z",
              "endedAt": "2026-06-23T11:13:11.494Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "decrypt": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "790",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:11 GMT",
                "etag": "W/\"316-TC/ctJzY8c2zhKN79AhsldZ5tj0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70481,
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_bank_id": "9efbf426-4e1d-4e26-b129-aa2721ef9c61",
                    "account_number": "10076324285",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:11.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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"
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:13:11.494Z",
              "endedAt": "2026-06-23T11:13:11.639Z",
              "durationMs": 145,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "issuer_code": "USFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "463",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:11 GMT",
                "etag": "W/\"1cf-0oF+z9CvzDEnKb+nkRda+gRAygs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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_bank_id": "9efbf426-4e1d-4e26-b129-aa2721ef9c61",
                    "account_number": "10076324285",
                    "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": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "is_default": true,
                    "verified": true,
                    "acc_holder_name": "QA Test User",
                    "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:13:11.640Z",
              "endedAt": "2026-06-23T11:13:11.681Z",
              "durationMs": 41,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:13:11 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": "39",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:13:11.681Z",
              "endedAt": "2026-06-23T11:13:11.805Z",
              "durationMs": 124,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "issuer_code": "USFB",
                "decrypt": "true"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "463",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:11 GMT",
                "etag": "W/\"1cf-0oF+z9CvzDEnKb+nkRda+gRAygs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "121",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "f_user_bank_id": "9efbf426-4e1d-4e26-b129-aa2721ef9c61",
                    "account_number": "10076324285",
                    "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": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "is_default": true,
                    "verified": true,
                    "acc_holder_name": "QA Test User",
                    "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:13:11.805Z",
              "endedAt": "2026-06-23T11:13:11.859Z",
              "durationMs": 54,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:13:11 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": "50",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:13:11.859Z",
              "endedAt": "2026-06-23T11:13:11.873Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "page_name": "review"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "735",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:11 GMT",
                "etag": "W/\"2df-itMTJVkxxHsVL2TvzjHF6syk00E\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 70481,
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_bank_id": "9efbf426-4e1d-4e26-b129-aa2721ef9c61",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:11.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
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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:13:11.873Z",
              "endedAt": "2026-06-23T11:13:11.881Z",
              "durationMs": 8,
              "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:13: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 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:13:11.881Z",
              "endedAt": "2026-06-23T11:13:11.931Z",
              "durationMs": 50,
              "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:13: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 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:13:11.931Z",
              "endedAt": "2026-06-23T11:13:11.936Z",
              "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:13: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 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": 64,
            "passed": 64,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 15479
          }
        },
        {
          "stepId": "step-08-nominee",
          "stepName": "Nominee",
          "cases": [
            {
              "caseId": "BAJ_NOMINEE_001",
              "caseName": "Get existing nominees (BAJ)",
              "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:13:11.936Z",
              "endedAt": "2026-06-23T11:13:12.030Z",
              "durationMs": 94,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:11 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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_NOMINEE_002",
              "caseName": "Create valid adult nominee (BAJ)",
              "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:13:12.031Z",
              "endedAt": "2026-06-23T11:13:12.066Z",
              "durationMs": 35,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"206-OkUghLL5FSgXQPtspClhQagdJL0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": true,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10786,
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "created_at": "2026-06-23T11:13:12.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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/3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:12.066Z",
              "endedAt": "2026-06-23T11:13:12.085Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"27c-vuxshYztw/PxYMp3Em2MjZIb5FY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "User already exists.",
                "payload": {
                  "is_default": true,
                  "id": 10786,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "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:13: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/3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_NOMINEE_004",
              "caseName": "Update nominee relation by id",
              "service": "user-services",
              "method": "PUT",
              "url": "https://users-api.dev.fixerra.in/user-nominee/3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:12.085Z",
              "endedAt": "2026-06-23T11:13:12.149Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "nominee_relation": "Mother",
                "nominee_salutation": "MRS"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"270-6K+4MVHNWevzIJCsb1j1LPgyVW4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "SUCCESS",
                "payload": {
                  "is_default": true,
                  "id": 10786,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "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:13: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/3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.149Z",
              "endedAt": "2026-06-23T11:13:12.236Z",
              "durationMs": 87,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"263-uZ2feiut9uejuuMXcuIszoCKQqQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10787,
                  "f_user_nominee_id": "48ecb476-9e8f-414e-8cfd-ef6d5a9ecc68",
                  "created_at": "2026-06-23T11:13:12.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_NOMINEE_006",
              "caseName": "Delete nominee by id (cleanup minor nominee)",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/user-nominee/48ecb476-9e8f-414e-8cfd-ef6d5a9ecc68",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:12.236Z",
              "endedAt": "2026-06-23T11:13:12.355Z",
              "durationMs": 119,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"2ae-cmtGjOFjFGIbnyjXi4eSvN1co0w\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                  "is_default": false,
                  "id": 10787,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_nominee_id": "48ecb476-9e8f-414e-8cfd-ef6d5a9ecc68",
                  "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:13:12.000Z",
                  "guardian_dob": "1990-04-15T00:00:00.000Z",
                  "guardian_relation": "Father",
                  "guardian_salutation": "MR",
                  "guardian_pan": "",
                  "deleted_at": "2026-06-23T11:13:12.343Z"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/48ecb476-9e8f-414e-8cfd-ef6d5a9ecc68?f_code=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_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:13:12.355Z",
              "endedAt": "2026-06-23T11:13:12.368Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:13:12 GMT",
                "etag": "W/\"272-V3SyTmaLp4alTlCqEB4lMz+DDdM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "is_default": true,
                    "id": 10786,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                    "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:13: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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:13:12.368Z",
              "endedAt": "2026-06-23T11:13:12.384Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:13:12 GMT",
                "etag": "W/\"272-V3SyTmaLp4alTlCqEB4lMz+DDdM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "is_default": true,
                    "id": 10786,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                    "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:13: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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:13:12.384Z",
              "endedAt": "2026-06-23T11:13:12.449Z",
              "durationMs": 65,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"208-LmR555svpYNstudTIqmsMmyMpho\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10788,
                  "f_user_nominee_id": "72ac0711-ee61-4b75-9ec8-ef06f5725da3",
                  "created_at": "2026-06-23T11:13:12.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_NOMINEE_010",
              "caseName": "Delete legacy-route nominee (cleanup)",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/user-nominee/72ac0711-ee61-4b75-9ec8-ef06f5725da3",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:12.449Z",
              "endedAt": "2026-06-23T11:13:12.563Z",
              "durationMs": 114,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"287-ZgvMKTCThq+FEsRw6YK2C5+xbTw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": {
                  "is_default": false,
                  "id": 10788,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_nominee_id": "72ac0711-ee61-4b75-9ec8-ef06f5725da3",
                  "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:13:12.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": "2026-06-23T11:13:12.552Z"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/72ac0711-ee61-4b75-9ec8-ef06f5725da3?f_code=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_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:13:12.563Z",
              "endedAt": "2026-06-23T11:13:12.588Z",
              "durationMs": 25,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"208-OW4UrNI6nyt/d5k87fj7CZBxQ0g\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10789,
                  "f_user_nominee_id": "86f3b8b7-b43c-425e-86bd-81be81b87c4e",
                  "created_at": "2026-06-23T11:13:12.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.588Z",
              "endedAt": "2026-06-23T11:13:12.638Z",
              "durationMs": 50,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"207-6IsRMcIm3Bs6tx46kYkBRlFT01M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10790,
                  "f_user_nominee_id": "e396bb1d-a58e-4def-b851-9b7e9e71283a",
                  "created_at": "2026-06-23T11:13:12.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.638Z",
              "endedAt": "2026-06-23T11:13:12.734Z",
              "durationMs": 96,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"208-3Sy8B22acLCv6h5jsAdfmIpU+s0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10791,
                  "f_user_nominee_id": "6fcf0f42-a4c0-43b5-ab4b-ffadef6c4dae",
                  "created_at": "2026-06-23T11:13:12.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.734Z",
              "endedAt": "2026-06-23T11:13:12.761Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 GMT",
                "etag": "W/\"248-bAqMwLJ2XUTEgl9ex/eIUUVRwNI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10792,
                  "f_user_nominee_id": "30da0c7d-c55f-4ae6-8eb5-4679d80f588b",
                  "created_at": "2026-06-23T11:13:12.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.761Z",
              "endedAt": "2026-06-23T11:13:12.827Z",
              "durationMs": 66,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 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": "63",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.827Z",
              "endedAt": "2026-06-23T11:13:12.839Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.839Z",
              "endedAt": "2026-06-23T11:13:12.850Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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": "BAJ_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:13:12.850Z",
              "endedAt": "2026-06-23T11:13:12.861Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 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": "8",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.861Z",
              "endedAt": "2026-06-23T11:13:12.927Z",
              "durationMs": 66,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 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": "62",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.927Z",
              "endedAt": "2026-06-23T11:13:12.939Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 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": "8",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.939Z",
              "endedAt": "2026-06-23T11:13:12.950Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 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/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.950Z",
              "endedAt": "2026-06-23T11:13:12.961Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 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": "8",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.961Z",
              "endedAt": "2026-06-23T11:13:12.972Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:12 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 POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:12.972Z",
              "endedAt": "2026-06-23T11:13:13.036Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13: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": "61",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.036Z",
              "endedAt": "2026-06-23T11:13:13.049Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13: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": "7",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.049Z",
              "endedAt": "2026-06-23T11:13:13.061Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {},
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13: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": "9",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{}'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": true,
                  "message": "Status 400 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1072",
                "FIXUSER1071",
                "FIXUSER1077"
              ]
            },
            {
              "caseId": "BAJ_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:13:13.061Z",
              "endedAt": "2026-06-23T11:13:13.127Z",
              "durationMs": 66,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:13 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": "62",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Should not return a 5xx server error",
                  "passed": true,
                  "message": "HTTP 200 (no server error)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:13:13.127Z",
              "endedAt": "2026-06-23T11:13:13.150Z",
              "durationMs": 23,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "nominee_relation": "Mother"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:13 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": "20",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.150Z",
              "endedAt": "2026-06-23T11:13:13.201Z",
              "durationMs": 51,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:13 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": "47",
                "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=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "validations": [
                {
                  "description": "Should not return a 5xx server error",
                  "passed": true,
                  "message": "HTTP 400 (no server error)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "BAJ_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:13:13.201Z",
              "endedAt": "2026-06-23T11:13:13.207Z",
              "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:13:13 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-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": "BAJ_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:13:13.208Z",
              "endedAt": "2026-06-23T11:13:13.212Z",
              "durationMs": 4,
              "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:13:13 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": "2",
                "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": "BAJ_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:13:13.213Z",
              "endedAt": "2026-06-23T11:13:13.217Z",
              "durationMs": 4,
              "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:13:13 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": "BAJ_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:13:13.217Z",
              "endedAt": "2026-06-23T11:13:13.229Z",
              "durationMs": 12,
              "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:13:13 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": "8",
                "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": "BAJ_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:13:13.229Z",
              "endedAt": "2026-06-23T11:13:13.256Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "full_name": "John A Doe",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:13 GMT",
                "etag": "W/\"206-OewFU8ibga8pFbojy0JwzlYeYb8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10793,
                  "f_user_nominee_id": "ab523580-b8d1-4426-9e49-d51d5f529b4c",
                  "created_at": "2026-06-23T11:13:13.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.256Z",
              "endedAt": "2026-06-23T11:13:13.281Z",
              "durationMs": 25,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "full_name": "Madonna",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:13 GMT",
                "etag": "W/\"206-ZwRP7moqB+cdgNivgzFbXb0Q2Wg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10794,
                  "f_user_nominee_id": "6aab1e38-cc22-48aa-8768-3b3fb140b179",
                  "created_at": "2026-06-23T11:13:13.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.281Z",
              "endedAt": "2026-06-23T11:13:13.334Z",
              "durationMs": 53,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "full_name": "John2 Doe",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:13 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": "49",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.334Z",
              "endedAt": "2026-06-23T11:13:13.351Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "full_name": ".",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:13 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": "13",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.351Z",
              "endedAt": "2026-06-23T11:13:13.441Z",
              "durationMs": 90,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:13 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": "87",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.441Z",
              "endedAt": "2026-06-23T11:13:13.454Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:13 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": "9",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.454Z",
              "endedAt": "2026-06-23T11:13:13.464Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:13 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 POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.465Z",
              "endedAt": "2026-06-23T11:13:13.535Z",
              "durationMs": 70,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:13 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": "67",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.535Z",
              "endedAt": "2026-06-23T11:13:13.562Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:13 GMT",
                "etag": "W/\"227-sCmzxBRMWUDAFbuZXeAtlU4/Xr4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10795,
                  "f_user_nominee_id": "ddcfd7fa-c2ee-402d-9e61-3b9687ea6165",
                  "created_at": "2026-06-23T11:13:13.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.562Z",
              "endedAt": "2026-06-23T11:13:13.631Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:13 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": "8",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.631Z",
              "endedAt": "2026-06-23T11:13:13.665Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:13 GMT",
                "etag": "W/\"233-OA2ReZyhFgxpfSVPHW2Bxq52YBc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10796,
                  "f_user_nominee_id": "12536745-81e1-4068-a017-56b266b171ef",
                  "created_at": "2026-06-23T11:13:13.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.665Z",
              "endedAt": "2026-06-23T11:13:13.728Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13: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": "59",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.728Z",
              "endedAt": "2026-06-23T11:13:13.738Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13: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": "7",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.738Z",
              "endedAt": "2026-06-23T11:13:13.754Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "first_name": "Minor",
                "last_name": "Kumar",
                "nominee_dob": "2015-01-01",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:13 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": "13",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.754Z",
              "endedAt": "2026-06-23T11:13:13.767Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:13 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": "9",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.767Z",
              "endedAt": "2026-06-23T11:13:13.856Z",
              "durationMs": 89,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:13 GMT",
                "etag": "W/\"20a-N5kA5yV/YyW9shPfFRT9S4ehZrE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": true,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10797,
                  "f_user_nominee_id": "a970a8dd-d1fd-4394-9669-50f1312e3ba9",
                  "created_at": "2026-06-23T11:13:13.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.856Z",
              "endedAt": "2026-06-23T11:13:13.929Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:13 GMT",
                "etag": "W/\"16ad-tLrTpSGq5StNTkWi2lhTiR1AAt8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "is_default": false,
                    "id": 10793,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "ab523580-b8d1-4426-9e49-d51d5f529b4c",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10794,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "6aab1e38-cc22-48aa-8768-3b3fb140b179",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10795,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "ddcfd7fa-c2ee-402d-9e61-3b9687ea6165",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10796,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "12536745-81e1-4068-a017-56b266b171ef",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": true,
                    "id": 10797,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "a970a8dd-d1fd-4394-9669-50f1312e3ba9",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10786,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                    "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:13:12.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10789,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "86f3b8b7-b43c-425e-86bd-81be81b87c4e",
                    "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:13:12.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10790,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "e396bb1d-a58e-4def-b851-9b7e9e71283a",
                    "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:13:12.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10791,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "6fcf0f42-a4c0-43b5-ab4b-ffadef6c4dae",
                    "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:13:12.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10792,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "30da0c7d-c55f-4ae6-8eb5-4679d80f588b",
                    "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:13: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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_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:13:13.929Z",
              "endedAt": "2026-06-23T11:13:13.957Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:13 GMT",
                "etag": "W/\"209-gIhAqwcl2w/FFsuQrARTfY8g3w4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10798,
                  "f_user_nominee_id": "86d5143c-a23c-448e-b2bd-dd39390afa6e",
                  "created_at": "2026-06-23T11:13:13.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:13.957Z",
              "endedAt": "2026-06-23T11:13:14.041Z",
              "durationMs": 84,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:14 GMT",
                "etag": "W/\"24a-qVnjRGwzbqT3dcmZdGCI0+Bgvfg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10799,
                  "f_user_nominee_id": "baaeff2b-74c0-437a-9324-d38b807b972e",
                  "created_at": "2026-06-23T11:13:14.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:14.041Z",
              "endedAt": "2026-06-23T11:13:14.068Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "BAJ"
              },
              "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:13:14 GMT",
                "etag": "W/\"20b-AkBcIxXiGz22y09LXaXzjbditlo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "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": 10800,
                  "f_user_nominee_id": "a6936abe-5a77-498b-8779-e712c493a0ed",
                  "created_at": "2026-06-23T11:13:14.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:14.068Z",
              "endedAt": "2026-06-23T11:13:14.128Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "5812",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:14 GMT",
                "etag": "W/\"16b4-ZCd4ZkemHcNy4liha0H0EoAA0Yg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "is_default": false,
                    "id": 10800,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "a6936abe-5a77-498b-8779-e712c493a0ed",
                    "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:13:14.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10799,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "baaeff2b-74c0-437a-9324-d38b807b972e",
                    "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:13:14.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10793,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "ab523580-b8d1-4426-9e49-d51d5f529b4c",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10794,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "6aab1e38-cc22-48aa-8768-3b3fb140b179",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10795,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "ddcfd7fa-c2ee-402d-9e61-3b9687ea6165",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10796,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "12536745-81e1-4068-a017-56b266b171ef",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": true,
                    "id": 10797,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "a970a8dd-d1fd-4394-9669-50f1312e3ba9",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10798,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "86d5143c-a23c-448e-b2bd-dd39390afa6e",
                    "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:13:13.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10786,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                    "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:13:12.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10789,
                    "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "86f3b8b7-b43c-425e-86bd-81be81b87c4e",
                    "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:13: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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_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:13:14.128Z",
              "endedAt": "2026-06-23T11:13:14.134Z",
              "durationMs": 6,
              "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:13: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": "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": "BAJ_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": "BAJ_NOMINEE_ADDR_001",
              "caseName": "Create address for nominee (BAJ)",
              "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:13:14.134Z",
              "endedAt": "2026-06-23T11:13:14.162Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                "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": "BAJ"
              },
              "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:13:14 GMT",
                "etag": "W/\"27c-6Mto8DiYnc5SBB72+9e2nSoz9MU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                  "is_default": false,
                  "same_as_user": false,
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "line2": "Near Test Lane",
                  "state": "MAHARASHTRA",
                  "country": "INDIA",
                  "address_type": "PERMANENT",
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d1ea9dad6b6ab7c5edcb46bd350dd054cdc9ba7cd39664363c47a604e01361097c88203ec3381ed2955464f7d5d584325389d26ca93cc93cacfc91b26b10731ea13576e0f0f109583c9356d1b139de5c5",
                  "id": 5134,
                  "f_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_code=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"f_user_nominee_id\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\",\"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": "BAJ_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:13:14.162Z",
              "endedAt": "2026-06-23T11:13:14.231Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "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:13:14 GMT",
                "etag": "W/\"30f-PcuuxMjrMbiIu6gbYr991rEp/og\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 5134,
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                    "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                    "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=3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_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:13:14.231Z",
              "endedAt": "2026-06-23T11:13:14.255Z",
              "durationMs": 24,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                "same_as_user": true
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 GMT",
                "etag": "W/\"28e-2m766sWBPykXh+Zad1zMlzJJGmU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "CREATED",
                "payload": {
                  "id": 5134,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "f_base_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                  "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"f_user_nominee_id\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\",\"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": "BAJ_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:13:14.255Z",
              "endedAt": "2026-06-23T11:13:14.268Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:13:14 GMT",
                "etag": "W/\"331-wAsiJsVLtTuzteNmpJLcxlLBP6c\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 5134,
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                    "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                    "f_base_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                    "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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_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:13:14.268Z",
              "endedAt": "2026-06-23T11:13:14.278Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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:13:14 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-address/for-nominee?f_user_nominee_id=11111111-2222-4333-8444-555555555555' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_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:13:14.278Z",
              "endedAt": "2026-06-23T11:13:14.284Z",
              "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:13: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": "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": "BAJ_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:13:14.284Z",
              "endedAt": "2026-06-23T11:13:14.328Z",
              "durationMs": 44,
              "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:13: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": "40",
                "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": "BAJ_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:13:14.328Z",
              "endedAt": "2026-06-23T11:13:14.342Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "same_as_user": true
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 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": "11",
                "server": "envoy"
              },
              "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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": "BAJ_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:13:14.342Z",
              "endedAt": "2026-06-23T11:13:14.426Z",
              "durationMs": 84,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "MH",
                "country": "INDIA",
                "pincode": "ABC"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 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": "81",
                "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"f_user_nominee_id\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\",\"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": "BAJ_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:13:14.426Z",
              "endedAt": "2026-06-23T11:13:14.450Z",
              "durationMs": 24,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "maharashtra",
                "country": "INDIA",
                "pincode": "400001"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 GMT",
                "etag": "W/\"24e-dtYy58pNtAMGAku+WUzaNEOeUU0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 5134,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "f_base_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                  "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"f_user_nominee_id\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\",\"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": "BAJ_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:13:14.450Z",
              "endedAt": "2026-06-23T11:13:14.473Z",
              "durationMs": 23,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "MH",
                "pincode": "400001"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 GMT",
                "etag": "W/\"245-QFm5uaKLXQ7KXHVFsOla0fpib4k\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "CREATED",
                "payload": {
                  "id": 5134,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "f_base_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                  "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"f_user_nominee_id\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\",\"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": "BAJ_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:13:14.473Z",
              "endedAt": "2026-06-23T11:13:14.536Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestPayload": {
                "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                "same_as_user": false,
                "line1": "Updated Address Line",
                "city": "Pune",
                "state": "MH",
                "country": "INDIA",
                "pincode": "411001"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 GMT",
                "etag": "W/\"265-6IXLnq2WIauiJsQ4GbsIUsvL2aE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "CREATED",
                "payload": {
                  "id": 5134,
                  "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "f_base_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                  "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=BAJ' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\n  -d '{\"f_user_nominee_id\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\",\"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": "BAJ_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:13:14.536Z",
              "endedAt": "2026-06-23T11:13:14.549Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "requestQuery": {
                "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "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:13:14 GMT",
                "etag": "W/\"302-HOfamdYMUhMI32gxyUQPcx0ZF+s\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "id": 5134,
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                    "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                    "f_base_user_address_id": "3a6c2ef8-2fc3-4350-ac5d-b7e53ab2e6bc",
                    "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=3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw'",
              "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": "BAJ_NOMINEE_V1UPD_001",
              "caseName": "Update nominee via v1/update (BAJ)",
              "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:13:14.549Z",
              "endedAt": "2026-06-23T11:13:14.577Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 GMT",
                "etag": "W/\"283-fps8gNWcc9A8anw7vCNVEcwk7os\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "Nominee Data updated successfully",
                "payload": {
                  "is_default": true,
                  "id": 10786,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "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:13: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=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\"}'",
              "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": "BAJ_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:13:14.577Z",
              "endedAt": "2026-06-23T11:13:14.636Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                "nomineeAddress": {
                  "same_as_user": false,
                  "line1": "ADFJ",
                  "street": "ASDFK",
                  "pincode": "431122",
                  "city": "BEED",
                  "state": "MAHARASHTRA",
                  "country": "INDIA"
                }
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1078",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:14 GMT",
                "etag": "W/\"436-bsW05SisK8tknc/+wEjnGj76Rzo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Nominee Data updated successfully",
                "payload": {
                  "is_default": true,
                  "id": 10786,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "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": "Father",
                  "nominee_salutation": "MR",
                  "guardian_first_name": "",
                  "guardian_last_name": "",
                  "created_at": "2026-06-23T11:13:12.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": null,
                  "nomineeAddress": {
                    "same_as_user": false,
                    "state": "MAHARASHTRA",
                    "country": "INDIA",
                    "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d67d8e56acb6a0037d70a856eb75e370a3e1608bd6960ad20a42428b87b82f01be86f7a24a27f69e4d4a476e892feb93819f43422c1405c9eaf47a2db0588fc01f80f14dadec1a1639c56890f969cbf0c",
                    "f_user_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                    "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
                  }
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\",\"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": "BAJ_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:13:14.636Z",
              "endedAt": "2026-06-23T11:13:14.731Z",
              "durationMs": 95,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 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": "7",
                "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=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\"}'",
              "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": "BAJ_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:13:14.731Z",
              "endedAt": "2026-06-23T11:13:14.742Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13: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 PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\"}'",
              "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": "BAJ_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:13:14.742Z",
              "endedAt": "2026-06-23T11:13:14.756Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13: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": "11",
                "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=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\"}'",
              "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": "BAJ_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:13:14.756Z",
              "endedAt": "2026-06-23T11:13:14.848Z",
              "durationMs": 92,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 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": "89",
                "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=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\"}'",
              "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": "BAJ_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:13:14.848Z",
              "endedAt": "2026-06-23T11:13:14.929Z",
              "durationMs": 81,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 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": "78",
                "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=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\"}'",
              "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": "BAJ_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:13:14.930Z",
              "endedAt": "2026-06-23T11:13:14.943Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 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": "11",
                "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=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\"}'",
              "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": "BAJ_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:13:14.943Z",
              "endedAt": "2026-06-23T11:13:14.953Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 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": "6",
                "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=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\"}'",
              "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": "BAJ_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:13:14.953Z",
              "endedAt": "2026-06-23T11:13:14.978Z",
              "durationMs": 25,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw"
              },
              "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": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0"
              },
              "requestQuery": {
                "f_code": "BAJ"
              },
              "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:13:14 GMT",
                "etag": "W/\"2c4-fMYu+arSq6I/aDrtXIqwfWCTIpA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 10786,
                  "f_user_ref_id": "e523c1e5-0229-4637-983c-05e9afb87b9c",
                  "f_user_nominee_id": "3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0",
                  "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:13: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=BAJ' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJlNTIzYzFlNS0wMjI5LTQ2MzctOTgzYy0wNWU5YWZiODdiOWMiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImQyMGU1ZWJhLTBkYWItNDc0My05NTdlLTcxNTNhOTM5NWJiNyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMTU0LCJleHAiOjE3ODIyOTk1NTR9._6evOWcQkgMX9AF4siUCH2nWMmfseml431Jva8CzHOw' \\\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\":\"3bbc1ab3-a65f-4c24-a400-8ed4e163d3f0\"}'",
              "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": "BAJ_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:13:14.978Z",
              "endedAt": "2026-06-23T11:13:15.031Z",
              "durationMs": 53,
              "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:13: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": "49",
                "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": "BAJ_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:13:15.031Z",
              "endedAt": "2026-06-23T11:13:15.036Z",
              "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:13: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": "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": 3095
          }
        }
      ]
    },
    {
      "id": "c82473b2-47ab-4f26-a1aa-72a3a561bcf6",
      "issuer": "mahindra",
      "journey": "ntb",
      "startedAt": "2026-06-23T11:11:52.134Z",
      "endedAt": "2026-06-23T11:14:06.241Z",
      "durationMs": 46517,
      "summary": {
        "total": 565,
        "passed": 562,
        "failed": 1,
        "skipped": 2,
        "running": 0,
        "pending": 0,
        "durationMs": 46517
      },
      "steps": [
        {
          "stepId": "step-01-login",
          "stepName": "Login",
          "cases": [
            {
              "caseId": "MAH_LOGIN_001",
              "caseName": "Send OTP to Mahindra Finance test mobile number",
              "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:13:19.576Z",
              "endedAt": "2026-06-23T11:13:19.671Z",
              "durationMs": 95,
              "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:13:19 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": "2930",
                "x-ratelimit-reset": "11",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "92",
                "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 indicate OTP send success",
                  "passed": true,
                  "message": "Success envelope present"
                },
                {
                  "description": "payload.attemptsUsed should be present",
                  "passed": true,
                  "message": "attemptsUsed=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:19.671Z",
              "endedAt": "2026-06-23T11:13:19.782Z",
              "durationMs": 111,
              "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:13:19 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": "2929",
                "x-ratelimit-reset": "11",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "107",
                "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": "MAH_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": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:19.782Z",
              "endedAt": "2026-06-23T11:13:19.895Z",
              "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:13:19 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": "2928",
                "x-ratelimit-reset": "11",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "110",
                "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": "Body statusCode should be 200",
                  "passed": true,
                  "message": "statusCode=200"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:19.895Z",
              "endedAt": "2026-06-23T11:13:20.002Z",
              "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:13:19 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": "2927",
                "x-ratelimit-reset": "11",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "104",
                "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 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": "MAH_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:13:20.002Z",
              "endedAt": "2026-06-23T11:13:20.105Z",
              "durationMs": 103,
              "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:13:20 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": "2926",
                "x-ratelimit-reset": "11",
                "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": "Payload object should exist",
                  "passed": true,
                  "message": "payload present"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:20.105Z",
              "endedAt": "2026-06-23T11:13:20.196Z",
              "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:13:20 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": "2925",
                "x-ratelimit-reset": "10",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "89",
                "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 be 0",
                  "passed": true,
                  "message": "attemptsUsed=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:20.197Z",
              "endedAt": "2026-06-23T11:13:20.331Z",
              "durationMs": 134,
              "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:13:20 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": "2924",
                "x-ratelimit-reset": "10",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "81",
                "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 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": "MAH_LOGIN_023",
              "caseName": "Verify send OTP response schema",
              "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:13:20.331Z",
              "endedAt": "2026-06-23T11:13:20.429Z",
              "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:13:20 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": "2923",
                "x-ratelimit-reset": "10",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "95",
                "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": "Success response schema should match contract",
                  "passed": true,
                  "message": "Success schema valid"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LOGIN_024",
              "caseName": "Verify send OTP response time",
              "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:13:20.429Z",
              "endedAt": "2026-06-23T11:13:20.536Z",
              "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:13:20 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": "2922",
                "x-ratelimit-reset": "10",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "104",
                "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": true,
                  "message": "duration=107ms"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:20.536Z",
              "endedAt": "2026-06-23T11:13:20.623Z",
              "durationMs": 87,
              "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:13:20 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": "2921",
                "x-ratelimit-reset": "10",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "84",
                "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": "MAH_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:13:20.623Z",
              "endedAt": "2026-06-23T11:13:20.716Z",
              "durationMs": 93,
              "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:13:20 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": "2920",
                "x-ratelimit-reset": "10",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "90",
                "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": "MAH_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:13:20.716Z",
              "endedAt": "2026-06-23T11:13:20.831Z",
              "durationMs": 115,
              "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:13:20 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": "2919",
                "x-ratelimit-reset": "10",
                "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 '{}'",
              "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": "MAH_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:13:20.831Z",
              "endedAt": "2026-06-23T11:13:20.844Z",
              "durationMs": 13,
              "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:13:20 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": "2918",
                "x-ratelimit-reset": "10",
                "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\":\"\"}'",
              "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": "MAH_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:13:20.844Z",
              "endedAt": "2026-06-23T11:13:21.031Z",
              "durationMs": 187,
              "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:13:20 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": "2917",
                "x-ratelimit-reset": "10",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "20",
                "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": "MAH_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:13:21.031Z",
              "endedAt": "2026-06-23T11:13:21.131Z",
              "durationMs": 100,
              "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:13:21 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": "2916",
                "x-ratelimit-reset": "10",
                "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": "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": "MAH_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:13:21.131Z",
              "endedAt": "2026-06-23T11:13:21.231Z",
              "durationMs": 100,
              "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:13:21 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": "2915",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:21.231Z",
              "endedAt": "2026-06-23T11:13:21.238Z",
              "durationMs": 7,
              "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:13:21 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": "2914",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:21.238Z",
              "endedAt": "2026-06-23T11:13:21.331Z",
              "durationMs": 93,
              "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:13:21 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": "2913",
                "x-ratelimit-reset": "9",
                "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\":\"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": "MAH_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:13:21.331Z",
              "endedAt": "2026-06-23T11:13:21.339Z",
              "durationMs": 8,
              "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:13:21 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": "2912",
                "x-ratelimit-reset": "9",
                "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\":\"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": "MAH_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:13:21.339Z",
              "endedAt": "2026-06-23T11:13:21.349Z",
              "durationMs": 10,
              "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:13:21 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": "2911",
                "x-ratelimit-reset": "9",
                "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)"
                  },
                  {
                    "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": "MAH_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:13:21.350Z",
              "endedAt": "2026-06-23T11:13:21.357Z",
              "durationMs": 7,
              "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:13:21 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": "2910",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:21.357Z",
              "endedAt": "2026-06-23T11:13:21.364Z",
              "durationMs": 7,
              "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:13:21 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": "2909",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:21.364Z",
              "endedAt": "2026-06-23T11:13:21.431Z",
              "durationMs": 67,
              "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:13:21 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": "2908",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:21.431Z",
              "endedAt": "2026-06-23T11:13:21.441Z",
              "durationMs": 10,
              "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:13:21 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": "2907",
                "x-ratelimit-reset": "9",
                "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\":\"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": "MAH_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:13:21.441Z",
              "endedAt": "2026-06-23T11:13:21.449Z",
              "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:13:21 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": "2906",
                "x-ratelimit-reset": "9",
                "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": "MAH_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:13:21.449Z",
              "endedAt": "2026-06-23T11:13:21.458Z",
              "durationMs": 9,
              "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:13:21 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": "2905",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:21.458Z",
              "endedAt": "2026-06-23T11:13:21.531Z",
              "durationMs": 73,
              "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:13:21 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": "2904",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:21.531Z",
              "endedAt": "2026-06-23T11:13:21.538Z",
              "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:13:21 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": "2903",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:21.538Z",
              "endedAt": "2026-06-23T11:13:21.546Z",
              "durationMs": 8,
              "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:13:21 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": "2902",
                "x-ratelimit-reset": "9",
                "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\":\"<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": "MAH_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:13:21.546Z",
              "endedAt": "2026-06-23T11:13:21.562Z",
              "durationMs": 16,
              "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:13:21 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": "2901",
                "x-ratelimit-reset": "9",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "13",
                "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": "MAH_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:13:21.562Z",
              "endedAt": "2026-06-23T11:13:21.637Z",
              "durationMs": 75,
              "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:13:21 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": "2900",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:21.637Z",
              "endedAt": "2026-06-23T11:13:21.731Z",
              "durationMs": 94,
              "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:13:21 GMT",
                "etag": "W/\"f6-ySe3EJgjQXC755DXBtbxRm0LZnc\"",
                "vary": "Origin",
                "x-powered-by": "Express",
                "x-envoy-upstream-service-time": "2",
                "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": "MAH_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:13:21.731Z",
              "endedAt": "2026-06-23T11:13:21.745Z",
              "durationMs": 14,
              "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:13:21 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": "2899",
                "x-ratelimit-reset": "9",
                "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'",
              "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": "MAH_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:13:21.745Z",
              "endedAt": "2026-06-23T11:13:21.831Z",
              "durationMs": 86,
              "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:13:21 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": "2898",
                "x-ratelimit-reset": "9",
                "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  -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": "MAH_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:13:21.831Z",
              "endedAt": "2026-06-23T11:13:21.847Z",
              "durationMs": 16,
              "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:13:21 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": "2897",
                "x-ratelimit-reset": "9",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "13",
                "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": "MAH_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:13:21.847Z",
              "endedAt": "2026-06-23T11:13:21.931Z",
              "durationMs": 84,
              "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:13:21 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": "2896",
                "x-ratelimit-reset": "9",
                "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": "Response success flag should be 0",
                  "passed": true,
                  "message": "success=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1208"
              ]
            },
            {
              "caseId": "MAH_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:13:21.931Z",
              "endedAt": "2026-06-23T11:13:21.939Z",
              "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:13:21 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": "2895",
                "x-ratelimit-reset": "9",
                "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": "MAH_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:13:21.939Z",
              "endedAt": "2026-06-23T11:13:21.947Z",
              "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:13:21 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": "2894",
                "x-ratelimit-reset": "9",
                "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 message should be \"Bad request\"",
                  "passed": true,
                  "message": "message=\"Bad request\""
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1208"
              ]
            },
            {
              "caseId": "MAH_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:13:21.947Z",
              "endedAt": "2026-06-23T11:13:21.955Z",
              "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:13:21 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": "2893",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:21.955Z",
              "endedAt": "2026-06-23T11:13:22.031Z",
              "durationMs": 76,
              "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:13:21 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": "2892",
                "x-ratelimit-reset": "9",
                "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 array should exist",
                  "passed": true,
                  "message": "error array present"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1208"
              ]
            },
            {
              "caseId": "MAH_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:13:22.031Z",
              "endedAt": "2026-06-23T11:13:22.039Z",
              "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:13:22 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": "2891",
                "x-ratelimit-reset": "9",
                "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": "Response should contain FIXUSER1208",
                  "passed": true,
                  "message": "FIXUSER1208 present"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [
                "FIXUSER1208"
              ],
              "actualErrorCodes": [
                "FIXUSER1208"
              ]
            },
            {
              "caseId": "MAH_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:13:22.039Z",
              "endedAt": "2026-06-23T11:13:22.051Z",
              "durationMs": 12,
              "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:13:22 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": "2890",
                "x-ratelimit-reset": "9",
                "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)"
                  }
                ]
              },
              "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": "MAH_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:13:22.051Z",
              "endedAt": "2026-06-23T11:13:22.065Z",
              "durationMs": 14,
              "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:13:22 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": "2889",
                "x-ratelimit-reset": "9",
                "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": "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": "MAH_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:13:22.065Z",
              "endedAt": "2026-06-23T11:13:22.131Z",
              "durationMs": 66,
              "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:13:22 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": "2888",
                "x-ratelimit-reset": "8",
                "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": "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": "MAH_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:13:22.131Z",
              "endedAt": "2026-06-23T11:13:22.139Z",
              "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:13:22 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": "2887",
                "x-ratelimit-reset": "8",
                "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": "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": "MAH_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:13:22.139Z",
              "endedAt": "2026-06-23T11:13:22.254Z",
              "durationMs": 115,
              "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:13: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": "2886",
                "x-ratelimit-reset": "8",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "112",
                "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": "MAH_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:13:22.254Z",
              "endedAt": "2026-06-23T11:13:22.366Z",
              "durationMs": 112,
              "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:13: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": "2885",
                "x-ratelimit-reset": "8",
                "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": "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": "MAH_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:13:22.366Z",
              "endedAt": "2026-06-23T11:13:22.461Z",
              "durationMs": 95,
              "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:13: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": "2884",
                "x-ratelimit-reset": "8",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "92",
                "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": "MAH_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:13:22.462Z",
              "endedAt": "2026-06-23T11:13:22.909Z",
              "durationMs": 447,
              "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:13: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": "2880",
                "x-ratelimit-reset": "8",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "107",
                "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 112ms across 4 requests"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:22.909Z",
              "endedAt": "2026-06-23T11:13:23.419Z",
              "durationMs": 510,
              "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:13:23 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": "2875",
                "x-ratelimit-reset": "7",
                "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": "MAH_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:13:23.419Z",
              "endedAt": "2026-06-23T11:13:23.704Z",
              "durationMs": 285,
              "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:13:23 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": "2872",
                "x-ratelimit-reset": "7",
                "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": "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": "MAH_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:13:23.704Z",
              "endedAt": "2026-06-23T11:13:23.805Z",
              "durationMs": 101,
              "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:13:23 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": "2871",
                "x-ratelimit-reset": "7",
                "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": "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": "MAH_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:13:23.805Z",
              "endedAt": "2026-06-23T11:13:23.914Z",
              "durationMs": 109,
              "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:13:23 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": "2870",
                "x-ratelimit-reset": "7",
                "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": "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": "MAH_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:13:23.914Z",
              "endedAt": "2026-06-23T11:13:23.997Z",
              "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": "94",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:23 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": "2869",
                "x-ratelimit-reset": "7",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "80",
                "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": "MAH_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:13:23.997Z",
              "endedAt": "2026-06-23T11:13:24.105Z",
              "durationMs": 108,
              "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:13: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": "2868",
                "x-ratelimit-reset": "7",
                "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": "Response status should be 201 or 200",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response time should be within 5000ms",
                  "passed": true,
                  "message": "duration=108ms"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:24.105Z",
              "endedAt": "2026-06-23T11:13:24.195Z",
              "durationMs": 90,
              "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:13: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": "2867",
                "x-ratelimit-reset": "6",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "87",
                "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": "MAH_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:13:24.196Z",
              "endedAt": "2026-06-23T11:13:24.293Z",
              "durationMs": 97,
              "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:13: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": "2866",
                "x-ratelimit-reset": "6",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "94",
                "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": "MAH_LOGIN_002",
              "caseName": "Verify OTP and extract auth tokens (Mahindra Finance)",
              "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:13:24.293Z",
              "endedAt": "2026-06-23T11:13:24.343Z",
              "durationMs": 50,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestPayload": {
                "phone": "918668336629",
                "otp": "123456",
                "partner_url": "https://tradingquants.dev.fixerra.in",
                "consent": false,
                "issuer_code": "MAHINDRA"
              },
              "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:13:24 GMT",
                "etag": "W/\"3ea-c8xrzRsJptnGflcSdQpWveRMT5M\"",
                "referrer-policy": "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": "6",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "47",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "User already exists.",
                "payload": {
                  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E",
                  "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJyZWZyZXNoIiwiZl91c2VyX2lkIjoiNGU2OGMxZTQtYzQzYy00OGM1LWIyYTktMDhkN2Q2ZTQ5NTdlIiwiZl9wYXJ0bmVyX3VzZXJfaWQiOiJiOTA3NjdhNS01OWEzLTRlZTAtOWZiYy0yZGEzNjI4NWY0N2MiLCJmX3BhcnRuZXJfaWQiOiI2OGJkY2Y4OS04NDY0LTRmODUtODk4Ny1hYTI4OTA4ZTIxYWQiLCJwYXJ0bmVyX3VybCI6Imh0dHBzOi8vdHJhZGluZ3F1YW50cy5kZXYuZml4ZXJyYS5pbiIsImlhdCI6MTc4MjIxMzIwNCwiZXhwIjoxNzgyODE4MDA0fQ.UKct5Aas1ToA29_TOP9mBE4N9RY_SFPM_r3_dE2I5Gk"
                }
              },
              "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\":\"MAHINDRA\"}'",
              "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": "MAH_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:13:24.343Z",
              "endedAt": "2026-06-23T11:13:24.360Z",
              "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:13:24 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": "2985",
                "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": "MAH_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:13:24.360Z",
              "endedAt": "2026-06-23T11:13:24.369Z",
              "durationMs": 9,
              "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:13:24 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": "2984",
                "x-ratelimit-reset": "6",
                "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": "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": "MAH_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:13:24.369Z",
              "endedAt": "2026-06-23T11:13:24.377Z",
              "durationMs": 8,
              "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:13:24 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": "2983",
                "x-ratelimit-reset": "6",
                "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": "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": "MAH_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:13:24.377Z",
              "endedAt": "2026-06-23T11:13:24.434Z",
              "durationMs": 57,
              "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:13:24 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": "2982",
                "x-ratelimit-reset": "6",
                "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": "",
                    "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": "MAH_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:13:24.434Z",
              "endedAt": "2026-06-23T11:13:24.440Z",
              "durationMs": 6,
              "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:13:24 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": "2981",
                "x-ratelimit-reset": "6",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "3",
                "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": "MAH_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:13:24.440Z",
              "endedAt": "2026-06-23T11:13:24.460Z",
              "durationMs": 20,
              "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:13:24 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": "2980",
                "x-ratelimit-reset": "6",
                "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 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": "MAH_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:13:24.460Z",
              "endedAt": "2026-06-23T11:13:24.526Z",
              "durationMs": 66,
              "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:13:24 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": "2979",
                "x-ratelimit-reset": "6",
                "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": "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": "MAH_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:13:24.526Z",
              "endedAt": "2026-06-23T11:13:24.543Z",
              "durationMs": 17,
              "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:13:24 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": "2978",
                "x-ratelimit-reset": "6",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "14",
                "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": 66,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 4963
          }
        },
        {
          "stepId": "step-02-fd-detail",
          "stepName": "FD Detail",
          "cases": [
            {
              "caseId": "MAH_FD_DETAIL_001",
              "caseName": "Get Mahindra Finance issuer detail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:24.543Z",
              "endedAt": "2026-06-23T11:13:24.633Z",
              "durationMs": 90,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "89038",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:24 GMT",
                "etag": "W/\"15bce-ZMONtx9sDmORz3MiEC3RnHL6ZEs\"",
                "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": "18",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "issuerData": {
                    "id": 3,
                    "name": "Mahindra Finance Ltd",
                    "description": "Mahindra Finance Ltd. has diversified into a financial services provider and is registered with the RBI as an asset finance, deposit-taking NBFC. It boasts a vast network of 1,300+ offices, reaching more than 380,000 villages, and manages assets exceeding ₹ 99,565 Crores.",
                    "f_code": "MAH",
                    "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                    "url": "https://images.dev.fixerra.in/logos/mahindra/Mahindra.png",
                    "sub_logo": "https://images.dev.fixerra.in/logos/mahindra/Mahindra_Logo.png",
                    "compounding_freq": "Yearly",
                    "issuer_type": "NBFC",
                    "crisil_rating": "AAA/Stable",
                    "icra_rating": "",
                    "trusted_users": "1CR+ Since 1991",
                    "hero_tag": null,
                    "subtag_1": "AAA RATED BY CRISIL",
                    "subtag_2": "Compounds Yearly",
                    "is_range_required": true,
                    "bank_disabled_at": null,
                    "faq": null,
                    "active_issuer_rank": 3,
                    "baseline_issuer_rank": null,
                    "deleted_at": null,
                    "upcoming_bank": false,
                    "upcoming_bank_date": null,
                    "utm_url": null,
                    "renewal_options": {
                      "Principal": true,
                      "No Renewal": true,
                      "Total Amount": true
                    },
                    "enable_our_pg": false,
                    "enable_easy_split": false,
                    "pg_setting": null,
                    "is_nominee_required": false,
                    "bank_type": "",
                    "is_issuer_live": true,
                    "women_benefit": 0,
                    "senior_citizen_benefit": 0.25,
                    "minTenure": 365,
                    "maxTenure": 1825
                  },
                  "vehiclesPayload": [
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "b7a1931b-e88d-4251-a822-3d81329c88dd",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": 11,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.76",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "0e47b184-a51c-4d20-a4c0-7168878c0762",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.12",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "450fab26-9739-48f6-93dd-3e673e3113a4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.76",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "682f3233-7644-4f6c-8981-a149ab27661f",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.12",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a73de787-4cf7-4422-b961-e97f0a44aed8",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.80",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "df8ca871-e506-4922-b638-7c1c1562e331",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.80",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "1580393e-b00c-4f1c-89b4-e7d2695a1a63",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.76",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "549818ac-ddbf-419f-8095-898929e0aa4d",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.12",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "9e89e67d-d18d-440c-950a-473e2b0f6598",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.37",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "35228b39-fe37-4b30-9679-50000e7280d7",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.53",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "74644831-f344-4230-932b-dd51bf8f0dbf",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.37",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "d7a1dd7a-d7c6-465a-8b6d-27720e703646",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "68f83d87-ea51-41ae-8479-c949178ebee1",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "0697711b-0fd7-4a02-93a9-87ea214b0c21",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.37",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "2d87a875-22f7-499d-ad0a-f70bf7c229c5",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.53",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "4e2d06f8-c545-42b1-9d10-3bf786b33616",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.53",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "4e2bdc70-e643-47bd-9c1b-7ac78885466b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "41575eae-6cbb-48c7-8fa6-a3de81e75de4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ea2189d1-f5ba-4c1a-9303-1697351f175e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "966781d1-110b-407a-8775-16790e1e2b53",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "404abfc4-43b6-4917-80d4-ef63c8159322",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.60",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3867f5af-2b39-4901-9eb8-08ebb6ab5f27",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "7316c78b-a8ca-4123-980d-901c8ff194e1",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.55",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "c0a581cc-b35b-4360-99cd-f8f19b48011e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.55",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "4ee7e8c5-06fe-4431-af1d-0590f7a38b09",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.55",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "0e332dac-d47e-4318-99da-e5af7977375e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.55",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "97719d8c-a627-414c-af66-ab0e39f3332c",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.50",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "481a5435-4b81-46ea-98fb-1ef004ea0d1f",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.50",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "43efbd46-dc76-4ee0-a9c8-bd34bcbc0e19",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": 4,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.32",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "f9f1b229-0a57-46c2-b05d-287733d2b6f0",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "fa01a749-dc91-4f8c-9a65-c6cd3fbceeb5",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.32",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "8b798fe2-5112-4cbe-8145-b4dd4c502310",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ed7f8c30-0de3-4be9-9bc9-6548d8b56573",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.45",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "e6292d44-2e2e-4682-868f-83d85fe77c5b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.45",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "e60c8270-f55d-416b-9731-a08100406304",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.32",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "cd1448ed-af12-45d4-9ddc-338b135f30d4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "c0bd536e-d132-4459-898d-99c88f6a8703",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.96",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3465f79a-e12b-4482-8023-33b12d748111",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.11",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "fee564f6-3c4c-4f30-9b92-72068cd069de",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.96",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "f87b87bd-875f-48f4-9188-02b0785c5765",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "5fe90e93-3a37-4648-85b8-f5b6d20c98f0",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "62cf4339-f8ca-4981-8b12-678b555c82bc",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.96",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "eba957cb-d5a4-47f6-93ca-b87971651796",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.11",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ce242bff-bb4c-4478-a706-0fee710fdccc",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.11",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "8b2b4bca-8e52-4975-bb96-6d22c2dcb5ea",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "cbf112ca-6d4a-4247-a22e-2bd68dd2ca8a",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "05f7fe27-724c-478d-8dea-7af0c9220517",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "20e622d3-1d66-4f34-ba1d-b4975cfdeaec",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "eb7f865b-a1ed-47a9-bbed-e807138b098e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "66ffbf08-1db9-4a2d-97fb-c44b04ed0575",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "57f6d2fd-753c-4207-b4e5-a2164a51166b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "895acfcc-bd13-42e6-940a-1ec5b01b83a9",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "6c54c77c-9dfc-4811-8bfa-803d4d36c33a",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a790e185-eb6b-4d62-a4f3-77af33f97201",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "eb8ea117-01fd-445f-af0a-67b1b5554008",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.15",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.15",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "61119961-10ad-45c4-8762-0eb56fc40ad5",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.15",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.15",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "8ed006df-c502-4e3c-9d2c-0e80366deb7f",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.35",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "eafd5fd9-a838-40c0-be23-2e1ace0db4ea",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.49",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "7c29f531-5685-42a0-8769-2a66b48a8fbd",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.35",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "46a33f27-e897-4595-9d3e-76d891dbde48",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.10",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a1d0c3ec-be5c-49b5-9fe1-fc288d61c39c",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.10",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a5e98ef1-7e81-4f1b-ac77-9325c8ec26ab",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.35",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3dc073ef-c7d0-4dfe-a941-af11265effdf",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.49",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "57bf94bd-0180-4f1c-94c3-75ea57a8abbf",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.49",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "6f48159a-52be-4ba6-a45d-b0602f92094b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.00",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ec2bbfdb-d9ee-4260-baa6-58e8334c6aa9",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.00",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a268bc58-4fa1-4917-842b-a4f57d45d617",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "08622691-71f1-4468-9179-8b16c225da97",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "277ae1d5-825d-4151-ba35-735603f52864",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.90",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "abb24a1f-7657-4c98-b0a2-8f70333ec658",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.90",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "18272491-9713-4506-bb1b-38c1a37fc406",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "346920e7-512e-463b-aa92-8d59d899045d",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "95304a59-3724-4688-8778-b4d6c4e53965",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.97",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ac1e965e-edf4-43b3-9af7-6e0c1fba1634",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "771f3990-819f-4aff-949e-ec1b3a8a12b4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "fc8c06ae-3cc1-4704-a109-a15cd1580923",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "8aded7a7-e616-4f8e-87f7-0a17344dc6f1",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.86",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "19b6028b-5b0c-4006-9cf2-63a1fc00a5eb",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "01051cbf-31c2-4d1c-b5c6-bbb7a22d1427",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "22014848-d53a-41f2-a4f0-93866401bcfb",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "be46e091-e5df-42ff-abb0-038b9aba3778",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "5167cab4-28a7-4d7d-8a5d-9bedebec646b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "4f40df19-b9c3-45ec-ae1a-5a60e52f1fb2",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.97",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "56403167-af6c-4001-a0bf-685c8eee9e8e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "59f65ddc-520b-477e-8f8c-c28e2ba944e4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.97",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "6364398b-c38a-4555-aaa8-0404ac0514d5",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "d1c86cd8-81fd-4947-b7a0-1502486aeb76",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.75",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3564039c-a276-4eb7-a7d1-34c903dd39c9",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.75",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "5fd84399-e906-41a1-bf67-28ed5b62c18d",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.76",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ab9a1f84-2287-499c-93e4-bd1374a26a5e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.75",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "78d5aa6e-2777-446d-8818-b9464ea05b0a",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.70",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.70",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3bc02d61-3b22-401b-988c-abebe8ad5900",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.70",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.70",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3b3e2ac3-697c-4a67-a61d-9d6aa04f0920",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.70",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.70",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "08326044-4d44-4a9a-8b00-bacd31b30674",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.70",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.71",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "85912e78-7a8d-4dc9-891f-6fc1382b98c8",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ded8ddaf-ac2e-4827-a640-314aab84d47e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "e32f3ca5-02ba-4cad-a156-8eb34673f268",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.65",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "46266dc0-72e2-4fb3-be6e-7cb1677bdd78",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.66",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a925ff1b-2b8a-49f4-82a8-24a2e0047de8",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.71",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "05dda2c9-4039-445c-867c-5587cba71791",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.61",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "8f52adf2-c4fb-46da-8c5a-14f7f1d4a010",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "dd9d5f07-135f-4753-b6f5-9024001e237e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "7974695c-9625-44e4-a7d0-855a56eab1d0",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "10712939-b8d7-4dad-9f0b-6a8b1b84c899",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.71",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "0eb69db0-acfc-4554-9036-92a1c0732636",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.71",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "82c2cd2f-944b-4166-b28e-63aac00bef9e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.50",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "b36dbbe0-d5bc-42c0-b69a-21725568f432",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.51",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "7cec3cfe-6cd9-4c59-a2f5-5bdb1f6f8aca",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.45",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "d3a1be9a-0517-43bd-a8ac-11f26e251032",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.46",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.40",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "5d2f688e-ad35-4d96-bca5-097e8ea8a405",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.41",
                      "senior_citizen_benefit": 0.2
                    }
                  ],
                  "highlights": [
                    {
                      "title": "All investments are regulated by RBI",
                      "url": "https://images.dev.fixerra.in/illustrations/RBI@3x.png"
                    },
                    {
                      "title": "Maturity Amount is directly credited to your bank account",
                      "url": "https://images.dev.fixerra.in/illustrations/Bank@3x.png"
                    },
                    {
                      "title": "Senior Citizens get up to 0.25% extra",
                      "url": "https://images.dev.fixerra.in/illustrations/Senior@3x.png"
                    }
                  ],
                  "about": [
                    {
                      "key": "Founded",
                      "value": "1991"
                    },
                    {
                      "key": "Customers Served",
                      "value": "1 Cr+"
                    },
                    {
                      "key": "Number of Branches",
                      "value": "1300+"
                    },
                    {
                      "key": "Reach",
                      "value": "380,000+ Villages"
                    },
                    {
                      "key": "CRISIL Rating",
                      "value": "AAA+ Stable"
                    },
                    {
                      "key": "Assets Under Management",
                      "value": "₹99,565 Cr+"
                    }
                  ],
                  "distinctMinTenureValues": [
                    {
                      "value": 1095
                    },
                    {
                      "value": 1277
                    },
                    {
                      "value": 1460
                    },
                    {
                      "value": 1825
                    },
                    {
                      "value": 365
                    },
                    {
                      "value": 547
                    },
                    {
                      "value": 730
                    },
                    {
                      "value": 912
                    }
                  ],
                  "interestPayouts": [
                    "Maturity",
                    "Yearly",
                    "HalfYearly",
                    "Quarterly",
                    "Monthly"
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                },
                {
                  "description": "Response should contain issuer data (payload.issuerData)",
                  "passed": true,
                  "message": "Issuer data present (f_code=MAH, f_issuer_id=57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16)"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_FD_DETAIL_002",
              "caseName": "Get Mahindra maturity quote and capture investment vehicle id",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:24.633Z",
              "endedAt": "2026-06-23T11:13:24.667Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "25000",
                "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": "446",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:24 GMT",
                "etag": "W/\"1be-Rog+aJi6SpyNysBc8BwrqB/o+z8\"",
                "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": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "dd9d5f07-135f-4753-b6f5-9024001e237e",
                "average_yield": "6.60",
                "product_min_investment": 10000,
                "product_max_investment": 9999999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 26650
                      }
                    ]
                  }
                ],
                "maturity_amount": 26650
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=25000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "Maturity quote should include f_investment_vehicle_id",
                  "passed": true,
                  "message": "Vehicle id present (dd9d5f07-135f-4753-b6f5-9024001e237e)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_MAT_AUTH_001",
              "caseName": "MAH maturity should reject missing auth",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:24.667Z",
              "endedAt": "2026-06-23T11:13:24.831Z",
              "durationMs": 164,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "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": "79",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:24 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/MAH?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'",
              "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": "MAH_MAT_FREQ001",
              "caseName": "MAH Maturity payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:24.831Z",
              "endedAt": "2026-06-23T11:13:24.866Z",
              "durationMs": 35,
              "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": "false",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "446",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:24 GMT",
                "etag": "W/\"1be-8QUSrGDTo2PLzwOl0nFlIz5FrAg\"",
                "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": "31",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "dd9d5f07-135f-4753-b6f5-9024001e237e",
                "average_yield": "6.60",
                "product_min_investment": 10000,
                "product_max_investment": 9999999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 10660
                      }
                    ]
                  }
                ],
                "maturity_amount": 10660
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?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 'apikey: d4****bb'",
              "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": "MAH_MAT_FREQ002",
              "caseName": "MAH Monthly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:24.866Z",
              "endedAt": "2026-06-23T11:13:24.908Z",
              "durationMs": 42,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:24 GMT",
                "etag": "W/\"3ad-fGIYrBBl1V/4FNxudIHhu7rz1h0\"",
                "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": "37",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                "average_yield": "6.40",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.37
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 266.67
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 205.48
                      }
                    ]
                  }
                ],
                "payout_amount": 266,
                "total_payout": 3200
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_MAT_FREQ003",
              "caseName": "MAH Quarterly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:24.908Z",
              "endedAt": "2026-06-23T11:13:24.934Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "639",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:24 GMT",
                "etag": "W/\"27f-ecnnA0kQw7t/pUOkxeoq+mv+LCo\"",
                "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": "23",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.45",
                "payout_frequency": "Quarterly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "7cec3cfe-6cd9-4c59-a2f5-5bdb1f6f8aca",
                "average_yield": "6.45",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.85
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 806.25
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 806.25
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 806.25
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 744.95
                      }
                    ]
                  }
                ],
                "payout_amount": 806,
                "total_payout": 3225
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&payout_frequency=Quarterly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_MAT_FREQ004",
              "caseName": "MAH HalfYearly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:24.935Z",
              "endedAt": "2026-06-23T11:13:24.961Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "25000",
                "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": "563",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:24 GMT",
                "etag": "W/\"233-fUwaeI9NKxaxP9OCCaI/mUlGzC8\"",
                "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": "24",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.50",
                "payout_frequency": "HalfYearly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "82c2cd2f-944b-4166-b28e-63aac00bef9e",
                "average_yield": "6.50",
                "product_min_investment": 25000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-09-30",
                        "amount": 440.75
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 812.5
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 372.3
                      }
                    ]
                  }
                ],
                "payout_amount": 812,
                "total_payout": 1625
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=25000&payout_frequency=HalfYearly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_MAT_FREQ005",
              "caseName": "MAH Yearly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:24.961Z",
              "endedAt": "2026-06-23T11:13:24.988Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "25000",
                "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": "502",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:24 GMT",
                "etag": "W/\"1f6-Nx+mbwk5/hjdKrxL0L+N20ZoIc4\"",
                "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": "24",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Yearly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "8f52adf2-c4fb-46da-8c5a-14f7f1d4a010",
                "average_yield": "6.60",
                "product_min_investment": 25000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 1270.27
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 380.86
                      }
                    ]
                  }
                ],
                "payout_amount": 1650,
                "total_payout": 1650
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=25000&payout_frequency=Yearly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_MAT_BOUND_001",
              "caseName": "MAH min amount boundary success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:24.988Z",
              "endedAt": "2026-06-23T11:13:25.039Z",
              "durationMs": 51,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": "48",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_MAT_BOUND_002",
              "caseName": "MAH max amount boundary success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.039Z",
              "endedAt": "2026-06-23T11:13:25.087Z",
              "durationMs": 48,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "1825",
                "investment_amount": "50000000",
                "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": "464",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1d0-4lVrQi3gVEwIAKTJNlAH9O7GtR8\"",
                "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": "44",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "7.45",
                "payout_frequency": "Maturity",
                "maturity_date": "2031-06-22",
                "maturity_date_ist": "2031-06-22",
                "f_investment_vehicle_id": "f9f1b229-0a57-46c2-b05d-287733d2b6f0",
                "average_yield": "8.65",
                "product_min_investment": 10000000,
                "product_max_investment": 50000000,
                "product_min_tenure": 1825,
                "product_max_tenure": 1825,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2031,
                    "data": [
                      {
                        "date": "2031-06-22",
                        "amount": 71614687.88
                      }
                    ]
                  }
                ],
                "maturity_amount": 71614687.88
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=1825&investment_amount=50000000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_MAT_BOUND_003",
              "caseName": "MAH amount below min should fail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.087Z",
              "endedAt": "2026-06-23T11:13:25.101Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "4000",
                "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:13:25 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": "11",
                "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/MAH?tenure=365&investment_amount=4000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_MAT_BOUND_004",
              "caseName": "MAH tenure below min should fail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.101Z",
              "endedAt": "2026-06-23T11:13:25.149Z",
              "durationMs": 48,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "364",
                "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:13:25 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": "45",
                "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/MAH?tenure=364&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 'apikey: d4****bb'",
              "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": "MAH_MAT_NBFC_001",
              "caseName": "MAH non-multiple amount should fail FIXMAS091",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.149Z",
              "endedAt": "2026-06-23T11:13:25.153Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100500",
                "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": "201",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"c9-2re6GDMEIAEFJ1IzkNKzA/vr5Vo\"",
                "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": "FIXMAS091",
                    "error": "investment_amount should be a multiple of 1000"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=100500&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "Body should be Fixerra error with FIXMAS091",
                  "passed": true,
                  "message": "FIXMAS091 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXMAS091"
              ]
            },
            {
              "caseId": "MAH_MAT_WOMEN_001",
              "caseName": "MAH women_citizen=true should fail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.153Z",
              "endedAt": "2026-06-23T11:13:25.183Z",
              "durationMs": 30,
              "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",
                "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:13:25 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": "27",
                "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/MAH?tenure=365&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 'apikey: d4****bb'",
              "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": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.183Z",
              "endedAt": "2026-06-23T11:13:25.198Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_interest should be a non-empty numeric string",
                  "passed": true,
                  "message": "product_interest=\"6.60\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.198Z",
              "endedAt": "2026-06-23T11:13:25.212Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"6.60\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.212Z",
              "endedAt": "2026-06-23T11:13:25.230Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": "13",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"2027-06-23\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.230Z",
              "endedAt": "2026-06-23T11:13:25.245Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"29bd10ea-cbff-4894-b03b-1ccc64b1ce60\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_MAT_009",
              "caseName": "Verify minimum investment amount returned (5000)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.245Z",
              "endedAt": "2026-06-23T11:13:25.330Z",
              "durationMs": 85,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_min_investment should equal 5000",
                  "passed": true,
                  "message": "product_min_investment=5000"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_MAT_010",
              "caseName": "Verify maximum investment amount returned (50000000)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "failed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.331Z",
              "endedAt": "2026-06-23T11:13:25.342Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_max_investment should equal 50000000",
                  "passed": false,
                  "message": "Expected 50000000, got 9999"
                }
              ],
              "failureReason": "Expected 50000000, got 9999",
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.343Z",
              "endedAt": "2026-06-23T11:13:25.430Z",
              "durationMs": 87,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=5330 > principal=5000"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_MAT_042",
              "caseName": "Verify total_payout returned for monthly (non-cumulative) FD",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.431Z",
              "endedAt": "2026-06-23T11:13:25.448Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"3ad-fGIYrBBl1V/4FNxudIHhu7rz1h0\"",
                "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": "13",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                "average_yield": "6.40",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.37
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 266.67
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 205.48
                      }
                    ]
                  }
                ],
                "payout_amount": 266,
                "total_payout": 3200
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.total_payout should be a positive number",
                  "passed": true,
                  "message": "total_payout=3200"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_MAT_043",
              "caseName": "Verify payout_amount field present for monthly (non-cumulative) FD",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.448Z",
              "endedAt": "2026-06-23T11:13:25.463Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"3ad-fGIYrBBl1V/4FNxudIHhu7rz1h0\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                "average_yield": "6.40",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.37
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 266.67
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 205.48
                      }
                    ]
                  }
                ],
                "payout_amount": 266,
                "total_payout": 3200
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.payout_amount should be a positive number",
                  "passed": true,
                  "message": "payout_amount=266"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.463Z",
              "endedAt": "2026-06-23T11:13:25.478Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"3ad-fGIYrBBl1V/4FNxudIHhu7rz1h0\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                "average_yield": "6.40",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.37
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 266.67
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 205.48
                      }
                    ]
                  }
                ],
                "payout_amount": 266,
                "total_payout": 3200
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.478Z",
              "endedAt": "2026-06-23T11:13:25.530Z",
              "durationMs": 52,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"3ad-fGIYrBBl1V/4FNxudIHhu7rz1h0\"",
                "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": "14",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                "average_yield": "6.40",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.37
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 266.67
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 205.48
                      }
                    ]
                  }
                ],
                "payout_amount": 266,
                "total_payout": 3200
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.531Z",
              "endedAt": "2026-06-23T11:13:25.535Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:13:25 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/MAH?tenure=365&investment_amount=5000&payout_frequency=Weekly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_MAT_059",
              "caseName": "Verify missing API key is rejected",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:25.535Z",
              "endedAt": "2026-06-23T11:13:25.539Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:13:25 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/MAH?tenure=365&investment_amount=5000&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 an auth/validation error (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": "MAH_MAT_060",
              "caseName": "Verify a non-empty (invalid) API key value still passes (apikey presence bypasses partner-key check)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.539Z",
              "endedAt": "2026-06-23T11:13:25.551Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "in****yz"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: in****yz'",
              "validations": [
                {
                  "description": "apikey header presence bypasses partner-key validation regardless of its value, so the request should succeed with maturity data",
                  "passed": true,
                  "message": "Request succeeded with maturity data (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": "MAH_MAT_063",
              "caseName": "Verify blank API key header is rejected",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:25.551Z",
              "endedAt": "2026-06-23T11:13:25.931Z",
              "durationMs": 380,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "****"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:13:25 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/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: ****'",
              "validations": [
                {
                  "description": "Should reject with an auth/validation error (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": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:25.931Z",
              "endedAt": "2026-06-23T11:13:26.030Z",
              "durationMs": 99,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:25 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.031Z",
              "endedAt": "2026-06-23T11:13:26.045Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:26 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "Response should complete within 2000ms",
                  "passed": true,
                  "message": "duration=14ms"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_MAT_069",
              "caseName": "Verify SQL injection payload in investment_amount is safely ignored (leading numeric value '5000' is parsed, no injection)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.045Z",
              "endedAt": "2026-06-23T11:13:26.056Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000' 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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:26 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000%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 'apikey: d4****bb'",
              "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=5330"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.056Z",
              "endedAt": "2026-06-23T11:13:26.131Z",
              "durationMs": 75,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365' OR '1'='1",
                "investment_amount": "5000",
                "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:13:26 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": "1",
                "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/MAH?tenure=365%27+OR+%271%27%3D%271&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.131Z",
              "endedAt": "2026-06-23T11:13:26.230Z",
              "durationMs": 99,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:13:26 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/MAH?tenure=365&investment_amount=5000&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 'apikey: d4****bb'",
              "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": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.230Z",
              "endedAt": "2026-06-23T11:13:26.236Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:13:26 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/MAH?tenure=365&investment_amount=5000&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 'apikey: d4****bb'",
              "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": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.236Z",
              "endedAt": "2026-06-23T11:13:26.241Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:13:26 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": "2",
                "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/MAH?tenure=365&investment_amount=5000&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 'apikey: d4****bb'",
              "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": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.241Z",
              "endedAt": "2026-06-23T11:13:26.764Z",
              "durationMs": 523,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:26 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": "23",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.764Z",
              "endedAt": "2026-06-23T11:13:26.830Z",
              "durationMs": 66,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:26 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"2027-06-23\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.831Z",
              "endedAt": "2026-06-23T11:13:26.850Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:26 GMT",
                "etag": "W/\"3ad-fGIYrBBl1V/4FNxudIHhu7rz1h0\"",
                "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": "17",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                "average_yield": "6.40",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.37
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 266.67
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 205.48
                      }
                    ]
                  }
                ],
                "payout_amount": 266,
                "total_payout": 3200
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "MAH_MAT_085",
              "caseName": "Verify product_min_tenure equals 365",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.851Z",
              "endedAt": "2026-06-23T11:13:26.862Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:26 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_min_tenure should equal 365",
                  "passed": true,
                  "message": "product_min_tenure=365"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.862Z",
              "endedAt": "2026-06-23T11:13:26.875Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:26 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=365, product_max_tenure=365"
                }
              ],
              "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/57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.875Z",
              "endedAt": "2026-06-23T11:13:26.932Z",
              "durationMs": 57,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "89038",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:26 GMT",
                "etag": "W/\"15bce-ZMONtx9sDmORz3MiEC3RnHL6ZEs\"",
                "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": "17",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "issuerData": {
                    "id": 3,
                    "name": "Mahindra Finance Ltd",
                    "description": "Mahindra Finance Ltd. has diversified into a financial services provider and is registered with the RBI as an asset finance, deposit-taking NBFC. It boasts a vast network of 1,300+ offices, reaching more than 380,000 villages, and manages assets exceeding ₹ 99,565 Crores.",
                    "f_code": "MAH",
                    "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                    "url": "https://images.dev.fixerra.in/logos/mahindra/Mahindra.png",
                    "sub_logo": "https://images.dev.fixerra.in/logos/mahindra/Mahindra_Logo.png",
                    "compounding_freq": "Yearly",
                    "issuer_type": "NBFC",
                    "crisil_rating": "AAA/Stable",
                    "icra_rating": "",
                    "trusted_users": "1CR+ Since 1991",
                    "hero_tag": null,
                    "subtag_1": "AAA RATED BY CRISIL",
                    "subtag_2": "Compounds Yearly",
                    "is_range_required": true,
                    "bank_disabled_at": null,
                    "faq": null,
                    "active_issuer_rank": 3,
                    "baseline_issuer_rank": null,
                    "deleted_at": null,
                    "upcoming_bank": false,
                    "upcoming_bank_date": null,
                    "utm_url": null,
                    "renewal_options": {
                      "Principal": true,
                      "No Renewal": true,
                      "Total Amount": true
                    },
                    "enable_our_pg": false,
                    "enable_easy_split": false,
                    "pg_setting": null,
                    "is_nominee_required": false,
                    "bank_type": "",
                    "is_issuer_live": true,
                    "women_benefit": 0,
                    "senior_citizen_benefit": 0.25,
                    "minTenure": 365,
                    "maxTenure": 1825
                  },
                  "vehiclesPayload": [
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "b7a1931b-e88d-4251-a822-3d81329c88dd",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": 11,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.76",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "0e47b184-a51c-4d20-a4c0-7168878c0762",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.12",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "450fab26-9739-48f6-93dd-3e673e3113a4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.76",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "682f3233-7644-4f6c-8981-a149ab27661f",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.12",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a73de787-4cf7-4422-b961-e97f0a44aed8",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.80",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "df8ca871-e506-4922-b638-7c1c1562e331",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.80",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "1580393e-b00c-4f1c-89b4-e7d2695a1a63",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.76",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "549818ac-ddbf-419f-8095-898929e0aa4d",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.12",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "9e89e67d-d18d-440c-950a-473e2b0f6598",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.37",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "35228b39-fe37-4b30-9679-50000e7280d7",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.53",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "74644831-f344-4230-932b-dd51bf8f0dbf",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.37",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "d7a1dd7a-d7c6-465a-8b6d-27720e703646",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "68f83d87-ea51-41ae-8479-c949178ebee1",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "0697711b-0fd7-4a02-93a9-87ea214b0c21",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.37",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "2d87a875-22f7-499d-ad0a-f70bf7c229c5",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.53",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "4e2d06f8-c545-42b1-9d10-3bf786b33616",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.53",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "4e2bdc70-e643-47bd-9c1b-7ac78885466b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "41575eae-6cbb-48c7-8fa6-a3de81e75de4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ea2189d1-f5ba-4c1a-9303-1697351f175e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "966781d1-110b-407a-8775-16790e1e2b53",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "404abfc4-43b6-4917-80d4-ef63c8159322",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.60",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3867f5af-2b39-4901-9eb8-08ebb6ab5f27",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "7316c78b-a8ca-4123-980d-901c8ff194e1",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.55",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "c0a581cc-b35b-4360-99cd-f8f19b48011e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.55",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "4ee7e8c5-06fe-4431-af1d-0590f7a38b09",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.55",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "0e332dac-d47e-4318-99da-e5af7977375e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.55",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "97719d8c-a627-414c-af66-ab0e39f3332c",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.50",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "481a5435-4b81-46ea-98fb-1ef004ea0d1f",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.50",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "43efbd46-dc76-4ee0-a9c8-bd34bcbc0e19",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": 4,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.32",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "f9f1b229-0a57-46c2-b05d-287733d2b6f0",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "fa01a749-dc91-4f8c-9a65-c6cd3fbceeb5",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.32",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "8b798fe2-5112-4cbe-8145-b4dd4c502310",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ed7f8c30-0de3-4be9-9bc9-6548d8b56573",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.45",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "e6292d44-2e2e-4682-868f-83d85fe77c5b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.45",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "e60c8270-f55d-416b-9731-a08100406304",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.32",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "cd1448ed-af12-45d4-9ddc-338b135f30d4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "c0bd536e-d132-4459-898d-99c88f6a8703",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.96",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3465f79a-e12b-4482-8023-33b12d748111",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.11",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "fee564f6-3c4c-4f30-9b92-72068cd069de",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.96",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "f87b87bd-875f-48f4-9188-02b0785c5765",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "5fe90e93-3a37-4648-85b8-f5b6d20c98f0",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.40",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "62cf4339-f8ca-4981-8b12-678b555c82bc",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.96",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "eba957cb-d5a4-47f6-93ca-b87971651796",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.11",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ce242bff-bb4c-4478-a706-0fee710fdccc",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.11",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "8b2b4bca-8e52-4975-bb96-6d22c2dcb5ea",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "cbf112ca-6d4a-4247-a22e-2bd68dd2ca8a",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "05f7fe27-724c-478d-8dea-7af0c9220517",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "20e622d3-1d66-4f34-ba1d-b4975cfdeaec",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "eb7f865b-a1ed-47a9-bbed-e807138b098e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "66ffbf08-1db9-4a2d-97fb-c44b04ed0575",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "57f6d2fd-753c-4207-b4e5-a2164a51166b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "895acfcc-bd13-42e6-940a-1ec5b01b83a9",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1460,
                      "product_max_tenure": 1460,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "6c54c77c-9dfc-4811-8bfa-803d4d36c33a",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a790e185-eb6b-4d62-a4f3-77af33f97201",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.20",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.20",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "eb8ea117-01fd-445f-af0a-67b1b5554008",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.15",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.15",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "61119961-10ad-45c4-8762-0eb56fc40ad5",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1277,
                      "product_max_tenure": 1277,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.15",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.15",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "8ed006df-c502-4e3c-9d2c-0e80366deb7f",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.35",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "eafd5fd9-a838-40c0-be23-2e1ace0db4ea",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.49",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "7c29f531-5685-42a0-8769-2a66b48a8fbd",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.35",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "46a33f27-e897-4595-9d3e-76d891dbde48",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.10",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a1d0c3ec-be5c-49b5-9fe1-fc288d61c39c",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.10",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a5e98ef1-7e81-4f1b-ac77-9325c8ec26ab",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.35",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3dc073ef-c7d0-4dfe-a941-af11265effdf",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.49",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "57bf94bd-0180-4f1c-94c3-75ea57a8abbf",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.49",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "6f48159a-52be-4ba6-a45d-b0602f92094b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.00",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ec2bbfdb-d9ee-4260-baa6-58e8334c6aa9",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.00",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a268bc58-4fa1-4917-842b-a4f57d45d617",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "08622691-71f1-4468-9179-8b16c225da97",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.95",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.95",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "277ae1d5-825d-4151-ba35-735603f52864",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.90",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "abb24a1f-7657-4c98-b0a2-8f70333ec658",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.90",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.90",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "18272491-9713-4506-bb1b-38c1a37fc406",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "346920e7-512e-463b-aa92-8d59d899045d",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "95304a59-3724-4688-8778-b4d6c4e53965",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.97",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ac1e965e-edf4-43b3-9af7-6e0c1fba1634",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "771f3990-819f-4aff-949e-ec1b3a8a12b4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "fc8c06ae-3cc1-4704-a109-a15cd1580923",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "8aded7a7-e616-4f8e-87f7-0a17344dc6f1",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.86",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "19b6028b-5b0c-4006-9cf2-63a1fc00a5eb",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "01051cbf-31c2-4d1c-b5c6-bbb7a22d1427",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "22014848-d53a-41f2-a4f0-93866401bcfb",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "be46e091-e5df-42ff-abb0-038b9aba3778",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "5167cab4-28a7-4d7d-8a5d-9bedebec646b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "4f40df19-b9c3-45ec-ae1a-5a60e52f1fb2",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.97",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "56403167-af6c-4001-a0bf-685c8eee9e8e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.21",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "59f65ddc-520b-477e-8f8c-c28e2ba944e4",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.97",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "6364398b-c38a-4555-aaa8-0404ac0514d5",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.85",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "d1c86cd8-81fd-4947-b7a0-1502486aeb76",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.75",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3564039c-a276-4eb7-a7d1-34c903dd39c9",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.75",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "5fd84399-e906-41a1-bf67-28ed5b62c18d",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.76",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ab9a1f84-2287-499c-93e4-bd1374a26a5e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.75",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "78d5aa6e-2777-446d-8818-b9464ea05b0a",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.70",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.70",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3bc02d61-3b22-401b-988c-abebe8ad5900",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.70",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.70",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "3b3e2ac3-697c-4a67-a61d-9d6aa04f0920",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.70",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.70",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "08326044-4d44-4a9a-8b00-bacd31b30674",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.70",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.71",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "85912e78-7a8d-4dc9-891f-6fc1382b98c8",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "ded8ddaf-ac2e-4827-a640-314aab84d47e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.65",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "e32f3ca5-02ba-4cad-a156-8eb34673f268",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 912,
                      "product_max_tenure": 912,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.65",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "46266dc0-72e2-4fb3-be6e-7cb1677bdd78",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.65",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.66",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "a925ff1b-2b8a-49f4-82a8-24a2e0047de8",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.71",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "05dda2c9-4039-445c-867c-5587cba71791",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.61",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "8f52adf2-c4fb-46da-8c5a-14f7f1d4a010",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "dd9d5f07-135f-4753-b6f5-9024001e237e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 10000,
                      "product_max_investment": 9999999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "7974695c-9625-44e4-a7d0-855a56eab1d0",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "10712939-b8d7-4dad-9f0b-6a8b1b84c899",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 9999,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.71",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "0eb69db0-acfc-4554-9036-92a1c0732636",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 10000000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.71",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "82c2cd2f-944b-4166-b28e-63aac00bef9e",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.50",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "b36dbbe0-d5bc-42c0-b69a-21725568f432",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 25000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.51",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "7cec3cfe-6cd9-4c59-a2f5-5bdb1f6f8aca",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.45",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "d3a1be9a-0517-43bd-a8ac-11f26e251032",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.45",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.46",
                      "senior_citizen_benefit": 0.2
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.40",
                      "senior_citizen_benefit": 0.35
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
                      "f_investment_vehicle_id": "5d2f688e-ad35-4d96-bca5-097e8ea8a405",
                      "product_details": "",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 50000,
                      "product_max_investment": 50000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-20T00: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": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.40",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.41",
                      "senior_citizen_benefit": 0.2
                    }
                  ],
                  "highlights": [
                    {
                      "title": "All investments are regulated by RBI",
                      "url": "https://images.dev.fixerra.in/illustrations/RBI@3x.png"
                    },
                    {
                      "title": "Maturity Amount is directly credited to your bank account",
                      "url": "https://images.dev.fixerra.in/illustrations/Bank@3x.png"
                    },
                    {
                      "title": "Senior Citizens get up to 0.25% extra",
                      "url": "https://images.dev.fixerra.in/illustrations/Senior@3x.png"
                    }
                  ],
                  "about": [
                    {
                      "key": "Founded",
                      "value": "1991"
                    },
                    {
                      "key": "Customers Served",
                      "value": "1 Cr+"
                    },
                    {
                      "key": "Number of Branches",
                      "value": "1300+"
                    },
                    {
                      "key": "Reach",
                      "value": "380,000+ Villages"
                    },
                    {
                      "key": "CRISIL Rating",
                      "value": "AAA+ Stable"
                    },
                    {
                      "key": "Assets Under Management",
                      "value": "₹99,565 Cr+"
                    }
                  ],
                  "distinctMinTenureValues": [
                    {
                      "value": 1095
                    },
                    {
                      "value": 1277
                    },
                    {
                      "value": 1460
                    },
                    {
                      "value": 1825
                    },
                    {
                      "value": 365
                    },
                    {
                      "value": 547
                    },
                    {
                      "value": 730
                    },
                    {
                      "value": 912
                    }
                  ],
                  "interestPayouts": [
                    "Maturity",
                    "Yearly",
                    "HalfYearly",
                    "Quarterly",
                    "Monthly"
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16' \\\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 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/57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:26.932Z",
              "endedAt": "2026-06-23T11:13:26.945Z",
              "durationMs": 13,
              "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:13:26 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/57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16' \\\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/57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.945Z",
              "endedAt": "2026-06-23T11:13:26.950Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "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:13:26 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": "2",
                "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/57a9d4a2-bfbc-4ed2-965c-b8c4b7c95b16?product_type=ABC' \\\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_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-MAH-001_0",
              "caseName": "[POSITIVE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.950Z",
              "endedAt": "2026-06-23T11:13:26.961Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:26 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&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-MAH-002_1",
              "caseName": "[POSITIVE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:26.961Z",
              "endedAt": "2026-06-23T11:13:27.030Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:26 GMT",
                "etag": "W/\"3ad-fGIYrBBl1V/4FNxudIHhu7rz1h0\"",
                "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": "14",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                "average_yield": "6.40",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.37
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 266.67
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 205.48
                      }
                    ]
                  }
                ],
                "payout_amount": 266,
                "total_payout": 3200
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&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-MAH-003_2",
              "caseName": "[POSITIVE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.031Z",
              "endedAt": "2026-06-23T11:13:27.048Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "639",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"27f-ecnnA0kQw7t/pUOkxeoq+mv+LCo\"",
                "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": "14",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.45",
                "payout_frequency": "Quarterly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "7cec3cfe-6cd9-4c59-a2f5-5bdb1f6f8aca",
                "average_yield": "6.45",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.85
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 806.25
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 806.25
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 806.25
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 744.95
                      }
                    ]
                  }
                ],
                "payout_amount": 806,
                "total_payout": 3225
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&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-MAH-004_3",
              "caseName": "[POSITIVE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.048Z",
              "endedAt": "2026-06-23T11:13:27.065Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "25000",
                "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": "563",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"233-fUwaeI9NKxaxP9OCCaI/mUlGzC8\"",
                "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": "13",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.50",
                "payout_frequency": "HalfYearly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "82c2cd2f-944b-4166-b28e-63aac00bef9e",
                "average_yield": "6.50",
                "product_min_investment": 25000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-09-30",
                        "amount": 440.75
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 812.5
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 372.3
                      }
                    ]
                  }
                ],
                "payout_amount": 812,
                "total_payout": 1625
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=25000&payout_frequency=HalfYearly&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-MAH-005_4",
              "caseName": "[POSITIVE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.065Z",
              "endedAt": "2026-06-23T11:13:27.081Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "25000",
                "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": "502",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"1f6-Nx+mbwk5/hjdKrxL0L+N20ZoIc4\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Yearly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "8f52adf2-c4fb-46da-8c5a-14f7f1d4a010",
                "average_yield": "6.60",
                "product_min_investment": 25000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 1270.27
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 380.86
                      }
                    ]
                  }
                ],
                "payout_amount": 1650,
                "total_payout": 1650
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=25000&payout_frequency=Yearly&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-POS-005_5",
              "caseName": "[POSITIVE] MAH valid min boundary cumulative",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.081Z",
              "endedAt": "2026-06-23T11:13:27.141Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "440",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"1b8-pQkYxCsMn2FWA2ldXhkbZgqtVPU\"",
                "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": {
                "product_interest": "6.60",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "29bd10ea-cbff-4894-b03b-1ccc64b1ce60",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 9999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5330
                      }
                    ]
                  }
                ],
                "maturity_amount": 5330
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=5000&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-POS-011_6",
              "caseName": "[POSITIVE] Optional flags all false",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.141Z",
              "endedAt": "2026-06-23T11:13:27.157Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"3ad-fGIYrBBl1V/4FNxudIHhu7rz1h0\"",
                "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": "13",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                "average_yield": "6.40",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.37
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 266.67
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 205.48
                      }
                    ]
                  }
                ],
                "payout_amount": 266,
                "total_payout": 3200
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&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-POS-012_7",
              "caseName": "[POSITIVE] Optional flags: senior only",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.158Z",
              "endedAt": "2026-06-23T11:13:27.183Z",
              "durationMs": 25,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"3ad-3SCkj9//dJmUF/awIRQvwrAVEtY\"",
                "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": "21",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.65",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "ded8ddaf-ac2e-4827-a640-314aab84d47e",
                "average_yield": "6.65",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 63.77
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 277.08
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 277.08
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 277.08
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 277.08
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 277.08
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 213.51
                      }
                    ]
                  }
                ],
                "payout_amount": 277,
                "total_payout": 3325
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&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_TC-MAT-POS-013_8",
              "caseName": "[POSITIVE] Flags: `women_citizen=true` (unsupported for MAH)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.183Z",
              "endedAt": "2026-06-23T11:13:27.200Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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": "12",
                "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/MAH?tenure=365&investment_amount=50000&payout_frequency=Monthly&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-POS-014_9",
              "caseName": "[POSITIVE] Flags: `tax_saver=true` (unsupported for MAH)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.200Z",
              "endedAt": "2026-06-23T11:13:27.215Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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": "12",
                "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/MAH?tenure=365&investment_amount=50000&payout_frequency=Monthly&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-POS-015_10",
              "caseName": "[POSITIVE] Flags: all true (unsupported for MAH)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.215Z",
              "endedAt": "2026-06-23T11:13:27.230Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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/MAH?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=true&women_citizen=true&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-LIMIT-MAH-001_11",
              "caseName": "[EDGE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.231Z",
              "endedAt": "2026-06-23T11:13:27.243Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-LIMIT-MAH-001"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "4000",
                "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:13:27 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": "8",
                "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/MAH?tenure=365&investment_amount=4000&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-MAH-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-MAH-002_12",
              "caseName": "[EDGE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.243Z",
              "endedAt": "2026-06-23T11:13:27.255Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-LIMIT-MAH-002"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "60000000",
                "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:13:27 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": "9",
                "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/MAH?tenure=365&investment_amount=60000000&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-MAH-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-MAH-001_13",
              "caseName": "[POSITIVE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.255Z",
              "endedAt": "2026-06-23T11:13:27.275Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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": "17",
                "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/MAH?tenure=365&investment_amount=50000&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-MAH-001_14",
              "caseName": "[POSITIVE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.276Z",
              "endedAt": "2026-06-23T11:13:27.331Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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": "18",
                "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/MAH?tenure=365&investment_amount=50000&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-MAH-001_15",
              "caseName": "[POSITIVE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.331Z",
              "endedAt": "2026-06-23T11:13:27.361Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "446",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"1be-Mtm18sTmkm1UHmvqYy6XPQ2ZBI0\"",
                "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": "27",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.85",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "be46e091-e5df-42ff-abb0-038b9aba3778",
                "average_yield": "6.85",
                "product_min_investment": 10000,
                "product_max_investment": 9999999,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 53425
                      }
                    ]
                  }
                ],
                "maturity_amount": 53425
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&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_TC-MAT-BIZ-001_16",
              "caseName": "[POSITIVE] MAH NC Monthly with amount 49,000 (below rule)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.361Z",
              "endedAt": "2026-06-23T11:13:27.430Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "49000",
                "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": "537",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 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": "42",
                "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/MAH?tenure=365&investment_amount=49000&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": "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-BIZ-002_17",
              "caseName": "[POSITIVE] MAH NC Monthly with amount 50,000 (exact min)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.431Z",
              "endedAt": "2026-06-23T11:13:27.531Z",
              "durationMs": 100,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"3ad-fGIYrBBl1V/4FNxudIHhu7rz1h0\"",
                "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": "69",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                "average_yield": "6.40",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.37
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 266.67
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 205.48
                      }
                    ]
                  }
                ],
                "payout_amount": 266,
                "total_payout": 3200
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&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-BIZ-003_18",
              "caseName": "[POSITIVE] MAH NC Quarterly with amount 49,000 (below rule)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.531Z",
              "endedAt": "2026-06-23T11:13:27.552Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "49000",
                "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": "537",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 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": "18",
                "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/MAH?tenure=365&investment_amount=49000&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": "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-BIZ-004_19",
              "caseName": "[POSITIVE] MAH NC HalfYearly with amount 24,000 (below rule)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.552Z",
              "endedAt": "2026-06-23T11:13:27.573Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "24000",
                "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:13:27 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": "18",
                "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/MAH?tenure=365&investment_amount=24000&payout_frequency=HalfYearly&senior_citizen=false&women_citizen=false&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-BIZ-005_20",
              "caseName": "[POSITIVE] MAH NC Yearly with amount 25,000 (exact min)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.573Z",
              "endedAt": "2026-06-23T11:13:27.589Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "25000",
                "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": "502",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"1f6-Nx+mbwk5/hjdKrxL0L+N20ZoIc4\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.60",
                "payout_frequency": "Yearly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "8f52adf2-c4fb-46da-8c5a-14f7f1d4a010",
                "average_yield": "6.60",
                "product_min_investment": 25000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 1270.27
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 380.86
                      }
                    ]
                  }
                ],
                "payout_amount": 1650,
                "total_payout": 1650
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=25000&payout_frequency=Yearly&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-001_21",
              "caseName": "[POSITIVE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.589Z",
              "endedAt": "2026-06-23T11:13:27.631Z",
              "durationMs": 42,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"3ad-fGIYrBBl1V/4FNxudIHhu7rz1h0\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.40",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0bebf383-b67b-4097-b2b2-15c67bdbf40b",
                "average_yield": "6.40",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 61.37
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 266.67
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 266.67
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 205.48
                      }
                    ]
                  }
                ],
                "payout_amount": 266,
                "total_payout": 3200
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&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_22",
              "caseName": "[POSITIVE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.631Z",
              "endedAt": "2026-06-23T11:13:27.645Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "941",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:27 GMT",
                "etag": "W/\"3ad-3SCkj9//dJmUF/awIRQvwrAVEtY\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.65",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "ded8ddaf-ac2e-4827-a640-314aab84d47e",
                "average_yield": "6.65",
                "product_min_investment": 50000,
                "product_max_investment": 50000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 63.77
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 277.08
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 277.08
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 277.08
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 277.08
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 277.08
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 277.08
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 213.51
                      }
                    ]
                  }
                ],
                "payout_amount": 277,
                "total_payout": 3325
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH?tenure=365&investment_amount=50000&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_23",
              "caseName": "[EDGE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.645Z",
              "endedAt": "2026-06-23T11:13:27.657Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-003"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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/MAH?tenure=365&investment_amount=50000&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_24",
              "caseName": "[EDGE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.657Z",
              "endedAt": "2026-06-23T11:13:27.669Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-004"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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/MAH?tenure=365&investment_amount=50000&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_25",
              "caseName": "[EDGE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.669Z",
              "endedAt": "2026-06-23T11:13:27.684Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-005"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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": "12",
                "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/MAH?tenure=365&investment_amount=50000&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_26",
              "caseName": "[EDGE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.684Z",
              "endedAt": "2026-06-23T11:13:27.730Z",
              "durationMs": 46,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-006"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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": "12",
                "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/MAH?tenure=365&investment_amount=50000&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_27",
              "caseName": "[EDGE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.731Z",
              "endedAt": "2026-06-23T11:13:27.745Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-007"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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": "11",
                "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/MAH?tenure=365&investment_amount=50000&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_28",
              "caseName": "[EDGE] `MAH`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:27.745Z",
              "endedAt": "2026-06-23T11:13:27.831Z",
              "durationMs": 86,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-008"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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:13:27 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/MAH?tenure=365&investment_amount=50000&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": 73,
            "passed": 72,
            "failed": 1,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 3274
          }
        },
        {
          "stepId": "step-03-pan-verification",
          "stepName": "PAN Verification",
          "cases": [
            {
              "caseId": "MAH_PAN_001",
              "caseName": "Get user profile before PAN entry (Mahindra Finance)",
              "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:13:27.831Z",
              "endedAt": "2026-06-23T11:13:28.072Z",
              "durationMs": 241,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:28 GMT",
                "etag": "W/\"573-fJWIb0wIdcGo+I6FN2wmqYNWgqY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:13:19.000Z",
                  "isActive": true,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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:13:19.534Z",
                  "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:43:19.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_PAN_002",
              "caseName": "Track insights event for PAN verification step (Mahindra Finance)",
              "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:13:28.072Z",
              "endedAt": "2026-06-23T11:13:28.156Z",
              "durationMs": 84,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "state": "KYC_VERIFICATION",
                "sub_state": "PAN_VERIFICATION",
                "status": "SUCCESS",
                "issuer_code": "MAH",
                "fd_info": {
                  "amount": 25000,
                  "tenure": 12,
                  "payout_frequency": "maturity",
                  "issuer_code": "MAH"
                },
                "d1": "{\"event_id\":\"cc7942eb-33c2-4ecf-9f09-72daed8f9ac2\"}",
                "data": "{\"issuer_code\":\"MAH\",\"fd_info\":{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}}"
              },
              "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:13:28 GMT",
                "etag": "W/\"41-M+4hBsG0sVRjuFnaz2YPyfe+acA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"state\":\"KYC_VERIFICATION\",\"sub_state\":\"PAN_VERIFICATION\",\"status\":\"SUCCESS\",\"issuer_code\":\"MAH\",\"fd_info\":{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"},\"d1\":\"{\\\"event_id\\\":\\\"cc7942eb-33c2-4ecf-9f09-72daed8f9ac2\\\"}\",\"data\":\"{\\\"issuer_code\\\":\\\"MAH\\\",\\\"fd_info\\\":{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}}\"}'",
              "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": "MAH_PAN_003",
              "caseName": "Verify PAN for Mahindra Finance",
              "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:13:28.156Z",
              "endedAt": "2026-06-23T11:13:28.571Z",
              "durationMs": 415,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:28 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": "411",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:28.571Z",
              "endedAt": "2026-06-23T11:13:29.505Z",
              "durationMs": 934,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:29 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": "931",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:29.505Z",
              "endedAt": "2026-06-23T11:13:29.871Z",
              "durationMs": 366,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:29 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": "362",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:29.871Z",
              "endedAt": "2026-06-23T11:13:30.977Z",
              "durationMs": 1106,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:30 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": "1103",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:30.977Z",
              "endedAt": "2026-06-23T11:13:31.369Z",
              "durationMs": 392,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:31 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": "389",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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=392ms"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:31.369Z",
              "endedAt": "2026-06-23T11:13:31.792Z",
              "durationMs": 423,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:31 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": "420",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:31.792Z",
              "endedAt": "2026-06-23T11:13:31.809Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:31 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": "14",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:31.809Z",
              "endedAt": "2026-06-23T11:13:31.835Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": null,
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:31 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": "23",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":null,\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:31.835Z",
              "endedAt": "2026-06-23T11:13:31.852Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:31 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": "14",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:31.852Z",
              "endedAt": "2026-06-23T11:13:31.863Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR343",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:31 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR343\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:31.863Z",
              "endedAt": "2026-06-23T11:13:31.936Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438LL",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:31 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": "70",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438LL\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:31.936Z",
              "endedAt": "2026-06-23T11:13:31.946Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "blxpr3438l",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:31 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"blxpr3438l\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:31.946Z",
              "endedAt": "2026-06-23T11:13:31.960Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXP@3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:31 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXP@3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:31.960Z",
              "endedAt": "2026-06-23T11:13:32.131Z",
              "durationMs": 171,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXP R3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:31 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXP R3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.131Z",
              "endedAt": "2026-06-23T11:13:32.141Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:32 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.141Z",
              "endedAt": "2026-06-23T11:13:32.156Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "ABCDEFGHIJ",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:32 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 POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"ABCDEFGHIJ\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.156Z",
              "endedAt": "2026-06-23T11:13:32.167Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "AB123456CD",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:32 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"AB123456CD\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.167Z",
              "endedAt": "2026-06-23T11:13:32.231Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "' OR 1=1 --",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:32 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"'\\'' OR 1=1 --\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.231Z",
              "endedAt": "2026-06-23T11:13:32.241Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "<script>alert(1)</script>",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:32 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"<script>alert(1)</script>\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.241Z",
              "endedAt": "2026-06-23T11:13:32.248Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": "{\"number\":",
              "requestQuery": {},
              "responseHeaders": {
                "content-length": "248",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:32 GMT",
                "etag": "W/\"f8-ydQRwr2txlf09MfVIoTWDDYnXgw\"",
                "vary": "Origin",
                "x-powered-by": "Express",
                "x-envoy-upstream-service-time": "3",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:32.248Z",
              "endedAt": "2026-06-23T11:13:32.257Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {},
              "requestQuery": {},
              "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:13:32 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": "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)"
                  },
                  {
                    "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:32.257Z",
              "endedAt": "2026-06-23T11:13:32.337Z",
              "durationMs": 80,
              "requestHeaders": {
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": "{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}",
              "requestQuery": {},
              "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:13:32 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' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.337Z",
              "endedAt": "2026-06-23T11:13:32.349Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "text/plain",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": "{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}",
              "requestQuery": {},
              "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:13:32 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' \\\n  -H 'Content-Type: text/plain' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.349Z",
              "endedAt": "2026-06-23T11:13:32.361Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:32 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.361Z",
              "endedAt": "2026-06-23T11:13:32.431Z",
              "durationMs": 70,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:32 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": "68",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.431Z",
              "endedAt": "2026-06-23T11:13:32.443Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:32 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.443Z",
              "endedAt": "2026-06-23T11:13:32.461Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:32 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.461Z",
              "endedAt": "2026-06-23T11:13:32.916Z",
              "durationMs": 455,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:32 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": "452",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:32.916Z",
              "endedAt": "2026-06-23T11:13:36.215Z",
              "durationMs": 3299,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13: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": "3296",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:36.215Z",
              "endedAt": "2026-06-23T11:13:36.721Z",
              "durationMs": 506,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13: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": "489",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:36.721Z",
              "endedAt": "2026-06-23T11:13:37.774Z",
              "durationMs": 1053,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13:37 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": "505",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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 525ms across 3 requests"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:37.774Z",
              "endedAt": "2026-06-23T11:13:39.600Z",
              "durationMs": 1826,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13: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": "331",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:39.600Z",
              "endedAt": "2026-06-23T11:13:40.102Z",
              "durationMs": 502,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13: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": "498",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_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:13:40.102Z",
              "endedAt": "2026-06-23T11:13:40.421Z",
              "durationMs": 319,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "number": "BLXPR3438L",
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:13: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": "315",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"number\":\"BLXPR3438L\",\"issuer_code\":\"MAH\",\"issuer_type\":\"NBFC\"}'",
              "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": "MAH_PAN_950",
              "caseName": "Persist DOB for downstream eligibility (Digilocker/Aadhaar fallback)",
              "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:13:40.421Z",
              "endedAt": "2026-06-23T11:13:40.550Z",
              "durationMs": 129,
              "requestHeaders": {
                "Content-Type": "application/json",
                "fuserid": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "dob": "1992-04-30"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1844",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:40 GMT",
                "etag": "W/\"734-UzB9Um8/5LS0fh9t9gWTVeVjC0E\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "126",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2026-06-23T11:13:19.000Z",
                  "updatedAt": "2026-06-23T11:13:40.000Z",
                  "deleted_at": null,
                  "createdBy": null,
                  "updatedBy": null,
                  "deletedBy": null,
                  "isActive": true,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": null,
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "249a22814bf213a7ff2e68cfa58da9d3:db646d65909c524168c6990f0b3efbc5",
                  "code": "91",
                  "dob": "249a22814bf213a7ff2e68cfa58da9d3:ecfe610f12b665afad3545ca90ac0be2",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:13:19.534Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "KALU NATHU RATHOD",
                  "is_pan_verified": false,
                  "manual_pan_verified": null,
                  "is_email_verified": false,
                  "is_aadhaar_verified": false,
                  "is_nominee_present": false,
                  "is_ckyc_verified": false,
                  "is_bank_present": false,
                  "kin": "father",
                  "kin_first_name": "KALU",
                  "kin_middle_name": "NATHU",
                  "kin_last_name": "RATHOD",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:13:40.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": null,
                  "profile_updated_at": "2026-06-23T11:13:40.433Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:43:19.000Z",
                  "is_pan_consent_checked": false,
                  "pan_consent_checked_date": "2026-06-23T16:43:40.000Z"
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user' \\\n  -H 'Content-Type: application/json' \\\n  -H 'fuserid: 4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e' \\\n  -H 'apikey: d4****bb' \\\n  -d '{\"dob\":\"1992-04-30\"}'",
              "validations": [
                {
                  "description": "DOB update should persist (201 with updated user)",
                  "passed": true,
                  "message": "DOB persisted (HTTP 200, dob=249a22814bf213a7ff2e68cfa58da9d3:ecfe610f12b665afad3545ca90ac0be2)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            }
          ],
          "summary": {
            "total": 37,
            "passed": 37,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 12719
          }
        },
        {
          "stepId": "step-04-email-verification",
          "stepName": "Email Verification",
          "cases": [
            {
              "caseId": "MAH_EMAIL_001",
              "caseName": "Verify OTP sent to valid email (Mahindra 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:13:40.551Z",
              "endedAt": "2026-06-23T11:13:41.280Z",
              "durationMs": 729,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 GMT",
                "etag": "W/\"b3-yLlZo/bTCNuQyXfu8QnwZU/z5TQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "726",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213220649,
                  "endTime": 1782213221244,
                  "durationMs": 595,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.280Z",
              "endedAt": "2026-06-23T11:13:41.297Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 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": "14",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.297Z",
              "endedAt": "2026-06-23T11:13:41.331Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 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": "7",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.331Z",
              "endedAt": "2026-06-23T11:13:41.341Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.341Z",
              "endedAt": "2026-06-23T11:13:41.353Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.353Z",
              "endedAt": "2026-06-23T11:13:41.364Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.364Z",
              "endedAt": "2026-06-23T11:13:41.375Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.376Z",
              "endedAt": "2026-06-23T11:13:41.430Z",
              "durationMs": 54,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 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": "48",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.431Z",
              "endedAt": "2026-06-23T11:13:41.441Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 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": "7",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.441Z",
              "endedAt": "2026-06-23T11:13:41.456Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.456Z",
              "endedAt": "2026-06-23T11:13:41.466Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"issuer\":{\"f_code\":\"MAH\"}}"
              },
              "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:13:41 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": "7",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"MAH\\\"}}\"}'",
              "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": "MAH_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:13:41.466Z",
              "endedAt": "2026-06-23T11:13:41.530Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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": "60",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.530Z",
              "endedAt": "2026-06-23T11:13:41.541Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.541Z",
              "endedAt": "2026-06-23T11:13:41.552Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:41 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": "7",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_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:13:41.552Z",
              "endedAt": "2026-06-23T11:13:41.564Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.564Z",
              "endedAt": "2026-06-23T11:13:41.637Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.637Z",
              "endedAt": "2026-06-23T11:13:41.647Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.647Z",
              "endedAt": "2026-06-23T11:13:41.657Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.657Z",
              "endedAt": "2026-06-23T11:13:41.666Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.666Z",
              "endedAt": "2026-06-23T11:13:41.728Z",
              "durationMs": 62,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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": "59",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.728Z",
              "endedAt": "2026-06-23T11:13:41.739Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.739Z",
              "endedAt": "2026-06-23T11:13:41.748Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.748Z",
              "endedAt": "2026-06-23T11:13:41.762Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.762Z",
              "endedAt": "2026-06-23T11:13:41.835Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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": "69",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:41.836Z",
              "endedAt": "2026-06-23T11:13:42.031Z",
              "durationMs": 195,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:41 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.031Z",
              "endedAt": "2026-06-23T11:13:42.131Z",
              "durationMs": 100,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.131Z",
              "endedAt": "2026-06-23T11:13:42.141Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.141Z",
              "endedAt": "2026-06-23T11:13:42.231Z",
              "durationMs": 90,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.231Z",
              "endedAt": "2026-06-23T11:13:42.242Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.242Z",
              "endedAt": "2026-06-23T11:13:42.524Z",
              "durationMs": 282,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 GMT",
                "etag": "W/\"b3-1q631+/jCgQy19DWWm06wUQizBc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213222329,
                  "endTime": 1782213222488,
                  "durationMs": 159,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.524Z",
              "endedAt": "2026-06-23T11:13:42.536Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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": "9",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.536Z",
              "endedAt": "2026-06-23T11:13:42.547Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.547Z",
              "endedAt": "2026-06-23T11:13:42.560Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.560Z",
              "endedAt": "2026-06-23T11:13:42.571Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.572Z",
              "endedAt": "2026-06-23T11:13:42.637Z",
              "durationMs": 65,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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": "62",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.637Z",
              "endedAt": "2026-06-23T11:13:42.648Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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": "9",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.648Z",
              "endedAt": "2026-06-23T11:13:42.660Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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": "9",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.660Z",
              "endedAt": "2026-06-23T11:13:42.842Z",
              "durationMs": 182,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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 36ms across 5 requests"
                }
              ],
              "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:42.842Z",
              "endedAt": "2026-06-23T11:13:42.953Z",
              "durationMs": 111,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:42 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:42.954Z",
              "endedAt": "2026-06-23T11:13:43.071Z",
              "durationMs": 117,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:43.071Z",
              "endedAt": "2026-06-23T11:13:43.134Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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": "60",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:43.134Z",
              "endedAt": "2026-06-23T11:13:43.140Z",
              "durationMs": 6,
              "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:13:43 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": "MAH_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:13:43.140Z",
              "endedAt": "2026-06-23T11:13:43.147Z",
              "durationMs": 7,
              "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:13:43 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 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": "MAH_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:13:43.147Z",
              "endedAt": "2026-06-23T11:13:43.151Z",
              "durationMs": 4,
              "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:13:43 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 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": "MAH_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:13:43.151Z",
              "endedAt": "2026-06-23T11:13:43.156Z",
              "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:13:43 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' \\\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": "MAH_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:13:43.156Z",
              "endedAt": "2026-06-23T11:13:43.160Z",
              "durationMs": 4,
              "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:13:43 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: 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": "MAH_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:13:43.160Z",
              "endedAt": "2026-06-23T11:13:43.236Z",
              "durationMs": 76,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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": "74",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:43.236Z",
              "endedAt": "2026-06-23T11:13:43.247Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:43.247Z",
              "endedAt": "2026-06-23T11:13:43.257Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_EMAIL_900A",
              "caseName": "Verify email OTP (Mahindra 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:13:43.258Z",
              "endedAt": "2026-06-23T11:13:43.336Z",
              "durationMs": 78,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "otp": "123456",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"MAH\"}"
              },
              "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:13:43 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": "75",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"otp\":\"123456\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"MAH\\\"}\"}'",
              "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": "MAH_EMAIL_900",
              "caseName": "Save email to user profile (Mahindra 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:13:43.336Z",
              "endedAt": "2026-06-23T11:13:43.366Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn"
              },
              "requestQuery": {
                "issuer_code": "MAH",
                "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:13:43 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": "24",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response should confirm user update",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_EMAIL_901",
              "caseName": "Get user to confirm email state (Mahindra 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:13:43.366Z",
              "endedAt": "2026-06-23T11:13:43.428Z",
              "durationMs": 62,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1637",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:43 GMT",
                "etag": "W/\"665-673uw+VbMnuAFoQiaOuPZwd0C6o\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:13:19.000Z",
                  "isActive": true,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": "DILIP@FIXERRA.INN",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": "1992-04-30",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:13:19.534Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "KALU NATHU RATHOD",
                  "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": "father",
                  "kin_first_name": "KALU",
                  "kin_middle_name": "NATHU",
                  "kin_last_name": "RATHOD",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:13:40.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": "2026-06-23T11:13:43.000Z",
                  "profile_updated_at": "2026-06-23T11:13:40.000Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:43:19.000Z",
                  "decrypted_pan": "BLXPR3438L",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "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:13:43.428Z",
              "endedAt": "2026-06-23T11:13:43.655Z",
              "durationMs": 227,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 GMT",
                "etag": "W/\"b3-gDXCwdt8/4XRLsNNmSrpw8MfIMI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "223",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213223464,
                  "endTime": 1782213223618,
                  "durationMs": 154,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.655Z",
              "endedAt": "2026-06-23T11:13:43.667Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.667Z",
              "endedAt": "2026-06-23T11:13:43.678Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "224",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:43 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.678Z",
              "endedAt": "2026-06-23T11:13:43.689Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.689Z",
              "endedAt": "2026-06-23T11:13:43.698Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.698Z",
              "endedAt": "2026-06-23T11:13:43.733Z",
              "durationMs": 35,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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": "32",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.733Z",
              "endedAt": "2026-06-23T11:13:43.745Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.745Z",
              "endedAt": "2026-06-23T11:13:43.756Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.756Z",
              "endedAt": "2026-06-23T11:13:43.766Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.766Z",
              "endedAt": "2026-06-23T11:13:43.829Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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": "60",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.829Z",
              "endedAt": "2026-06-23T11:13:43.839Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.839Z",
              "endedAt": "2026-06-23T11:13:43.933Z",
              "durationMs": 94,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:43.933Z",
              "endedAt": "2026-06-23T11:13:44.031Z",
              "durationMs": 98,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:43 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.031Z",
              "endedAt": "2026-06-23T11:13:44.131Z",
              "durationMs": 100,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.131Z",
              "endedAt": "2026-06-23T11:13:44.147Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 GMT",
                "etag": "W/\"c4-xYaIXKimfps6wqcLhqRWCuiRTEY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 429,
                "message": "Rate limit exceeded. Please try again in 30 minute(s).",
                "payload": {
                  "attemptsUsed": 0,
                  "otpSentCount": 3,
                  "retryAfter": "30 minute(s)",
                  "retryAfterSeconds": 1796
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.147Z",
              "endedAt": "2026-06-23T11:13:44.231Z",
              "durationMs": 84,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.231Z",
              "endedAt": "2026-06-23T11:13:44.237Z",
              "durationMs": 6,
              "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:13:44 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  -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:13:44.237Z",
              "endedAt": "2026-06-23T11:13:44.331Z",
              "durationMs": 94,
              "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:13:44 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 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:13:44.331Z",
              "endedAt": "2026-06-23T11:13:44.336Z",
              "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:13:44 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\":\"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:13:44.336Z",
              "endedAt": "2026-06-23T11:13:44.426Z",
              "durationMs": 90,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "87",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.426Z",
              "endedAt": "2026-06-23T11:13:44.458Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "29",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.458Z",
              "endedAt": "2026-06-23T11:13:44.484Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "23",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.484Z",
              "endedAt": "2026-06-23T11:13:44.542Z",
              "durationMs": 58,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "55",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.542Z",
              "endedAt": "2026-06-23T11:13:44.574Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "30",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.574Z",
              "endedAt": "2026-06-23T11:13:44.633Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "56",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.633Z",
              "endedAt": "2026-06-23T11:13:44.646Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.646Z",
              "endedAt": "2026-06-23T11:13:44.656Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "7",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.656Z",
              "endedAt": "2026-06-23T11:13:44.735Z",
              "durationMs": 79,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.735Z",
              "endedAt": "2026-06-23T11:13:44.766Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "28",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.766Z",
              "endedAt": "2026-06-23T11:13:44.783Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "14",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.783Z",
              "endedAt": "2026-06-23T11:13:44.849Z",
              "durationMs": 66,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "64",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.849Z",
              "endedAt": "2026-06-23T11:13:44.854Z",
              "durationMs": 5,
              "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:13:44 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  -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:13:44.854Z",
              "endedAt": "2026-06-23T11:13:44.859Z",
              "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:13:44 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:13:44.859Z",
              "endedAt": "2026-06-23T11:13:44.867Z",
              "durationMs": 8,
              "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:13:44 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/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:13:44.867Z",
              "endedAt": "2026-06-23T11:13:44.934Z",
              "durationMs": 67,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:44 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": "64",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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:13:44.934Z",
              "endedAt": "2026-06-23T11:13:45.028Z",
              "durationMs": 94,
              "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:13:44 GMT",
                "etag": "W/\"1dec-6L5HpDIk3r2sCYbyReIHmZ0mRLg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "91",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:44.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:13:44.942Z",
                  "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:13:45.028Z",
              "endedAt": "2026-06-23T11:13:45.043Z",
              "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:13:45 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:13:45.043Z",
              "endedAt": "2026-06-23T11:13:45.128Z",
              "durationMs": 85,
              "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:13:45 GMT",
                "etag": "W/\"1dec-7voPwZxVw+S6LMYe8B7x8mbNXD4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:45.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:13:45.051Z",
                  "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:13:45.128Z",
              "endedAt": "2026-06-23T11:13:45.192Z",
              "durationMs": 64,
              "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:13:45 GMT",
                "etag": "W/\"1dec-08SSV0NrEacKzJQjz5gP7CvaEgg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:45.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:13:45.135Z",
                  "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:13:45.192Z",
              "endedAt": "2026-06-23T11:13:45.276Z",
              "durationMs": 84,
              "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:13:45 GMT",
                "etag": "W/\"1dec-LNZY0rxRFovZ6ygONmaKwHKWRmE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:45.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:13:45.198Z",
                  "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:13:45.276Z",
              "endedAt": "2026-06-23T11:13:45.372Z",
              "durationMs": 96,
              "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:13:45 GMT",
                "etag": "W/\"1dec-KC/uq2D4eb6DirnzzIvLCLbdWvw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:45.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:13:45.285Z",
                  "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:13:45.372Z",
              "endedAt": "2026-06-23T11:13:45.382Z",
              "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:13:45 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:13:45.382Z",
              "endedAt": "2026-06-23T11:13:45.391Z",
              "durationMs": 9,
              "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:13:45 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": "6",
                "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:13:45.391Z",
              "endedAt": "2026-06-23T11:13:45.489Z",
              "durationMs": 98,
              "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:13:45 GMT",
                "etag": "W/\"1df6-cxM7a+hw/xIeBRo50Aw9nv07bdA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:45.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:13:45.398Z",
                  "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:13:45.489Z",
              "endedAt": "2026-06-23T11:13:45.555Z",
              "durationMs": 66,
              "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:13:45 GMT",
                "etag": "W/\"1de2-LqyYf/NWsP13iLkG6UDnVQ7dKuE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:45.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:13:45.495Z",
                  "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:13:45.555Z",
              "endedAt": "2026-06-23T11:13:45.608Z",
              "durationMs": 53,
              "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:13:45 GMT",
                "etag": "W/\"1de2-GT3Qcs+z193uHegKF5zIyng28o8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:45.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:13:45.563Z",
                  "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:13:45.609Z",
              "endedAt": "2026-06-23T11:13:45.671Z",
              "durationMs": 62,
              "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:13:45 GMT",
                "etag": "W/\"1de2-nemNby07I6wkMBdzF9X9XdO4dMw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:45.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:13:45.616Z",
                  "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:13:45.671Z",
              "endedAt": "2026-06-23T11:13:45.749Z",
              "durationMs": 78,
              "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:13:45 GMT",
                "etag": "W/\"1de2-nc7msRvup7i4aM6Qg8GvjACIoJE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:45.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:13:45.691Z",
                  "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:13:45.749Z",
              "endedAt": "2026-06-23T11:13:45.847Z",
              "durationMs": 98,
              "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:13:45 GMT",
                "etag": "W/\"1de2-PlBCBkAeqnpXi0AE8zgmLM6K93M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:45.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:13:45.761Z",
                  "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:13:45.847Z",
              "endedAt": "2026-06-23T11:13:45.945Z",
              "durationMs": 98,
              "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:13:45 GMT",
                "etag": "W/\"1de2-Fh0MjY+NmQY6g8vjmZ/x2J4mG5M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:45.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:13:45.854Z",
                  "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:13:45.945Z",
              "endedAt": "2026-06-23T11:13:45.998Z",
              "durationMs": 53,
              "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:13:45 GMT",
                "etag": "W/\"1de2-FGmS09gDjCL9YZ+RuXoMVp5d3n0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:45.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:13:45.952Z",
                  "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:13:45.998Z",
              "endedAt": "2026-06-23T11:13:46.073Z",
              "durationMs": 75,
              "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:13:46 GMT",
                "etag": "W/\"1de2-VHpddJ6yO1p0DhFUtV98yMHyC9g\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:46.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:13:46.026Z",
                  "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:13:46.073Z",
              "endedAt": "2026-06-23T11:13:46.166Z",
              "durationMs": 93,
              "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:13:46 GMT",
                "etag": "W/\"1de2-vVCCxJ+sQxM0E/5RlnfSFqRZWGw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:46.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:13:46.081Z",
                  "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:13:46.166Z",
              "endedAt": "2026-06-23T11:13:46.216Z",
              "durationMs": 50,
              "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:13:46 GMT",
                "etag": "W/\"1de2-l3oSa+U3mZNBQdXEPZ8i1QS3Tzo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "47",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:46.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:13:46.172Z",
                  "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:13:46.216Z",
              "endedAt": "2026-06-23T11:13:46.270Z",
              "durationMs": 54,
              "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:13:46 GMT",
                "etag": "W/\"1de2-pycNwgnbg0Xwrm97VHUok8/Svh0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:46.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:13:46.223Z",
                  "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:13:46.270Z",
              "endedAt": "2026-06-23T11:13:46.285Z",
              "durationMs": 15,
              "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:13:46 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": "11",
                "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:13:46.285Z",
              "endedAt": "2026-06-23T11:13:46.329Z",
              "durationMs": 44,
              "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:13:46 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": "41",
                "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:13:46.329Z",
              "endedAt": "2026-06-23T11:13:46.385Z",
              "durationMs": 56,
              "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:13:46 GMT",
                "etag": "W/\"1de2-fQOyI1Y3l+dYJDD9C9I84bcbb8Q\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:46.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:13:46.337Z",
                  "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:13:46.385Z",
              "endedAt": "2026-06-23T11:13:46.468Z",
              "durationMs": 83,
              "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:13:46 GMT",
                "etag": "W/\"1de2-+MDrGDtrN+1nF0zp45DYgfYvJuk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:46.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:13:46.426Z",
                  "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:13:46.468Z",
              "endedAt": "2026-06-23T11:13:46.538Z",
              "durationMs": 70,
              "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:13:46 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:13:46.538Z",
              "endedAt": "2026-06-23T11:13:46.609Z",
              "durationMs": 71,
              "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:13:46 GMT",
                "etag": "W/\"1de2-gGKiFil4WVD0rNDnV3QW7g0k9GY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:46.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:13:46.548Z",
                  "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:13:46.609Z",
              "endedAt": "2026-06-23T11:13:46.618Z",
              "durationMs": 9,
              "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:13:46 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": "6",
                "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:13:46.618Z",
              "endedAt": "2026-06-23T11:13:46.626Z",
              "durationMs": 8,
              "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:13:46 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": "5",
                "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:13:46.626Z",
              "endedAt": "2026-06-23T11:13:46.634Z",
              "durationMs": 8,
              "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:13:46 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": "5",
                "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:13:46.634Z",
              "endedAt": "2026-06-23T11:13:46.643Z",
              "durationMs": 9,
              "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:13:46 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": "5",
                "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:13:46.643Z",
              "endedAt": "2026-06-23T11:13:46.651Z",
              "durationMs": 8,
              "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:13:46 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": "5",
                "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:13:46.651Z",
              "endedAt": "2026-06-23T11:13:46.658Z",
              "durationMs": 7,
              "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:13:46 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": "4",
                "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:13:46.658Z",
              "endedAt": "2026-06-23T11:13:46.666Z",
              "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:13:46 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": "5",
                "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:13:46.666Z",
              "endedAt": "2026-06-23T11:13:46.731Z",
              "durationMs": 65,
              "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:13:46 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": "60",
                "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:13:46.731Z",
              "endedAt": "2026-06-23T11:13:46.744Z",
              "durationMs": 13,
              "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:13:46 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": "10",
                "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:13:46.744Z",
              "endedAt": "2026-06-23T11:13:46.752Z",
              "durationMs": 8,
              "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:13:46 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": "5",
                "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:13:46.752Z",
              "endedAt": "2026-06-23T11:13:46.760Z",
              "durationMs": 8,
              "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:13:46 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": "4",
                "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:13:46.760Z",
              "endedAt": "2026-06-23T11:13:46.840Z",
              "durationMs": 80,
              "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:13:46 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": "6",
                "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:13:46.840Z",
              "endedAt": "2026-06-23T11:13:46.847Z",
              "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:13:46 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": "4",
                "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:13:46.847Z",
              "endedAt": "2026-06-23T11:13:46.865Z",
              "durationMs": 18,
              "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:13:46 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": "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=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:13:46.865Z",
              "endedAt": "2026-06-23T11:13:46.949Z",
              "durationMs": 84,
              "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:13:46 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": "81",
                "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:13:46.950Z",
              "endedAt": "2026-06-23T11:13:46.964Z",
              "durationMs": 14,
              "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:13:46 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": "10",
                "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:13:46.964Z",
              "endedAt": "2026-06-23T11:13:47.048Z",
              "durationMs": 84,
              "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:13:47 GMT",
                "etag": "W/\"1de2-9xfiyPZVAPvrlRMARO5cbdS7g74\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:46.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:13:46.971Z",
                  "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:13:47.048Z",
              "endedAt": "2026-06-23T11:13:47.057Z",
              "durationMs": 9,
              "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:13:47 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": "6",
                "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:13:47.057Z",
              "endedAt": "2026-06-23T11:13:47.095Z",
              "durationMs": 38,
              "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:13:47 GMT",
                "etag": "W/\"1df6-RERIBkSIBVlSpavPwMUlcn0QgSM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "35",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:47.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:13:47.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' \\\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:13:47.095Z",
              "endedAt": "2026-06-23T11:13:47.201Z",
              "durationMs": 106,
              "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:13:47 GMT",
                "etag": "W/\"1df4-G4nDJMO49mnmfBNuXq7+VjiS4iI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:47.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": "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:13:47.131Z",
                  "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:13:47.201Z",
              "endedAt": "2026-06-23T11:13:47.298Z",
              "durationMs": 97,
              "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:13:47 GMT",
                "etag": "W/\"1dec-GF6f5s7uw+1LhikAoGr3rPwDoOY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:13:47.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:13:47.208Z",
                  "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:13:47.298Z",
              "endedAt": "2026-06-23T11:13:47.331Z",
              "durationMs": 33,
              "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:13:47 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:13:47.331Z",
              "endedAt": "2026-06-23T11:13:47.369Z",
              "durationMs": 38,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1638",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:47 GMT",
                "etag": "W/\"666-tpLEPUF2yQfb84Hsoa26quPwuJ8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:19.000Z",
                  "isActive": true,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": "qa.user@fixerra.in",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": "1992-04-30",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:13:19.534Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "KALU NATHU RATHOD",
                  "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": "father",
                  "kin_first_name": "KALU",
                  "kin_middle_name": "NATHU",
                  "kin_last_name": "RATHOD",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:13:40.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": "2026-06-23T11:13:45.000Z",
                  "profile_updated_at": "2026-06-23T11:13:40.000Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:43:19.000Z",
                  "decrypted_pan": "BLXPR3438L",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:47.369Z",
              "endedAt": "2026-06-23T11:13:47.460Z",
              "durationMs": 91,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1638",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:47 GMT",
                "etag": "W/\"666-tpLEPUF2yQfb84Hsoa26quPwuJ8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:13:19.000Z",
                  "isActive": true,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": "qa.user@fixerra.in",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": "1992-04-30",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:13:19.534Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "KALU NATHU RATHOD",
                  "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": "father",
                  "kin_first_name": "KALU",
                  "kin_middle_name": "NATHU",
                  "kin_last_name": "RATHOD",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:13:40.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": "2026-06-23T11:13:45.000Z",
                  "profile_updated_at": "2026-06-23T11:13:40.000Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:43:19.000Z",
                  "decrypted_pan": "BLXPR3438L",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:47.460Z",
              "endedAt": "2026-06-23T11:13:47.540Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "issuer_code": "SSFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1638",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:47 GMT",
                "etag": "W/\"666-tpLEPUF2yQfb84Hsoa26quPwuJ8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:13:19.000Z",
                  "isActive": true,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": "qa.user@fixerra.in",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": "1992-04-30",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:13:19.534Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "KALU NATHU RATHOD",
                  "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": "father",
                  "kin_first_name": "KALU",
                  "kin_middle_name": "NATHU",
                  "kin_last_name": "RATHOD",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:13:40.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": "2026-06-23T11:13:45.000Z",
                  "profile_updated_at": "2026-06-23T11:13:40.000Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:43:19.000Z",
                  "decrypted_pan": "BLXPR3438L",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:47.540Z",
              "endedAt": "2026-06-23T11:13:47.547Z",
              "durationMs": 7,
              "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:13:47 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' \\\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": []
            }
          ],
          "summary": {
            "total": 139,
            "passed": 139,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 6988
          }
        },
        {
          "stepId": "step-05-personal-details",
          "stepName": "Personal Details",
          "cases": [
            {
              "caseId": "MAH_PI_001",
              "caseName": "Get dropdown options for personal info form (Mahindra Finance)",
              "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:13:47.547Z",
              "endedAt": "2026-06-23T11:13:47.551Z",
              "durationMs": 4,
              "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:13:47 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": "2",
                "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": "MAH_PI_002",
              "caseName": "Save personal details for Mahindra Finance 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:13:47.551Z",
              "endedAt": "2026-06-23T11:13:47.626Z",
              "durationMs": 75,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:47 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": "73",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:47.626Z",
              "endedAt": "2026-06-23T11:13:47.658Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:47 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": "24",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response content type should be application/json",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:47.658Z",
              "endedAt": "2026-06-23T11:13:47.686Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:47 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": "22",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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"
                },
                {
                  "description": "Response should complete within 2000ms",
                  "passed": true,
                  "message": "duration=28ms"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:47.686Z",
              "endedAt": "2026-06-23T11:13:47.751Z",
              "durationMs": 65,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC",
                "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": "0",
                "content-security-policy": "default-src 'self'",
                "date": "Tue, 23 Jun 2026 11:13:47 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": "62",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&issuer_type=NBFC&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:47.751Z",
              "endedAt": "2026-06-23T11:13:47.780Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:47 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": "26",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:47.780Z",
              "endedAt": "2026-06-23T11:13:47.835Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:47 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:47.835Z",
              "endedAt": "2026-06-23T11:13:47.847Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:47 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:47.847Z",
              "endedAt": "2026-06-23T11:13:47.860Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:47 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:47.860Z",
              "endedAt": "2026-06-23T11:13:47.927Z",
              "durationMs": 67,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:47 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:47.927Z",
              "endedAt": "2026-06-23T11:13:47.955Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:47 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": "25",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:47.955Z",
              "endedAt": "2026-06-23T11:13:47.981Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:47 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": "23",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:47.981Z",
              "endedAt": "2026-06-23T11:13:48.029Z",
              "durationMs": 48,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:48 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": "45",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:48.029Z",
              "endedAt": "2026-06-23T11:13:48.133Z",
              "durationMs": 104,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:48 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:48.133Z",
              "endedAt": "2026-06-23T11:13:48.331Z",
              "durationMs": 198,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:48 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": "14",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:48.331Z",
              "endedAt": "2026-06-23T11:13:48.731Z",
              "durationMs": 400,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:48 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:48.731Z",
              "endedAt": "2026-06-23T11:13:49.031Z",
              "durationMs": 300,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:48 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:49.031Z",
              "endedAt": "2026-06-23T11:13:49.331Z",
              "durationMs": 300,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:49 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": "28",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:49.331Z",
              "endedAt": "2026-06-23T11:13:49.531Z",
              "durationMs": 200,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:49 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:49.531Z",
              "endedAt": "2026-06-23T11:13:49.833Z",
              "durationMs": 302,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:49 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:49.833Z",
              "endedAt": "2026-06-23T11:13:50.331Z",
              "durationMs": 498,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:49 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": "7",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:50.331Z",
              "endedAt": "2026-06-23T11:13:50.531Z",
              "durationMs": 200,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:50 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": "8",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:50.531Z",
              "endedAt": "2026-06-23T11:13:50.541Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:50 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": "8",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:50.542Z",
              "endedAt": "2026-06-23T11:13:50.631Z",
              "durationMs": 89,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:50 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": "9",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:50.631Z",
              "endedAt": "2026-06-23T11:13:50.646Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:50 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": "13",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:50.646Z",
              "endedAt": "2026-06-23T11:13:50.661Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:50 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": "11",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:50.661Z",
              "endedAt": "2026-06-23T11:13:50.754Z",
              "durationMs": 93,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:50 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": "90",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:50.754Z",
              "endedAt": "2026-06-23T11:13:50.765Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:50 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": "9",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:50.765Z",
              "endedAt": "2026-06-23T11:13:50.841Z",
              "durationMs": 76,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:50 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": "73",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:50.841Z",
              "endedAt": "2026-06-23T11:13:50.853Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:50 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": "9",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:50.853Z",
              "endedAt": "2026-06-23T11:13:50.946Z",
              "durationMs": 93,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:50 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": "91",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:50.946Z",
              "endedAt": "2026-06-23T11:13:50.958Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:50 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:50.958Z",
              "endedAt": "2026-06-23T11:13:51.026Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:50 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": "65",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.027Z",
              "endedAt": "2026-06-23T11:13:51.054Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:51 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": "25",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:51.054Z",
              "endedAt": "2026-06-23T11:13:51.067Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "10",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.067Z",
              "endedAt": "2026-06-23T11:13:51.147Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:51 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": "78",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:51.148Z",
              "endedAt": "2026-06-23T11:13:51.165Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "14",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.165Z",
              "endedAt": "2026-06-23T11:13:51.235Z",
              "durationMs": 70,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:51 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": "67",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:51.235Z",
              "endedAt": "2026-06-23T11:13:51.248Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.248Z",
              "endedAt": "2026-06-23T11:13:51.277Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:51 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": "27",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:51.277Z",
              "endedAt": "2026-06-23T11:13:51.327Z",
              "durationMs": 50,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "47",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.327Z",
              "endedAt": "2026-06-23T11:13:51.339Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "9",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.339Z",
              "endedAt": "2026-06-23T11:13:51.433Z",
              "durationMs": 94,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:51 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": "92",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:51.433Z",
              "endedAt": "2026-06-23T11:13:51.445Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "9",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.445Z",
              "endedAt": "2026-06-23T11:13:51.473Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:51 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": "26",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:51.473Z",
              "endedAt": "2026-06-23T11:13:51.484Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "8",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.484Z",
              "endedAt": "2026-06-23T11:13:51.541Z",
              "durationMs": 57,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "53",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.541Z",
              "endedAt": "2026-06-23T11:13:51.551Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.551Z",
              "endedAt": "2026-06-23T11:13:51.628Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "74",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.629Z",
              "endedAt": "2026-06-23T11:13:51.640Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.640Z",
              "endedAt": "2026-06-23T11:13:51.651Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "7",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.651Z",
              "endedAt": "2026-06-23T11:13:51.731Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "8",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.731Z",
              "endedAt": "2026-06-23T11:13:51.745Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "8",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.745Z",
              "endedAt": "2026-06-23T11:13:51.756Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "7",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.756Z",
              "endedAt": "2026-06-23T11:13:51.767Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "8",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.768Z",
              "endedAt": "2026-06-23T11:13:51.784Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "14",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.784Z",
              "endedAt": "2026-06-23T11:13:51.840Z",
              "durationMs": 56,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "53",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.840Z",
              "endedAt": "2026-06-23T11:13:51.944Z",
              "durationMs": 104,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:51 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": "100",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:51.944Z",
              "endedAt": "2026-06-23T11:13:51.955Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:51 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": "8",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:51.955Z",
              "endedAt": "2026-06-23T11:13:51.982Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:51 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": "25",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:51.982Z",
              "endedAt": "2026-06-23T11:13:52.143Z",
              "durationMs": 161,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:52 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": "158",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:52.143Z",
              "endedAt": "2026-06-23T11:13:52.250Z",
              "durationMs": 107,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:52 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": "104",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:52.250Z",
              "endedAt": "2026-06-23T11:13:52.262Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:52 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": "9",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:52.262Z",
              "endedAt": "2026-06-23T11:13:52.344Z",
              "durationMs": 82,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:52 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": "80",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:52.344Z",
              "endedAt": "2026-06-23T11:13:52.357Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:52 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": "10",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:52.357Z",
              "endedAt": "2026-06-23T11:13:52.377Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:52 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:52.377Z",
              "endedAt": "2026-06-23T11:13:52.435Z",
              "durationMs": 58,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:52 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": "55",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:52.435Z",
              "endedAt": "2026-06-23T11:13:52.536Z",
              "durationMs": 101,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:52 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": "97",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:52.536Z",
              "endedAt": "2026-06-23T11:13:52.736Z",
              "durationMs": 200,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:52 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": "197",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:52.736Z",
              "endedAt": "2026-06-23T11:13:53.030Z",
              "durationMs": 294,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:52 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": "291",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:53.030Z",
              "endedAt": "2026-06-23T11:13:53.045Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:53.045Z",
              "endedAt": "2026-06-23T11:13:53.056Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:53.056Z",
              "endedAt": "2026-06-23T11:13:53.075Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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": "15",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:53.075Z",
              "endedAt": "2026-06-23T11:13:53.130Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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": "51",
                "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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:53.130Z",
              "endedAt": "2026-06-23T11:13:53.138Z",
              "durationMs": 8,
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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": "5",
                "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=MAH&issuer_type=NBFC' \\\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": "MAH_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:13:53.138Z",
              "endedAt": "2026-06-23T11:13:53.143Z",
              "durationMs": 5,
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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=MAH&issuer_type=NBFC' \\\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": "MAH_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:13:53.143Z",
              "endedAt": "2026-06-23T11:13:53.150Z",
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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=MAH&issuer_type=NBFC' \\\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": "MAH_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:13:53.151Z",
              "endedAt": "2026-06-23T11:13:53.170Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:53.171Z",
              "endedAt": "2026-06-23T11:13:53.240Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:53 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": "67",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Required response headers should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:53.240Z",
              "endedAt": "2026-06-23T11:13:53.253Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:53.253Z",
              "endedAt": "2026-06-23T11:13:53.330Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:53 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": "26",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:53.331Z",
              "endedAt": "2026-06-23T11:13:53.430Z",
              "durationMs": 99,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "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:13:53 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": "25",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:13:53.430Z",
              "endedAt": "2026-06-23T11:13:53.449Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:13:53.449Z",
              "endedAt": "2026-06-23T11:13:53.462Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:53 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=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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"
              ]
            }
          ],
          "summary": {
            "total": 84,
            "passed": 84,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 5906
          }
        },
        {
          "stepId": "step-06-aadhaar-kyc",
          "stepName": "Aadhaar KYC (Digilocker)",
          "cases": [
            {
              "caseId": "MAH_KYC_001",
              "caseName": "Mahindra Aadhaar gate: fresh user has is_aadhaar_xml_present falsy",
              "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:13:53.462Z",
              "endedAt": "2026-06-23T11:13:53.547Z",
              "durationMs": 85,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1638",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:53 GMT",
                "etag": "W/\"666-tpLEPUF2yQfb84Hsoa26quPwuJ8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:13:19.000Z",
                  "isActive": true,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:c7ffdd78ce0e0d9c1095a78979a7040d",
                  "email": "qa.user@fixerra.in",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "DILIP",
                  "middle_name": "KALU",
                  "last_name": "RATHOD",
                  "pan_first_name": "DILIP",
                  "pan_middle_name": "KALU",
                  "pan_last_name": "RATHOD",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": "1992-04-30",
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:13:19.534Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "KALU NATHU RATHOD",
                  "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": "father",
                  "kin_first_name": "KALU",
                  "kin_middle_name": "NATHU",
                  "kin_last_name": "RATHOD",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:13:40.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": null,
                  "user_email_verification_date": "2026-06-23T11:13:45.000Z",
                  "profile_updated_at": "2026-06-23T11:13:40.000Z",
                  "mother_name": null,
                  "education": null,
                  "source_of_income": null,
                  "is_broker": false,
                  "is_aadhaar_xml_present": false,
                  "created_at_ist": "2026-06-23T16:43:19.000Z",
                  "decrypted_pan": "BLXPR3438L",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                },
                {
                  "description": "is_aadhaar_xml_present should be falsy for a fresh NTB user (UI routes to Aadhaar screen)",
                  "passed": true,
                  "message": "is_aadhaar_xml_present=false — Aadhaar step correctly required"
                }
              ],
              "docsFile": "user-services/API_QA_PI_GET_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_002",
              "caseName": "Verify Digilocker URL generation with valid token",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:53.547Z",
              "endedAt": "2026-06-23T11:13:53.725Z",
              "durationMs": 178,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:53 GMT",
                "etag": "W/\"1a5-7OTfIf0R3eVXHmz+4+yH9TlBcWc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "176",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=NCcTcyKUvQfM0m4_zHKgukRx5KRx_gZSTXJYGgjy4QE&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a71a2aed6dade6966b7"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "HTTP status should be 200/201 (contract status is body.statusCode)",
                  "passed": true,
                  "message": "HTTP 201"
                },
                {
                  "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.url should be present and non-empty",
                  "passed": true,
                  "message": "url length=357"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_003",
              "caseName": "Verify Digilocker URL starts with HTTPS",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:53.726Z",
              "endedAt": "2026-06-23T11:13:53.884Z",
              "durationMs": 158,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:53 GMT",
                "etag": "W/\"1a5-dezfAobbtJV3AGuuTpDiD2OPqck\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=bYOSgcJreUfMGwuswjgRPq_sqd7eqlz_3NpAx_M0wNk&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a71a2aed6dade6966bb"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "payload.url should start with https://",
                  "passed": true,
                  "message": "URL starts with https://"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_004",
              "caseName": "Verify Digilocker URL format validity",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:53.885Z",
              "endedAt": "2026-06-23T11:13:54.067Z",
              "durationMs": 182,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:54 GMT",
                "etag": "W/\"1a5-A0fXPXCSboWVVGkbA7AZKW+fr7E\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=9bksjZXZlqiJih1R3zA-ugqztg_2QxTcTYUtLSKcRdo&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a71a2aed6dade6966bf"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "payload.url should be a well-formed URL",
                  "passed": true,
                  "message": "URL is well-formed"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_005",
              "caseName": "Verify response content type",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:54.067Z",
              "endedAt": "2026-06-23T11:13:54.225Z",
              "durationMs": 158,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:54 GMT",
                "etag": "W/\"1a5-GaZ0Oa0VL1JJZfwOjCWIVD8Nbyc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "155",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=igEVFjq8pAAt-eU7BzFTVq4le1iUTPMIJOpF_RJ05Bo&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a72a2aed6dade6966c3"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response content type should be application/json",
                  "passed": true,
                  "message": "application/json response"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_006",
              "caseName": "Verify response time (external Signzy session creation)",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:54.225Z",
              "endedAt": "2026-06-23T11:13:54.382Z",
              "durationMs": 157,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:54 GMT",
                "etag": "W/\"1a5-xnc/nWaqgC8bHxuLyh++vQN7ZcQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "155",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=y8o4tPkV_1qJzSuq8yQaJFljbJh1YAKpq-8RDUVpVUA&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a72a2aed6dade6966c7"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response should complete within 5000ms",
                  "passed": true,
                  "message": "duration=157ms"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_007",
              "caseName": "Verify URL does not expose personal data in plain text",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:54.382Z",
              "endedAt": "2026-06-23T11:13:54.543Z",
              "durationMs": 161,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:54 GMT",
                "etag": "W/\"1a5-J3NJItgH0pkWw1pvhIFO/CoYw3o\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "158",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=AxwmF_x4H1OWdkNy3W0Vl1EoheHvrLC0jpLTAPHBDIM&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a72a2aed6dade6966cb"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Digilocker URL should not contain PAN or mobile number in plain text",
                  "passed": true,
                  "message": "No PAN/mobile in plain text in URL"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_008",
              "caseName": "Verify response does not expose JWT token",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:54.544Z",
              "endedAt": "2026-06-23T11:13:54.690Z",
              "durationMs": 146,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:54 GMT",
                "etag": "W/\"1a5-Z39w2Y+qI/FHeVN87X2iIZQd8TA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=lGgM5lz9SXYxHKPrEYvOSzPzQlPCSEgM1UzmhkE8hjE&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a72a2aed6dade6966cf"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response should not expose the JWT access token",
                  "passed": true,
                  "message": "JWT token not present in response body"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_009",
              "caseName": "Verify repeated calls generate a Digilocker URL successfully",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:54.691Z",
              "endedAt": "2026-06-23T11:13:54.844Z",
              "durationMs": 153,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:54 GMT",
                "etag": "W/\"1a5-/VT2hI5+JvnPNRtlIsniettsmaE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "151",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=Jxk3z2ANobzsUF53UNvbrKU6HFHcZ7nCzB022CKk748&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a72a2aed6dade6966d3"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "HTTP status should be 200/201 (contract status is body.statusCode)",
                  "passed": true,
                  "message": "HTTP 201"
                },
                {
                  "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.url should be present and non-empty",
                  "passed": true,
                  "message": "url length=357"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_010",
              "caseName": "Verify missing source query is rejected with FIXUSER1091 (quirk: success stays 1)",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:54.844Z",
              "endedAt": "2026-06-23T11:13:54.872Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "67",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:54 GMT",
                "etag": "W/\"43-ASewrGSLEbgCj0SGo97MalFtTDA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 400,
                "message": "",
                "payload": "FIXUSER1091"
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Body statusCode should be 400",
                  "passed": true,
                  "message": "statusCode=400"
                },
                {
                  "description": "Error payload should carry FIXUSER1091 (URL creation failure code)",
                  "passed": true,
                  "message": "FIXUSER1091 present"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_011",
              "caseName": "Verify Authorization header mandatory",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:54.872Z",
              "endedAt": "2026-06-23T11:13:54.877Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "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:13:54 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/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_012",
              "caseName": "Verify invalid JWT token",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:54.877Z",
              "endedAt": "2026-06-23T11:13:54.882Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer invalid.jwt.token"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "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:13:54 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/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer invalid.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_013",
              "caseName": "Verify expired JWT token",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:54.882Z",
              "endedAt": "2026-06-23T11:13:54.887Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer expired.jwt.token"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "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:13:54 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/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_014",
              "caseName": "Verify Bearer keyword missing",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:54.887Z",
              "endedAt": "2026-06-23T11:13:54.931Z",
              "durationMs": 44,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "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:13:54 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/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_015",
              "caseName": "Verify invalid Bearer format (Basic scheme)",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:54.931Z",
              "endedAt": "2026-06-23T11:13:54.937Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Basic dXNlcjpwYXNz"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "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:13:54 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/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Basic dXNlcjpwYXNz'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_020",
              "caseName": "Verify Digilocker status reflects initiated session",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:54.937Z",
              "endedAt": "2026-06-23T11:13:54.989Z",
              "durationMs": 52,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "326",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:54 GMT",
                "etag": "W/\"146-r4QQ2JwIY0fsdv1xaCvHS63Zw4M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "digilocker_initiated": true,
                  "verified": false,
                  "error": {
                    "errorCode": "FIXUSER1500",
                    "error": "DIGILOKER_TIMED_OUT",
                    "f_error_message": "Digilocker initiated but not processed yet",
                    "f_error_reason": "DIGILOKER_TIMED_OUT"
                  }
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "HTTP status should be 200/201 (contract status is body.statusCode)",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "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.digilocker_initiated should be true after URL creation",
                  "passed": true,
                  "message": "digilocker_initiated=true"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_021",
              "caseName": "Verify Digilocker status is unverified until external completion",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:54.989Z",
              "endedAt": "2026-06-23T11:13:55.027Z",
              "durationMs": 38,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "326",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:55 GMT",
                "etag": "W/\"146-r4QQ2JwIY0fsdv1xaCvHS63Zw4M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "35",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "digilocker_initiated": true,
                  "verified": false,
                  "error": {
                    "errorCode": "FIXUSER1500",
                    "error": "DIGILOKER_TIMED_OUT",
                    "f_error_message": "Digilocker initiated but not processed yet",
                    "f_error_reason": "DIGILOKER_TIMED_OUT"
                  }
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "payload.verified should be false with error context before webhook completion",
                  "passed": true,
                  "message": "verified=false with in-progress error context"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_022",
              "caseName": "Verify Digilocker status missing JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:55.028Z",
              "endedAt": "2026-06-23T11:13:55.035Z",
              "durationMs": 7,
              "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:13: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 GET 'https://users-api.dev.fixerra.in/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_023",
              "caseName": "Verify Digilocker status invalid JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:55.035Z",
              "endedAt": "2026-06-23T11:13:55.040Z",
              "durationMs": 4,
              "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:13: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": "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/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer bad.jwt'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_016",
              "caseName": "Verify Digilocker response envelope datatypes",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:55.040Z",
              "endedAt": "2026-06-23T11:13:55.186Z",
              "durationMs": 146,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:55 GMT",
                "etag": "W/\"1a5-k49WwD3+eqRNBlTpqyuC29JGOb4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=aDZcYM9MZr0Rgqg0ka2lM_aVtFT-NByo_5wlpY1-Idk&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a73a2aed6dade6966d7"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "success should have the expected datatype",
                  "passed": true,
                  "message": "success datatype OK"
                },
                {
                  "description": "statusCode should have the expected datatype",
                  "passed": true,
                  "message": "statusCode datatype OK"
                },
                {
                  "description": "message should have the expected datatype",
                  "passed": true,
                  "message": "message datatype OK"
                },
                {
                  "description": "payload.url should have the expected datatype",
                  "passed": true,
                  "message": "payload.url datatype OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_017",
              "caseName": "Verify Digilocker response does not leak PAN or mobile number",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:55.186Z",
              "endedAt": "2026-06-23T11:13:55.351Z",
              "durationMs": 165,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:55 GMT",
                "etag": "W/\"1a5-PQU4ja9EpVBHIIT/df3bHadDp3k\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "162",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=d3jxM4kn69lXfIXcy2uIYJVVJ7P_c0A5csAiJ_sV64M&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a73a2aed6dade6966db"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response should not expose PAN or mobile number",
                  "passed": true,
                  "message": "No PAN/mobile leakage in response body"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_018",
              "caseName": "Verify SQL injection through headers on Digilocker URL generation",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:55.351Z",
              "endedAt": "2026-06-23T11:13:55.496Z",
              "durationMs": 145,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-QA-Test": "' OR '1'='1' --",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:55 GMT",
                "etag": "W/\"1a5-wlWwZoIEE2uMm/a3Mlq4Tm4k/2A\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=IYZtyno280o0NQKyMeN8U3VpRA-tfFVG_7mAyWbspsw&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a73a2aed6dade6966df"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-QA-Test: '\\'' OR '\\''1'\\''='\\''1'\\'' --' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "SQL injection header should either be rejected or safely ignored",
                  "passed": true,
                  "message": "SQL injection header safely ignored by API (status 201, success=1)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_019",
              "caseName": "Verify XSS injection through headers on Digilocker URL generation",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:55.497Z",
              "endedAt": "2026-06-23T11:13:55.645Z",
              "durationMs": 148,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-QA-Test": "<script>alert(1)</script>",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:55 GMT",
                "etag": "W/\"1a5-0VZq2lLN/9FfJAGhlFgAG1WnCgM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "145",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=g0whrCICl2-omPBsFiJUYGUDoQaKzWXnean9cf13MEs&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a73a2aed6dade6966e3"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-QA-Test: <script>alert(1)</script>' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "XSS injection header should either be rejected or safely ignored",
                  "passed": true,
                  "message": "XSS injection header safely ignored by API (status 201, success=1)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_024",
              "caseName": "Verify HTML injection through headers on Digilocker URL generation",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:55.645Z",
              "endedAt": "2026-06-23T11:13:55.795Z",
              "durationMs": 150,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-QA-Test": "<img src=x onerror=alert(1)>",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:55 GMT",
                "etag": "W/\"1a5-xTwTU1wlTvZgdOVy1ZY00Ip1Fck\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "147",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=kk2vSOmvLOCH3lFex7kx1M96F3JawIn9kZC9HZ8FxVE&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a73a2aed6dade6966e7"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-QA-Test: <img src=x onerror=alert(1)>' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "HTML injection header should either be rejected or safely ignored",
                  "passed": true,
                  "message": "HTML injection header safely ignored by API (status 201, success=1)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_025",
              "caseName": "Verify header tampering (X-Forwarded-For / X-Forwarded-Host) on Digilocker URL generation",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:55.795Z",
              "endedAt": "2026-06-23T11:13:55.949Z",
              "durationMs": 154,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-Forwarded-For": "127.0.0.1, malicious.example.com",
                "X-Forwarded-Host": "malicious.example.com",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:55 GMT",
                "etag": "W/\"1a5-zZoJ8eMlu8RyArxRhFAwgLii7B4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "151",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=_h-oUjCDYik3APcf7obaxa5gQEl_093p9fTFunzbLhg&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a73a2aed6dade6966eb"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-Forwarded-For: 127.0.0.1, malicious.example.com' \\\n  -H 'X-Forwarded-Host: malicious.example.com' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Header tampering should either be rejected or safely ignored",
                  "passed": true,
                  "message": "Header tampering safely ignored by API (status 201, success=1)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_026",
              "caseName": "Verify Digilocker URL generation behavior under burst traffic",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:55.949Z",
              "endedAt": "2026-06-23T11:13:56.570Z",
              "durationMs": 621,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:56 GMT",
                "etag": "W/\"1a5-x9Fi44LXU7e00xIIiqGDe0WP4/E\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "331",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=adTX_BrTcv7L9j3Eu1UMz3l6mbSz4d6p44kRMDwzhUg&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a74a2aed6dade6966fd"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_027",
              "caseName": "Verify HTTP method GET instead of POST for Digilocker URL generation",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 404,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:13:56.570Z",
              "endedAt": "2026-06-23T11:13:56.576Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "404",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:56 GMT",
                "etag": "W/\"194-sWc6t74C7BeqG0JqlOA0sPvrg6Y\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot GET /api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot GET /api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_028",
              "caseName": "Verify HTTP method PUT instead of POST for Digilocker URL generation",
              "service": "user-services",
              "method": "PUT",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 404,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:13:56.577Z",
              "endedAt": "2026-06-23T11:13:56.585Z",
              "durationMs": 8,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "404",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:56 GMT",
                "etag": "W/\"194-Fi0y/LG7Z/z4FKroLJrcccH+D0Q\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot PUT /api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot PUT /api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_029",
              "caseName": "Verify HTTP method DELETE instead of POST for Digilocker URL generation",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 404,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:13:56.586Z",
              "endedAt": "2026-06-23T11:13:56.731Z",
              "durationMs": 145,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "410",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:56 GMT",
                "etag": "W/\"19a-22+eSzTtngemE9TRpZvzBtr7Ts8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot DELETE /api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot DELETE /api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_032",
              "caseName": "Verify invalid digilocker query value is tolerated",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:56.731Z",
              "endedAt": "2026-06-23T11:13:56.873Z",
              "durationMs": 142,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "not-a-flag",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:56 GMT",
                "etag": "W/\"1a5-QUQ7jjTcTvpYOnginhoY1w1IazQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=EB4qInY159hz1D39d_AlqVubAtV4LSGyeTt7eexls28&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a74a2aed6dade696703"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=not-a-flag&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Invalid digilocker query value (acceptable per current API design)",
                  "passed": true,
                  "message": "Status 201 acceptable for Invalid digilocker query value"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_033",
              "caseName": "Verify empty event_id query value is tolerated",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:56.873Z",
              "endedAt": "2026-06-23T11:13:57.008Z",
              "durationMs": 135,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": ""
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"1a5-yQzzkF/q+TBj4ByMRrB4RbyTDlM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=kZXprfLkLLIiDb8RZx0H0mqCmOy3WWVwExeuAalvm5w&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a74a2aed6dade696707"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Empty event_id (acceptable per current API design)",
                  "passed": true,
                  "message": "Status 201 acceptable for Empty event_id"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_034",
              "caseName": "Verify SQL injection in source query param is handled gracefully",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:57.008Z",
              "endedAt": "2026-06-23T11:13:57.140Z",
              "durationMs": 132,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "' OR '1'='1' --",
                "digilocker": "1",
                "event_id": "cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"1a5-UvUGNwgvGixxK/VNEI7N4DVzCJI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=uOcdNTHINdMI2WQZqFfNWFeBnp6D3OidOlQPZtK5-vs&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a75a2aed6dade69670b"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%27+OR+%271%27%3D%271%27+--&digilocker=1&event_id=cc7942eb-33c2-4ecf-9f09-72daed8f9ac2-1782213208079' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "SQL injection in source query param should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 201)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_035",
              "caseName": "Verify XSS payload in event_id query param is handled gracefully",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:13:57.140Z",
              "endedAt": "2026-06-23T11:13:57.263Z",
              "durationMs": 123,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "source": "/signUp?fdBookMaturity=false",
                "digilocker": "1",
                "event_id": "<script>alert(1)</script>"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "421",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"1a5-XboZFyXeQWeloneaPsGN0a2vViI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "120",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?client_id=7E5773C4&code_challenge=JoX0aMGBmYptjDRPS03OlL3em3LR_bfVVqylQOZMIp0&code_challenge_method=S256&dl_flow=signup&pla&redirect_uri=https%3A%2F%2Fdigilocker-preproduction.signzy.tech%2Fdigilocker-auth-complete&req_doctype=PANCR%2CADHAR%2CDRVLC&response_type=code&state=6a3a6a75a2aed6dade69670f"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker?source=%2FsignUp%3FfdBookMaturity%3Dfalse&digilocker=1&event_id=%3Cscript%3Ealert%281%29%3C%2Fscript%3E' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "XSS payload in event_id query param should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 201)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_040",
              "caseName": "Verify HTTP method POST instead of GET for Digilocker status",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 404,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:13:57.263Z",
              "endedAt": "2026-06-23T11:13:57.331Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "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:13:57 GMT",
                "etag": "W/\"be-rG6amwzoqNskzJmomszCA31fUp8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot POST /api/v1/digilocker/status",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot POST /api/v1/digilocker/status",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_041",
              "caseName": "Verify HTTP method PUT instead of GET for Digilocker status",
              "service": "user-services",
              "method": "PUT",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 404,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:13:57.331Z",
              "endedAt": "2026-06-23T11:13:57.336Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "188",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"bc-QIwhp4o/ze2u/EgrdrCgX/FecyE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot PUT /api/v1/digilocker/status",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot PUT /api/v1/digilocker/status",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_042",
              "caseName": "Verify Digilocker status response envelope datatypes",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:57.336Z",
              "endedAt": "2026-06-23T11:13:57.372Z",
              "durationMs": 36,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "326",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"146-r4QQ2JwIY0fsdv1xaCvHS63Zw4M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "digilocker_initiated": true,
                  "verified": false,
                  "error": {
                    "errorCode": "FIXUSER1500",
                    "error": "DIGILOKER_TIMED_OUT",
                    "f_error_message": "Digilocker initiated but not processed yet",
                    "f_error_reason": "DIGILOKER_TIMED_OUT"
                  }
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "success should have the expected datatype",
                  "passed": true,
                  "message": "success datatype OK"
                },
                {
                  "description": "statusCode should have the expected datatype",
                  "passed": true,
                  "message": "statusCode datatype OK"
                },
                {
                  "description": "message should have the expected datatype",
                  "passed": true,
                  "message": "message datatype OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_043",
              "caseName": "Verify Digilocker status rejects when Bearer keyword is missing",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:57.372Z",
              "endedAt": "2026-06-23T11:13:57.378Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:57 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/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_044",
              "caseName": "Verify Digilocker status rejects Basic auth scheme",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:57.378Z",
              "endedAt": "2026-06-23T11:13:57.431Z",
              "durationMs": 53,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Basic dXNlcjpwYXNz"
              },
              "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:13:57 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": "1",
                "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/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Basic dXNlcjpwYXNz'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "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 an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_045",
              "caseName": "Verify Digilocker status response time",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:57.431Z",
              "endedAt": "2026-06-23T11:13:57.475Z",
              "durationMs": 44,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "326",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"146-r4QQ2JwIY0fsdv1xaCvHS63Zw4M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "digilocker_initiated": true,
                  "verified": false,
                  "error": {
                    "errorCode": "FIXUSER1500",
                    "error": "DIGILOKER_TIMED_OUT",
                    "f_error_message": "Digilocker initiated but not processed yet",
                    "f_error_reason": "DIGILOKER_TIMED_OUT"
                  }
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response should complete within 3000ms",
                  "passed": true,
                  "message": "duration=44ms"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_046",
              "caseName": "Verify Digilocker status behavior under burst traffic",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/api/v1/digilocker/status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:57.475Z",
              "endedAt": "2026-06-23T11:13:57.661Z",
              "durationMs": 186,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "326",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"146-r4QQ2JwIY0fsdv1xaCvHS63Zw4M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "122",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "digilocker_initiated": true,
                  "verified": false,
                  "error": {
                    "errorCode": "FIXUSER1500",
                    "error": "DIGILOKER_TIMED_OUT",
                    "f_error_message": "Digilocker initiated but not processed yet",
                    "f_error_reason": "DIGILOKER_TIMED_OUT"
                  }
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/api/v1/digilocker/status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_061",
              "caseName": "Save verified bank account for fresh user (Mahindra)",
              "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:13:57.661Z",
              "endedAt": "2026-06-23T11:13:57.760Z",
              "durationMs": 99,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "account": "10076324285",
                "ifsc": "IDFB0040112",
                "account_holder_full_name": "QA Test User",
                "consent_checked": true,
                "fd_info": "{\"issuer\":{\"f_code\":\"MAH\"}}"
              },
              "requestQuery": {
                "issuer_code": "MAH",
                "issuer_type": "NBFC"
              },
              "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:13:57 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": "95",
                "server": "envoy"
              },
              "responseBody": {
                "verified": true
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=MAH&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"account\":\"10076324285\",\"ifsc\":\"IDFB0040112\",\"account_holder_full_name\":\"QA Test User\",\"consent_checked\":true,\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"MAH\\\"}}\"}'",
              "validations": [
                {
                  "description": "Bank save should succeed (200/201, verified)",
                  "passed": true,
                  "message": "Bank saved (HTTP 201)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_KYC_062",
              "caseName": "Get bank accounts for Mahindra payout",
              "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:13:57.760Z",
              "endedAt": "2026-06-23T11:13:57.864Z",
              "durationMs": 104,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "decrypt": "true",
                "page_name": "review_bank",
                "issuer_code": "MAH"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "457",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"1c9-p3TocaDtymjCK0Z1pNITM3Nbfnw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_bank_id": "17da5484-27af-4867-8f7c-3d8022f6051f",
                    "account_number": "10076324285",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "bank_logo": "https://images.fixerra.in/bank_logos_payu/idfc-bank-apps-circle.svg",
                    "bank_alias": "IDFC",
                    "code": "IDFCNB",
                    "unsupported": false
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?decrypt=true&page_name=review_bank&issuer_code=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "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:13:57.864Z",
              "endedAt": "2026-06-23T11:13:57.876Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "726",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"2d6-y3J9XP1hkQNCugHtHx+fOzgKGnU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 70482,
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_bank_id": "17da5484-27af-4867-8f7c-3d8022f6051f",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:58.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:57.876Z",
              "endedAt": "2026-06-23T11:13:57.888Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "page": "1",
                "limit": "10"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "726",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"2d6-y3J9XP1hkQNCugHtHx+fOzgKGnU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 70482,
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_bank_id": "17da5484-27af-4867-8f7c-3d8022f6051f",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:58.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:57.888Z",
              "endedAt": "2026-06-23T11:13:57.899Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "page": "0",
                "limit": "0"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "726",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"2d6-y3J9XP1hkQNCugHtHx+fOzgKGnU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 70482,
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_bank_id": "17da5484-27af-4867-8f7c-3d8022f6051f",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:58.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:57.899Z",
              "endedAt": "2026-06-23T11:13:57.954Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "decrypt": "true"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "790",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"316-oyOXv6jF8i7srIwPeU8aD5IIFFw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70482,
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_bank_id": "17da5484-27af-4867-8f7c-3d8022f6051f",
                    "account_number": "10076324285",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:58.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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"
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:57.955Z",
              "endedAt": "2026-06-23T11:13:57.986Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "decrypt": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "790",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:57 GMT",
                "etag": "W/\"316-oyOXv6jF8i7srIwPeU8aD5IIFFw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70482,
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_bank_id": "17da5484-27af-4867-8f7c-3d8022f6051f",
                    "account_number": "10076324285",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:58.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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"
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:57.986Z",
              "endedAt": "2026-06-23T11:13:58.324Z",
              "durationMs": 338,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "issuer_code": "USFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "463",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:58 GMT",
                "etag": "W/\"1cf-ehAgeZxqI3dDyB5J4IrVnGwh4Ak\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "336",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "f_user_bank_id": "17da5484-27af-4867-8f7c-3d8022f6051f",
                    "account_number": "10076324285",
                    "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": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "is_default": true,
                    "verified": true,
                    "acc_holder_name": "QA Test User",
                    "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:58.324Z",
              "endedAt": "2026-06-23T11:13:58.365Z",
              "durationMs": 41,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:58 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": "38",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:58.365Z",
              "endedAt": "2026-06-23T11:13:58.460Z",
              "durationMs": 95,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "issuer_code": "USFB",
                "decrypt": "true"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "463",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:58 GMT",
                "etag": "W/\"1cf-ehAgeZxqI3dDyB5J4IrVnGwh4Ak\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "f_user_bank_id": "17da5484-27af-4867-8f7c-3d8022f6051f",
                    "account_number": "10076324285",
                    "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": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "is_default": true,
                    "verified": true,
                    "acc_holder_name": "QA Test User",
                    "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:58.460Z",
              "endedAt": "2026-06-23T11:13:58.502Z",
              "durationMs": 42,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:58 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": "39",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:58.502Z",
              "endedAt": "2026-06-23T11:13:58.516Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "page_name": "review"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "735",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:58 GMT",
                "etag": "W/\"2df-E9QTZz0IfbZXfh9s+xAGWFjzThI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 70482,
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_bank_id": "17da5484-27af-4867-8f7c-3d8022f6051f",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:13:58.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
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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:13:58.516Z",
              "endedAt": "2026-06-23T11:13:58.526Z",
              "durationMs": 10,
              "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:13:58 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": "7",
                "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:13:58.526Z",
              "endedAt": "2026-06-23T11:13:58.531Z",
              "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:13:58 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:13:58.531Z",
              "endedAt": "2026-06-23T11:13:58.537Z",
              "durationMs": 6,
              "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:13:58 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/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": 55,
            "passed": 55,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 5065
          }
        },
        {
          "stepId": "step-07-lead-phase",
          "stepName": "Mahindra Lead and KYC Context",
          "cases": [
            {
              "caseId": "MAH_LEAD_001",
              "caseName": "Create Mahindra lead and KYC context (Jump MAH/lead-and-kyc)",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:58.537Z",
              "endedAt": "2026-06-23T11:13:58.645Z",
              "durationMs": 108,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:58 GMT",
                "etag": "W/\"bb-Lsyi1YkpCUt0mXNty1WEaLZZDjg\"",
                "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": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXINV051",
                    "error": "Issuer not enabled for Partner"
                  }
                ]
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Lead phase should succeed with f_user_transaction_id, or be blocked only at the Mahindra issuer boundary (surfaced FIX*/Jump error)",
                  "passed": true,
                  "message": "Platform checks passed; rejected at Mahindra issuer boundary (HTTP 400) — accepted"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV051"
              ]
            },
            {
              "caseId": "MAH_LEAD_002",
              "caseName": "Reject lead creation without JWT",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:58.645Z",
              "endedAt": "2026-06-23T11:13:58.649Z",
              "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:13:58 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/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_003",
              "caseName": "Reject lead creation with invalid JWT",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:58.649Z",
              "endedAt": "2026-06-23T11:13:58.652Z",
              "durationMs": 3,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer invalid.jwt.token"
              },
              "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:13:58 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/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer invalid.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_004",
              "caseName": "Reject lead creation with expired JWT",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:58.652Z",
              "endedAt": "2026-06-23T11:13:58.655Z",
              "durationMs": 3,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer expired.jwt.token"
              },
              "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:13:58 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/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_005",
              "caseName": "Reject lead creation with malformed/corrupted JWT",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:58.655Z",
              "endedAt": "2026-06-23T11:13:58.658Z",
              "durationMs": 3,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer corrupted-token-!!!"
              },
              "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:13:58 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/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer corrupted-token-!!!'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_006",
              "caseName": "Reject lead creation when Bearer keyword is missing",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:58.658Z",
              "endedAt": "2026-06-23T11:13:58.661Z",
              "durationMs": 3,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:13:58 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/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_007",
              "caseName": "Reject lead creation with Basic auth scheme instead of Bearer",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:58.661Z",
              "endedAt": "2026-06-23T11:13:58.731Z",
              "durationMs": 70,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Basic dXNlcjpwYXNz"
              },
              "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:13:58 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/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Basic dXNlcjpwYXNz'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_008",
              "caseName": "Reject lead creation with empty Authorization header",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:13:58.731Z",
              "endedAt": "2026-06-23T11:13:58.734Z",
              "durationMs": 3,
              "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:13:58 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/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_009",
              "caseName": "Verify HTTP method GET instead of POST for lead creation",
              "service": "user-investment-services",
              "method": "GET",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:58.734Z",
              "endedAt": "2026-06-23T11:13:58.813Z",
              "durationMs": 79,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:58 GMT",
                "etag": "W/\"b9-+4m0EWMltfs3lRD/RZxC8FL4A/U\"",
                "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": "75",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXINV073",
                    "error": "Invaild Parnter Transaction Id"
                  }
                ]
              },
              "curl": "curl -X GET 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "GET on lead creation path should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 400)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV073"
              ]
            },
            {
              "caseId": "MAH_LEAD_013",
              "caseName": "Verify HTTP method PUT instead of POST for lead creation",
              "service": "user-investment-services",
              "method": "PUT",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:13:58.813Z",
              "endedAt": "2026-06-23T11:13:58.881Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, must-revalidate, private",
                "content-length": "1139",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:13:58 GMT",
                "etag": "W/\"473-go7RzTKybLmXtf3ULLqhkaj9ibQ\"",
                "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": "66",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "UPDATED",
                "payload": {
                  "id": 48474,
                  "f_user_transaction_id": "mahindra-kyc-and-lead",
                  "f_partner_user_id": "",
                  "fdr_number": "",
                  "f_investment_vehicle_id": null,
                  "investment_dt": "2026-06-12T17:54:09.535Z",
                  "maturity_dt": null,
                  "investment_amount": null,
                  "expected_maturity_amount": null,
                  "transaction_status": "failed",
                  "holding_status": "Failed",
                  "payment_id": "",
                  "payment_dt": null,
                  "payment_mode": "",
                  "order_id": "",
                  "issuer_transaction_id": "",
                  "frequency": "",
                  "expected_transaction_dt": null,
                  "end_date": null,
                  "last_transaction_dt": null,
                  "f_user_bank_id": "",
                  "auto_renewal": null,
                  "renewal_preference": null,
                  "deleted_at": null,
                  "event_id": null,
                  "f_partner_transaction_id": null,
                  "autopay_mandate": false,
                  "tenure": null,
                  "refunded_dt": null,
                  "maturity_instruction_updated_at": null,
                  "f_user_nominee_id": null,
                  "investment_dt_ist": null,
                  "maturity_dt_ist": null,
                  "payment_dt_ist": null,
                  "marketing_campaign": null,
                  "payment_gateway": null,
                  "renewal_history_update": null,
                  "total_gains": null,
                  "payout_amount": null,
                  "nominee_consent": null,
                  "declares_indian_resident": null,
                  "declares_pep": null,
                  "declares_related_party": null,
                  "bank_pan_consent": null,
                  "product_type": null
                }
              },
              "curl": "curl -X PUT 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "PUT on lead creation path should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 200)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_014",
              "caseName": "Verify HTTP method DELETE instead of POST for lead creation",
              "service": "user-investment-services",
              "method": "DELETE",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:58.881Z",
              "endedAt": "2026-06-23T11:13:58.953Z",
              "durationMs": 72,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:58 GMT",
                "etag": "W/\"b6-6O8cEv4hJqoslZd0sNBHYeytsiU\"",
                "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": "68",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": "",
                    "f_error_message": "",
                    "errorCode": "FIXINV019",
                    "error": "Transaction deletion failed"
                  }
                ]
              },
              "curl": "curl -X DELETE 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "DELETE on lead creation path should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 400)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV019"
              ]
            },
            {
              "caseId": "MAH_LEAD_015",
              "caseName": "Verify lead creation response envelope datatypes",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:58.953Z",
              "endedAt": "2026-06-23T11:13:59.031Z",
              "durationMs": 78,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:59 GMT",
                "etag": "W/\"bb-Lsyi1YkpCUt0mXNty1WEaLZZDjg\"",
                "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": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXINV051",
                    "error": "Issuer not enabled for Partner"
                  }
                ]
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "success should have the expected datatype",
                  "passed": true,
                  "message": "success datatype OK"
                },
                {
                  "description": "statusCode should have the expected datatype",
                  "passed": true,
                  "message": "statusCode datatype OK"
                },
                {
                  "description": "message should have the expected datatype",
                  "passed": true,
                  "message": "message datatype OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV051"
              ]
            },
            {
              "caseId": "MAH_LEAD_016",
              "caseName": "Verify lead creation response time",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:59.031Z",
              "endedAt": "2026-06-23T11:13:59.132Z",
              "durationMs": 101,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:59 GMT",
                "etag": "W/\"bb-Lsyi1YkpCUt0mXNty1WEaLZZDjg\"",
                "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": "98",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXINV051",
                    "error": "Issuer not enabled for Partner"
                  }
                ]
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response should complete within 8000ms",
                  "passed": true,
                  "message": "duration=101ms"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV051"
              ]
            },
            {
              "caseId": "MAH_LEAD_017",
              "caseName": "Verify lead creation response does not leak PAN or mobile number",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:59.132Z",
              "endedAt": "2026-06-23T11:13:59.286Z",
              "durationMs": 154,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:59 GMT",
                "etag": "W/\"bb-Lsyi1YkpCUt0mXNty1WEaLZZDjg\"",
                "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": "151",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXINV051",
                    "error": "Issuer not enabled for Partner"
                  }
                ]
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response should not expose PAN or mobile number",
                  "passed": true,
                  "message": "No PAN/mobile leakage in response body"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV051"
              ]
            },
            {
              "caseId": "MAH_LEAD_018",
              "caseName": "Verify lead creation response does not expose JWT token",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:59.286Z",
              "endedAt": "2026-06-23T11:13:59.399Z",
              "durationMs": 113,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:59 GMT",
                "etag": "W/\"bb-Lsyi1YkpCUt0mXNty1WEaLZZDjg\"",
                "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": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXINV051",
                    "error": "Issuer not enabled for Partner"
                  }
                ]
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response should not expose the JWT access token",
                  "passed": true,
                  "message": "JWT token not present in response body"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV051"
              ]
            },
            {
              "caseId": "MAH_LEAD_019",
              "caseName": "Verify repeated lead creation calls do not error (idempotent / re-runnable)",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:59.399Z",
              "endedAt": "2026-06-23T11:13:59.480Z",
              "durationMs": 81,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:59 GMT",
                "etag": "W/\"bb-Lsyi1YkpCUt0mXNty1WEaLZZDjg\"",
                "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": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXINV051",
                    "error": "Issuer not enabled for Partner"
                  }
                ]
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Lead phase should succeed with f_user_transaction_id, or be blocked only at the Mahindra issuer boundary (surfaced FIX*/Jump error)",
                  "passed": true,
                  "message": "Platform checks passed; rejected at Mahindra issuer boundary (HTTP 400) — accepted"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV051"
              ]
            },
            {
              "caseId": "MAH_LEAD_021",
              "caseName": "Verify SQL injection through headers on lead creation",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:59.480Z",
              "endedAt": "2026-06-23T11:13:59.565Z",
              "durationMs": 85,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-QA-Test": "' OR '1'='1' --",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:59 GMT",
                "etag": "W/\"bb-Lsyi1YkpCUt0mXNty1WEaLZZDjg\"",
                "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": "81",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXINV051",
                    "error": "Issuer not enabled for Partner"
                  }
                ]
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-QA-Test: '\\'' OR '\\''1'\\''='\\''1'\\'' --' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "SQL injection header should either be rejected or safely ignored",
                  "passed": true,
                  "message": "SQL injection header rejected by API (status 400)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV051"
              ]
            },
            {
              "caseId": "MAH_LEAD_022",
              "caseName": "Verify XSS injection through headers on lead creation",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:59.565Z",
              "endedAt": "2026-06-23T11:13:59.650Z",
              "durationMs": 85,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-QA-Test": "<script>alert(1)</script>",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:59 GMT",
                "etag": "W/\"bb-Lsyi1YkpCUt0mXNty1WEaLZZDjg\"",
                "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": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXINV051",
                    "error": "Issuer not enabled for Partner"
                  }
                ]
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-QA-Test: <script>alert(1)</script>' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "XSS injection header should either be rejected or safely ignored",
                  "passed": true,
                  "message": "XSS injection header rejected by API (status 400)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV051"
              ]
            },
            {
              "caseId": "MAH_LEAD_023",
              "caseName": "Verify header tampering (X-Forwarded-For / X-Forwarded-Host) on lead creation",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:59.650Z",
              "endedAt": "2026-06-23T11:13:59.786Z",
              "durationMs": 136,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-Forwarded-For": "127.0.0.1, malicious.example.com",
                "X-Forwarded-Host": "malicious.example.com",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:13:59 GMT",
                "etag": "W/\"bb-Lsyi1YkpCUt0mXNty1WEaLZZDjg\"",
                "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": "133",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXINV051",
                    "error": "Issuer not enabled for Partner"
                  }
                ]
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-Forwarded-For: 127.0.0.1, malicious.example.com' \\\n  -H 'X-Forwarded-Host: malicious.example.com' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Header tampering should either be rejected or safely ignored",
                  "passed": true,
                  "message": "Header tampering rejected by API (status 400)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV051"
              ]
            },
            {
              "caseId": "MAH_LEAD_024",
              "caseName": "Verify lead creation behavior under burst traffic",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:13:59.786Z",
              "endedAt": "2026-06-23T11:14:00.847Z",
              "durationMs": 1061,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, 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:14:00 GMT",
                "etag": "W/\"bb-Lsyi1YkpCUt0mXNty1WEaLZZDjg\"",
                "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": "411",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": [
                  {
                    "f_error_reason": " ",
                    "f_error_message": " ",
                    "errorCode": "FIXINV051",
                    "error": "Issuer not enabled for Partner"
                  }
                ]
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/user-transaction/mahindra-kyc-and-lead' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXINV051"
              ]
            },
            {
              "caseId": "MAH_LEAD_011",
              "caseName": "Reject lead status check without JWT",
              "service": "user-investment-services",
              "method": "GET",
              "url": "https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:00.847Z",
              "endedAt": "2026-06-23T11:14:00.850Z",
              "durationMs": 3,
              "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:14:00 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 GET 'https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_025",
              "caseName": "Reject lead status check with expired JWT",
              "service": "user-investment-services",
              "method": "GET",
              "url": "https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:00.850Z",
              "endedAt": "2026-06-23T11:14:00.853Z",
              "durationMs": 3,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer expired.jwt.token"
              },
              "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:14:00 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 GET 'https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_026",
              "caseName": "Reject lead status check with malformed JWT",
              "service": "user-investment-services",
              "method": "GET",
              "url": "https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:00.853Z",
              "endedAt": "2026-06-23T11:14:00.856Z",
              "durationMs": 3,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer corrupted-token-!!!"
              },
              "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:14:00 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 GET 'https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer corrupted-token-!!!'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_027",
              "caseName": "Reject lead status check when Bearer keyword is missing",
              "service": "user-investment-services",
              "method": "GET",
              "url": "https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:00.856Z",
              "endedAt": "2026-06-23T11:14:00.860Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:14:00 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 GET 'https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_028",
              "caseName": "Verify HTTP method POST instead of GET for lead status check",
              "service": "user-investment-services",
              "method": "POST",
              "url": "https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 404,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:14:00.860Z",
              "endedAt": "2026-06-23T11:14:00.863Z",
              "durationMs": 3,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, must-revalidate, private",
                "content-length": "124",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:00 GMT",
                "etag": "W/\"7c-/J2eJvNEcQh0f7bY4UkCTd68Hdg\"",
                "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": 404,
                "message": "Cannot POST /lead-transaction-status/00000000-0000-4000-8000-000000000000",
                "error": "Not Found"
              },
              "curl": "curl -X POST 'https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_012",
              "caseName": "Lead status with malformed transaction id is handled gracefully",
              "service": "user-investment-services",
              "method": "GET",
              "url": "https://investments-api.dev.fixerra.in/lead-transaction-status/not-a-uuid",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:00.863Z",
              "endedAt": "2026-06-23T11:14:01.021Z",
              "durationMs": 158,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, must-revalidate, private",
                "content-length": "256",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:01 GMT",
                "etag": "W/\"100-xeXfV/Q+jg+Erm3NYCwRlLf3V+4\"",
                "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": "155",
                "server": "envoy"
              },
              "responseBody": {
                "statusCode": 200,
                "payload": {
                  "transaction_id": "not-a-uuid",
                  "lead_present": false,
                  "save_transaction_present": false,
                  "recommendation": "LEAD_NOT_FOUND",
                  "message": "No lead found for this transaction_id. Create lead first, then you can create save transaction."
                }
              },
              "curl": "curl -X GET 'https://investments-api.dev.fixerra.in/lead-transaction-status/not-a-uuid' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Malformed id should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 200)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_029",
              "caseName": "Lead status with well-formed but non-existent transaction id is handled gracefully",
              "service": "user-investment-services",
              "method": "GET",
              "url": "https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:01.021Z",
              "endedAt": "2026-06-23T11:14:01.132Z",
              "durationMs": 111,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, must-revalidate, private",
                "content-length": "282",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:01 GMT",
                "etag": "W/\"11a-Zig/N3TaC2h86wW3MLm3cWgeY1g\"",
                "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": "108",
                "server": "envoy"
              },
              "responseBody": {
                "statusCode": 200,
                "payload": {
                  "transaction_id": "00000000-0000-4000-8000-000000000000",
                  "lead_present": false,
                  "save_transaction_present": false,
                  "recommendation": "LEAD_NOT_FOUND",
                  "message": "No lead found for this transaction_id. Create lead first, then you can create save transaction."
                }
              },
              "curl": "curl -X GET 'https://investments-api.dev.fixerra.in/lead-transaction-status/00000000-0000-4000-8000-000000000000' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Non-existent transaction id should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 200)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_030",
              "caseName": "Lead status with SQL injection in transaction id is handled gracefully",
              "service": "user-investment-services",
              "method": "GET",
              "url": "https://investments-api.dev.fixerra.in/lead-transaction-status/'%20OR%20'1'%3D'1'%20--",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:01.132Z",
              "endedAt": "2026-06-23T11:14:01.406Z",
              "durationMs": 274,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, must-revalidate, private",
                "content-length": "261",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:01 GMT",
                "etag": "W/\"105-pzDNxuP21wGlhLSta5Trii7oAoE\"",
                "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": "271",
                "server": "envoy"
              },
              "responseBody": {
                "statusCode": 200,
                "payload": {
                  "transaction_id": "' OR '1'='1' --",
                  "lead_present": false,
                  "save_transaction_present": false,
                  "recommendation": "LEAD_NOT_FOUND",
                  "message": "No lead found for this transaction_id. Create lead first, then you can create save transaction."
                }
              },
              "curl": "curl -X GET 'https://investments-api.dev.fixerra.in/lead-transaction-status/'\\''%20OR%20'\\''1'\\''%3D'\\''1'\\''%20--' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "SQL injection in transaction id should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 200)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_LEAD_031",
              "caseName": "Lead status with XSS payload in transaction id is handled gracefully",
              "service": "user-investment-services",
              "method": "GET",
              "url": "https://investments-api.dev.fixerra.in/lead-transaction-status/%3Cscript%3Ealert(1)%3C%2Fscript%3E",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 400,
              "httpStatus": 400,
              "startedAt": "2026-06-23T11:14:01.406Z",
              "endedAt": "2026-06-23T11:14:01.621Z",
              "durationMs": 215,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, must-revalidate, private",
                "content-length": "244",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:01 GMT",
                "etag": "W/\"f4-YkTfrn7a9jdqB/zyJ48LP1IpwYs\"",
                "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": "212",
                "server": "envoy"
              },
              "responseBody": {
                "success": 0,
                "statusCode": 400,
                "message": "Bad Request",
                "payload": {},
                "error": {
                  "success": 0,
                  "statusCode": 400,
                  "message": "Bad Request",
                  "payload": {},
                  "error": {
                    "errorCode": "FIXUSERDEFAULT",
                    "error": [
                      "You"
                    ],
                    "f_error_reason": "",
                    "f_error_message": [
                      "You"
                    ]
                  }
                }
              },
              "curl": "curl -X GET 'https://investments-api.dev.fixerra.in/lead-transaction-status/%3Cscript%3Ealert(1)%3C%2Fscript%3E' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "XSS payload in transaction id should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 400)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            }
          ],
          "summary": {
            "total": 29,
            "passed": 29,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 3084
          }
        },
        {
          "stepId": "step-09-nominee",
          "stepName": "Nominee",
          "cases": [
            {
              "caseId": "MAH_NOMINEE_001",
              "caseName": "Get existing nominees (MAH)",
              "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:14:01.621Z",
              "endedAt": "2026-06-23T11:14:01.813Z",
              "durationMs": 192,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:01 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": "187",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": []
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_NOMINEE_002",
              "caseName": "Create valid adult nominee (MAH)",
              "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:14:01.813Z",
              "endedAt": "2026-06-23T11:14:02.009Z",
              "durationMs": 196,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:02 GMT",
                "etag": "W/\"206-qOPOXxrrhH2XUu69PKdSS4NW7B0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "192",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": true,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10801,
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "created_at": "2026-06-23T11:14:01.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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/726aaa4d-82eb-4a60-ab37-e46646e8afeb",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:02.009Z",
              "endedAt": "2026-06-23T11:14:02.120Z",
              "durationMs": 111,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:02 GMT",
                "etag": "W/\"27c-/a7bdHltjZQEYURhf3oOKXXxTI4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "106",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "User already exists.",
                "payload": {
                  "is_default": true,
                  "id": 10801,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "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:14:01.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": null
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee/726aaa4d-82eb-4a60-ab37-e46646e8afeb?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_NOMINEE_004",
              "caseName": "Update nominee relation by id",
              "service": "user-services",
              "method": "PUT",
              "url": "https://users-api.dev.fixerra.in/user-nominee/726aaa4d-82eb-4a60-ab37-e46646e8afeb",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:02.120Z",
              "endedAt": "2026-06-23T11:14:02.307Z",
              "durationMs": 187,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "nominee_relation": "Mother",
                "nominee_salutation": "MRS"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:02 GMT",
                "etag": "W/\"270-7nwdJR/iyEAW4SZaKIqUnEeWf10\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "184",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "SUCCESS",
                "payload": {
                  "is_default": true,
                  "id": 10801,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "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:14:01.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": null
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/726aaa4d-82eb-4a60-ab37-e46646e8afeb?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:02.307Z",
              "endedAt": "2026-06-23T11:14:02.512Z",
              "durationMs": 205,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:02 GMT",
                "etag": "W/\"263-i0ulX6SD3aI5boobY/hQpDSHEL4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "200",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10802,
                  "f_user_nominee_id": "58100f30-1cd8-4c46-9072-fa0d8accf29f",
                  "created_at": "2026-06-23T11:14:02.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_NOMINEE_006",
              "caseName": "Delete nominee by id (cleanup minor nominee)",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/user-nominee/58100f30-1cd8-4c46-9072-fa0d8accf29f",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:02.512Z",
              "endedAt": "2026-06-23T11:14:02.731Z",
              "durationMs": 219,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:02 GMT",
                "etag": "W/\"2ae-CBfVaUwcIeRIHmPskyC+spUDg/o\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": {
                  "is_default": false,
                  "id": 10802,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_nominee_id": "58100f30-1cd8-4c46-9072-fa0d8accf29f",
                  "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:14:02.000Z",
                  "guardian_dob": "1990-04-15T00:00:00.000Z",
                  "guardian_relation": "Father",
                  "guardian_salutation": "MR",
                  "guardian_pan": "",
                  "deleted_at": "2026-06-23T11:14:02.629Z"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/58100f30-1cd8-4c46-9072-fa0d8accf29f?f_code=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_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:14:02.731Z",
              "endedAt": "2026-06-23T11:14:02.831Z",
              "durationMs": 100,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:14:02 GMT",
                "etag": "W/\"272-oVb/qTunoO/ax1pSsoAPnJeXuRY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "is_default": true,
                    "id": 10801,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                    "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:14:01.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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:14:02.930Z",
              "endedAt": "2026-06-23T11:14:02.947Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:14:02 GMT",
                "etag": "W/\"272-oVb/qTunoO/ax1pSsoAPnJeXuRY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "14",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "is_default": true,
                    "id": 10801,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                    "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:14:01.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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:14:02.947Z",
              "endedAt": "2026-06-23T11:14:03.131Z",
              "durationMs": 184,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 GMT",
                "etag": "W/\"208-1bi+kmMobyCLoz7X+pMU0GocSM8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10803,
                  "f_user_nominee_id": "241aa2a7-5ec6-40d5-85a2-7a6641796709",
                  "created_at": "2026-06-23T11:14:03.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_NOMINEE_010",
              "caseName": "Delete legacy-route nominee (cleanup)",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/user-nominee/241aa2a7-5ec6-40d5-85a2-7a6641796709",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:03.131Z",
              "endedAt": "2026-06-23T11:14:03.277Z",
              "durationMs": 146,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:03 GMT",
                "etag": "W/\"287-2Hu2p2GpHMwm4xSLsjV1kY7kLOQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                  "is_default": false,
                  "id": 10803,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_nominee_id": "241aa2a7-5ec6-40d5-85a2-7a6641796709",
                  "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:14:03.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": "2026-06-23T11:14:03.262Z"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/241aa2a7-5ec6-40d5-85a2-7a6641796709?f_code=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_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:14:03.277Z",
              "endedAt": "2026-06-23T11:14:03.312Z",
              "durationMs": 35,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 GMT",
                "etag": "W/\"208-aDcaLVpw2tst7so1Q9SKNA9NDKQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "success": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10804,
                  "f_user_nominee_id": "42304513-34d2-4f9b-af4c-02ee14c62e6a",
                  "created_at": "2026-06-23T11:14:03.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.312Z",
              "endedAt": "2026-06-23T11:14:03.368Z",
              "durationMs": 56,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 GMT",
                "etag": "W/\"207-KKXcPT4jblmQWDowEOaCLmiBOjw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10805,
                  "f_user_nominee_id": "8f700c8d-5590-4052-a349-0195d06a0268",
                  "created_at": "2026-06-23T11:14:03.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.368Z",
              "endedAt": "2026-06-23T11:14:03.488Z",
              "durationMs": 120,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 GMT",
                "etag": "W/\"208-z60hYFmPdX9o4cjXwNchBLg/RkU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10806,
                  "f_user_nominee_id": "4cee8c09-e776-46df-ba30-62fefc2bbcdb",
                  "created_at": "2026-06-23T11:14:03.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.488Z",
              "endedAt": "2026-06-23T11:14:03.569Z",
              "durationMs": 81,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 GMT",
                "etag": "W/\"248-uSqqgRdk+VN6sEfAaHcWgHvdX1g\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10807,
                  "f_user_nominee_id": "e2412a81-f15e-4298-9999-4dcb4625870b",
                  "created_at": "2026-06-23T11:14:03.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.569Z",
              "endedAt": "2026-06-23T11:14:03.598Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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": "25",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.598Z",
              "endedAt": "2026-06-23T11:14:03.612Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.612Z",
              "endedAt": "2026-06-23T11:14:03.625Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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": "MAH_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:14:03.625Z",
              "endedAt": "2026-06-23T11:14:03.638Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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": "10",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.638Z",
              "endedAt": "2026-06-23T11:14:03.652Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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": "11",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.652Z",
              "endedAt": "2026-06-23T11:14:03.664Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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": "8",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.664Z",
              "endedAt": "2026-06-23T11:14:03.677Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.677Z",
              "endedAt": "2026-06-23T11:14:03.738Z",
              "durationMs": 61,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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": "58",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.738Z",
              "endedAt": "2026-06-23T11:14:03.755Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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": "14",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.755Z",
              "endedAt": "2026-06-23T11:14:03.849Z",
              "durationMs": 94,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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": "91",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.849Z",
              "endedAt": "2026-06-23T11:14:03.929Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:03 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": "76",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:03.929Z",
              "endedAt": "2026-06-23T11:14:03.940Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {},
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:03 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": "8",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{}'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": true,
                  "message": "Status 400 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1072",
                "FIXUSER1071",
                "FIXUSER1077"
              ]
            },
            {
              "caseId": "MAH_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:14:03.941Z",
              "endedAt": "2026-06-23T11:14:03.974Z",
              "durationMs": 33,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:03 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": "30",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Should not return a 5xx server error",
                  "passed": true,
                  "message": "HTTP 200 (no server error)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:14:03.974Z",
              "endedAt": "2026-06-23T11:14:04.041Z",
              "durationMs": 67,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "nominee_relation": "Mother"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:04 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": "63",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.041Z",
              "endedAt": "2026-06-23T11:14:04.194Z",
              "durationMs": 153,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:04 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": "150",
                "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=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "validations": [
                {
                  "description": "Should not return a 5xx server error",
                  "passed": true,
                  "message": "HTTP 400 (no server error)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "MAH_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:14:04.194Z",
              "endedAt": "2026-06-23T11:14:04.202Z",
              "durationMs": 8,
              "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:14: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 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": "MAH_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:14:04.202Z",
              "endedAt": "2026-06-23T11:14:04.208Z",
              "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:14: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": "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": "MAH_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:14:04.208Z",
              "endedAt": "2026-06-23T11:14:04.231Z",
              "durationMs": 23,
              "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:14: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": "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": "MAH_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:14:04.231Z",
              "endedAt": "2026-06-23T11:14:04.236Z",
              "durationMs": 5,
              "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:14: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": "3",
                "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": "MAH_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:14:04.236Z",
              "endedAt": "2026-06-23T11:14:04.270Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "full_name": "John A Doe",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:04 GMT",
                "etag": "W/\"206-yLUcDogB94DKJP2fIvHxDgrcaFU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "success": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10808,
                  "f_user_nominee_id": "68a5c05b-fe08-4490-961c-d4313f9a3f0d",
                  "created_at": "2026-06-23T11:14:04.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.270Z",
              "endedAt": "2026-06-23T11:14:04.346Z",
              "durationMs": 76,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "full_name": "Madonna",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:04 GMT",
                "etag": "W/\"206-bKG+YyZeH8NRsfNreePTaHJ0EhM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10809,
                  "f_user_nominee_id": "7c4598b3-d271-4f98-9b8d-49099d879402",
                  "created_at": "2026-06-23T11:14:04.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.346Z",
              "endedAt": "2026-06-23T11:14:04.361Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "full_name": "John2 Doe",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:04 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": "10",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.361Z",
              "endedAt": "2026-06-23T11:14:04.372Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "full_name": ".",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:04 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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.372Z",
              "endedAt": "2026-06-23T11:14:04.393Z",
              "durationMs": 21,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:04 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": "17",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.393Z",
              "endedAt": "2026-06-23T11:14:04.429Z",
              "durationMs": 36,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 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": "33",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.429Z",
              "endedAt": "2026-06-23T11:14:04.531Z",
              "durationMs": 102,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 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": "9",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.531Z",
              "endedAt": "2026-06-23T11:14:04.544Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 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": "9",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.544Z",
              "endedAt": "2026-06-23T11:14:04.630Z",
              "durationMs": 86,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 GMT",
                "etag": "W/\"227-O0obunwlLS3hn3+zSg0mczoN+qg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10810,
                  "f_user_nominee_id": "6d44f129-5efe-4299-aec4-2896f96b51c4",
                  "created_at": "2026-06-23T11:14:04.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.630Z",
              "endedAt": "2026-06-23T11:14:04.645Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 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": "11",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.645Z",
              "endedAt": "2026-06-23T11:14:04.683Z",
              "durationMs": 38,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 GMT",
                "etag": "W/\"233-Hi1Q/TDAB1GhjgCm0toEehWYo5k\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "35",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10811,
                  "f_user_nominee_id": "c48b5128-9db4-484f-b827-e05f301f9c11",
                  "created_at": "2026-06-23T11:14:04.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.683Z",
              "endedAt": "2026-06-23T11:14:04.696Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 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": "9",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.696Z",
              "endedAt": "2026-06-23T11:14:04.738Z",
              "durationMs": 42,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 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": "39",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.738Z",
              "endedAt": "2026-06-23T11:14:04.761Z",
              "durationMs": 23,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "first_name": "Minor",
                "last_name": "Kumar",
                "nominee_dob": "2015-01-01",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:04 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": "18",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.761Z",
              "endedAt": "2026-06-23T11:14:04.780Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 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": "16",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.780Z",
              "endedAt": "2026-06-23T11:14:04.931Z",
              "durationMs": 151,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 GMT",
                "etag": "W/\"20a-2dd2a15x30uNcYedS7jrVAqOYFQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": true,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10812,
                  "f_user_nominee_id": "0429549f-169c-45cc-ae15-24ad47163db2",
                  "created_at": "2026-06-23T11:14:04.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:04.931Z",
              "endedAt": "2026-06-23T11:14:04.947Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:04 GMT",
                "etag": "W/\"16ad-ADHxxYkDUDHUCYWpnhcKcqZ+CYM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "is_default": false,
                    "id": 10808,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "68a5c05b-fe08-4490-961c-d4313f9a3f0d",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10809,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "7c4598b3-d271-4f98-9b8d-49099d879402",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10810,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "6d44f129-5efe-4299-aec4-2896f96b51c4",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10811,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "c48b5128-9db4-484f-b827-e05f301f9c11",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": true,
                    "id": 10812,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "0429549f-169c-45cc-ae15-24ad47163db2",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10804,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "42304513-34d2-4f9b-af4c-02ee14c62e6a",
                    "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:14:03.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10805,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "8f700c8d-5590-4052-a349-0195d06a0268",
                    "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:14:03.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10806,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "4cee8c09-e776-46df-ba30-62fefc2bbcdb",
                    "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:14:03.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10807,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "e2412a81-f15e-4298-9999-4dcb4625870b",
                    "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:14:03.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10801,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                    "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:14:01.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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_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:14:04.947Z",
              "endedAt": "2026-06-23T11:14:05.030Z",
              "durationMs": 83,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:04 GMT",
                "etag": "W/\"209-oZUy6fwDhKHt9DGrlePHWlM4/uU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10813,
                  "f_user_nominee_id": "0a7d10c7-10ed-40c2-9ac1-5d627f787bad",
                  "created_at": "2026-06-23T11:14:04.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:05.031Z",
              "endedAt": "2026-06-23T11:14:05.130Z",
              "durationMs": 99,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:05 GMT",
                "etag": "W/\"24a-wYeDZGsPh6mLFKZ+pGCV2hB2XDk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10814,
                  "f_user_nominee_id": "f070b8fe-efd2-42d8-978a-c6e24bb59039",
                  "created_at": "2026-06-23T11:14:05.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:05.131Z",
              "endedAt": "2026-06-23T11:14:05.158Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "MAH"
              },
              "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:14:05 GMT",
                "etag": "W/\"20b-mb0q9wfB7dxqDVC471JK8hfo9/0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "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": 10815,
                  "f_user_nominee_id": "79129658-7d19-4c9e-b170-0822e0f23c6a",
                  "created_at": "2026-06-23T11:14:05.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:05.158Z",
              "endedAt": "2026-06-23T11:14:05.231Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 GMT",
                "etag": "W/\"16b3-Zh+1dclBdnR5TSKfDwONZXqERVM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "is_default": false,
                    "id": 10814,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "f070b8fe-efd2-42d8-978a-c6e24bb59039",
                    "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:14:05.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10815,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "79129658-7d19-4c9e-b170-0822e0f23c6a",
                    "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:14:05.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10808,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "68a5c05b-fe08-4490-961c-d4313f9a3f0d",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10809,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "7c4598b3-d271-4f98-9b8d-49099d879402",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10810,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "6d44f129-5efe-4299-aec4-2896f96b51c4",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10811,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "c48b5128-9db4-484f-b827-e05f301f9c11",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": true,
                    "id": 10812,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "0429549f-169c-45cc-ae15-24ad47163db2",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10813,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "0a7d10c7-10ed-40c2-9ac1-5d627f787bad",
                    "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:14:04.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10804,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "42304513-34d2-4f9b-af4c-02ee14c62e6a",
                    "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:14:03.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10805,
                    "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "8f700c8d-5590-4052-a349-0195d06a0268",
                    "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:14:03.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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_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:14:05.231Z",
              "endedAt": "2026-06-23T11:14:05.236Z",
              "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:14:05 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": "MAH_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": "MAH_NOMINEE_ADDR_001",
              "caseName": "Create address for nominee (MAH)",
              "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:14:05.236Z",
              "endedAt": "2026-06-23T11:14:05.268Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                "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": "MAH"
              },
              "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:14:05 GMT",
                "etag": "W/\"27c-PF8h8aJjYJqilwXtx2BIiZWJyZY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "CREATED",
                "payload": {
                  "is_default": false,
                  "same_as_user": false,
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "line2": "Near Test Lane",
                  "state": "MAHARASHTRA",
                  "country": "INDIA",
                  "address_type": "PERMANENT",
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d1ea9dad6b6ab7c5edcb46bd350dd054cdc9ba7cd39664363c47a604e01361097c88203ec3381ed2955464f7d5d584325389d26ca93cc93cacfc91b26b10731ea13576e0f0f109583c9356d1b139de5c5",
                  "id": 5135,
                  "f_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_code=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"f_user_nominee_id\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\",\"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": "MAH_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:14:05.268Z",
              "endedAt": "2026-06-23T11:14:05.282Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "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:14:05 GMT",
                "etag": "W/\"30f-fWiVcTI2hCZKp9EvYgo1A8DOdWk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "id": 5135,
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                    "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                    "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=726aaa4d-82eb-4a60-ab37-e46646e8afeb' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_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:14:05.282Z",
              "endedAt": "2026-06-23T11:14:05.344Z",
              "durationMs": 62,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                "same_as_user": true
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 GMT",
                "etag": "W/\"28e-ffCMpncEgirL7lC//BIZBHnVpZo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "CREATED",
                "payload": {
                  "id": 5135,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "f_base_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                  "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"f_user_nominee_id\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\",\"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": "MAH_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:14:05.344Z",
              "endedAt": "2026-06-23T11:14:05.366Z",
              "durationMs": 22,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:14:05 GMT",
                "etag": "W/\"331-S9ScjpquwPMINx6Q9P9tN0ratCw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 5135,
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                    "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                    "f_base_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                    "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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_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:14:05.366Z",
              "endedAt": "2026-06-23T11:14:05.429Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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:14:05 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": "60",
                "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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_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:14:05.429Z",
              "endedAt": "2026-06-23T11:14:05.435Z",
              "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:14:05 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": "MAH_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:14:05.435Z",
              "endedAt": "2026-06-23T11:14:05.441Z",
              "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:14:05 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": "MAH_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:14:05.441Z",
              "endedAt": "2026-06-23T11:14:05.454Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "same_as_user": true
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 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": "11",
                "server": "envoy"
              },
              "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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": "MAH_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:14:05.454Z",
              "endedAt": "2026-06-23T11:14:05.529Z",
              "durationMs": 75,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "MH",
                "country": "INDIA",
                "pincode": "ABC"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 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": "71",
                "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"f_user_nominee_id\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\",\"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": "MAH_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:14:05.529Z",
              "endedAt": "2026-06-23T11:14:05.561Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "maharashtra",
                "country": "INDIA",
                "pincode": "400001"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 GMT",
                "etag": "W/\"24e-NFdZSLMbYaUQfgiWHIr8N4lpJeg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "CREATED",
                "payload": {
                  "id": 5135,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "f_base_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                  "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"f_user_nominee_id\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\",\"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": "MAH_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:14:05.561Z",
              "endedAt": "2026-06-23T11:14:05.645Z",
              "durationMs": 84,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "MH",
                "pincode": "400001"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 GMT",
                "etag": "W/\"245-9/ZmxsEmbDxUjgPGX5RMoLeQDB4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "CREATED",
                "payload": {
                  "id": 5135,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "f_base_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                  "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"f_user_nominee_id\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\",\"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": "MAH_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:14:05.645Z",
              "endedAt": "2026-06-23T11:14:05.671Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestPayload": {
                "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                "same_as_user": false,
                "line1": "Updated Address Line",
                "city": "Pune",
                "state": "MH",
                "country": "INDIA",
                "pincode": "411001"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 GMT",
                "etag": "W/\"265-KbTs1hkKYzA/EE3ZjIQQIUUnCHo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "CREATED",
                "payload": {
                  "id": 5135,
                  "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "f_base_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                  "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=MAH' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\n  -d '{\"f_user_nominee_id\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\",\"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": "MAH_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:14:05.671Z",
              "endedAt": "2026-06-23T11:14:05.743Z",
              "durationMs": 72,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "requestQuery": {
                "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "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:14:05 GMT",
                "etag": "W/\"302-eSG52gRByjK/XrvmNsoipaO8wVc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 5135,
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                    "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                    "f_base_user_address_id": "c84ac4e6-7ef5-4256-b7e4-50646b5ced5c",
                    "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=726aaa4d-82eb-4a60-ab37-e46646e8afeb' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E'",
              "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": "MAH_NOMINEE_V1UPD_001",
              "caseName": "Update nominee via v1/update (MAH)",
              "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:14:05.743Z",
              "endedAt": "2026-06-23T11:14:05.831Z",
              "durationMs": 88,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 GMT",
                "etag": "W/\"283-dNSndvm+YzZTupZ/iV29vy23PmY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Nominee Data updated successfully",
                "payload": {
                  "is_default": true,
                  "id": 10801,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "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:14:01.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=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\"}'",
              "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": "MAH_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:14:05.831Z",
              "endedAt": "2026-06-23T11:14:05.877Z",
              "durationMs": 46,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                "nomineeAddress": {
                  "same_as_user": false,
                  "line1": "ADFJ",
                  "street": "ASDFK",
                  "pincode": "431122",
                  "city": "BEED",
                  "state": "MAHARASHTRA",
                  "country": "INDIA"
                }
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1078",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:05 GMT",
                "etag": "W/\"436-ZhXEYTdzQeMvbnZbdQzDblbFgLA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee Data updated successfully",
                "payload": {
                  "is_default": true,
                  "id": 10801,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "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": "Father",
                  "nominee_salutation": "MR",
                  "guardian_first_name": "",
                  "guardian_last_name": "",
                  "created_at": "2026-06-23T11:14:01.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": null,
                  "nomineeAddress": {
                    "same_as_user": false,
                    "state": "MAHARASHTRA",
                    "country": "INDIA",
                    "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d67d8e56acb6a0037d70a856eb75e370a3e1608bd6960ad20a42428b87b82f01be86f7a24a27f69e4d4a476e892feb93819f43422c1405c9eaf47a2db0588fc01f80f14dadec1a1639c56890f969cbf0c",
                    "f_user_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                    "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
                  }
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\",\"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": "MAH_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:14:05.877Z",
              "endedAt": "2026-06-23T11:14:05.931Z",
              "durationMs": 54,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 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 PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\"}'",
              "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": "MAH_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:14:05.931Z",
              "endedAt": "2026-06-23T11:14:05.942Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 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 PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\"}'",
              "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": "MAH_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:14:05.942Z",
              "endedAt": "2026-06-23T11:14:06.031Z",
              "durationMs": 89,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:05 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 PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\"}'",
              "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": "MAH_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:14:06.031Z",
              "endedAt": "2026-06-23T11:14:06.041Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:06 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 PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\"}'",
              "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": "MAH_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:14:06.041Z",
              "endedAt": "2026-06-23T11:14:06.052Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:06 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": "7",
                "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=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\"}'",
              "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": "MAH_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:14:06.052Z",
              "endedAt": "2026-06-23T11:14:06.062Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:06 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": "7",
                "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=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\"}'",
              "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": "MAH_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:14:06.062Z",
              "endedAt": "2026-06-23T11:14:06.131Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:06 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": "8",
                "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=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\"}'",
              "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": "MAH_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:14:06.131Z",
              "endedAt": "2026-06-23T11:14:06.230Z",
              "durationMs": 99,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E"
              },
              "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": "726aaa4d-82eb-4a60-ab37-e46646e8afeb"
              },
              "requestQuery": {
                "f_code": "MAH"
              },
              "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:14:06 GMT",
                "etag": "W/\"2c4-7jCRLfeBFFrlTxbnM9UmW1Q+nLI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "Nominee Data updated successfully",
                "payload": {
                  "is_default": true,
                  "id": 10801,
                  "f_user_ref_id": "4e68c1e4-c43c-48c5-b2a9-08d7d6e4957e",
                  "f_user_nominee_id": "726aaa4d-82eb-4a60-ab37-e46646e8afeb",
                  "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:14:01.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=MAH' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiI0ZTY4YzFlNC1jNDNjLTQ4YzUtYjJhOS0wOGQ3ZDZlNDk1N2UiLCJmX3BhcnRuZXJfdXNlcl9pZCI6ImI5MDc2N2E1LTU5YTMtNGVlMC05ZmJjLTJkYTM2Mjg1ZjQ3YyIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjA0LCJleHAiOjE3ODIyOTk2MDR9.S6SAPL1GuZaikAnojgdwUMD1T4TY3UVyDyoBREqrQ5E' \\\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\":\"726aaa4d-82eb-4a60-ab37-e46646e8afeb\"}'",
              "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": "MAH_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:14:06.230Z",
              "endedAt": "2026-06-23T11:14:06.236Z",
              "durationMs": 6,
              "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:14: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 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": "MAH_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:14:06.236Z",
              "endedAt": "2026-06-23T11:14:06.241Z",
              "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:14: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 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": 4518
          }
        }
      ]
    },
    {
      "id": "48eb1363-58ea-4b65-b2cf-151552863171",
      "issuer": "shriram",
      "journey": "ntb",
      "startedAt": "2026-06-23T11:11:52.153Z",
      "endedAt": "2026-06-23T11:15:24.745Z",
      "durationMs": 73068,
      "summary": {
        "total": 528,
        "passed": 526,
        "failed": 0,
        "skipped": 2,
        "running": 0,
        "pending": 0,
        "durationMs": 73068
      },
      "steps": [
        {
          "stepId": "step-01-login",
          "stepName": "Login",
          "cases": [
            {
              "caseId": "SHRI_LOGIN_001",
              "caseName": "Send OTP to Shriram Finance test mobile number",
              "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:14:11.626Z",
              "endedAt": "2026-06-23T11:14:11.727Z",
              "durationMs": 101,
              "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:14:11 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": "2997",
                "x-ratelimit-reset": "60",
                "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 should indicate OTP send success",
                  "passed": true,
                  "message": "Success envelope present"
                },
                {
                  "description": "payload.attemptsUsed should be present",
                  "passed": true,
                  "message": "attemptsUsed=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:14:11.728Z",
              "endedAt": "2026-06-23T11:14:11.824Z",
              "durationMs": 96,
              "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:14:11 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": "60",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "94",
                "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": "SHRI_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": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:14:11.824Z",
              "endedAt": "2026-06-23T11:14:11.936Z",
              "durationMs": 112,
              "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:14:11 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": "2995",
                "x-ratelimit-reset": "60",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "108",
                "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": "Body statusCode should be 200",
                  "passed": true,
                  "message": "statusCode=200"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:14:11.936Z",
              "endedAt": "2026-06-23T11:14:12.039Z",
              "durationMs": 103,
              "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:14:12 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": "60",
                "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": "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": "SHRI_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:14:12.039Z",
              "endedAt": "2026-06-23T11:14:12.130Z",
              "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:14:12 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": "59",
                "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": "Payload object should exist",
                  "passed": true,
                  "message": "payload present"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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": "passed",
              "scenarioType": "positive",
              "expectedStatus": 201,
              "httpStatus": 201,
              "startedAt": "2026-06-23T11:14:12.130Z",
              "endedAt": "2026-06-23T11:14:12.217Z",
              "durationMs": 87,
              "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:14:12 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": "2992",
                "x-ratelimit-reset": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "84",
                "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 be 0",
                  "passed": true,
                  "message": "attemptsUsed=0"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:14:12.217Z",
              "endedAt": "2026-06-23T11:14:12.312Z",
              "durationMs": 95,
              "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:14:12 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": "2991",
                "x-ratelimit-reset": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "92",
                "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 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": "SHRI_LOGIN_023",
              "caseName": "Verify send OTP response schema",
              "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:14:12.312Z",
              "endedAt": "2026-06-23T11:14:12.423Z",
              "durationMs": 111,
              "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:14:12 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": "2990",
                "x-ratelimit-reset": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "107",
                "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": "Success response schema should match contract",
                  "passed": true,
                  "message": "Success schema valid"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_LOGIN_024",
              "caseName": "Verify send OTP response time",
              "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:14:12.423Z",
              "endedAt": "2026-06-23T11:14:12.531Z",
              "durationMs": 108,
              "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:14:12 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "104",
                "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": true,
                  "message": "duration=108ms"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:14:12.531Z",
              "endedAt": "2026-06-23T11:14:12.629Z",
              "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:14:12 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "95",
                "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": "SHRI_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:14:12.629Z",
              "endedAt": "2026-06-23T11:14:12.723Z",
              "durationMs": 94,
              "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:14:12 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "91",
                "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": "SHRI_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:14:12.723Z",
              "endedAt": "2026-06-23T11:14:12.737Z",
              "durationMs": 14,
              "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:14:12 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": "59",
                "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 '{}'",
              "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": "SHRI_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:14:12.738Z",
              "endedAt": "2026-06-23T11:14:12.746Z",
              "durationMs": 8,
              "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:14:12 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": "59",
                "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\":\"\"}'",
              "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": "SHRI_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:14:12.746Z",
              "endedAt": "2026-06-23T11:14:12.759Z",
              "durationMs": 13,
              "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:14:12 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "10",
                "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": "SHRI_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:14:12.759Z",
              "endedAt": "2026-06-23T11:14:12.766Z",
              "durationMs": 7,
              "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:14:12 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": "59",
                "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": "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": "SHRI_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:14:12.766Z",
              "endedAt": "2026-06-23T11:14:12.776Z",
              "durationMs": 10,
              "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:14:12 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": "59",
                "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)"
                  },
                  {
                    "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": "SHRI_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:14:12.776Z",
              "endedAt": "2026-06-23T11:14:12.833Z",
              "durationMs": 57,
              "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:14:12 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "54",
                "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": "SHRI_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:14:12.833Z",
              "endedAt": "2026-06-23T11:14:12.843Z",
              "durationMs": 10,
              "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:14:12 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": "59",
                "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\":\"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": "SHRI_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:14:12.843Z",
              "endedAt": "2026-06-23T11:14:12.850Z",
              "durationMs": 7,
              "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:14:12 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": "59",
                "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\":\"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": "SHRI_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:14:12.850Z",
              "endedAt": "2026-06-23T11:14:12.858Z",
              "durationMs": 8,
              "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:14:12 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": "59",
                "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": "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": "SHRI_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:14:12.858Z",
              "endedAt": "2026-06-23T11:14:12.865Z",
              "durationMs": 7,
              "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:14:12 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": "59",
                "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": "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": "SHRI_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:14:12.866Z",
              "endedAt": "2026-06-23T11:14:12.873Z",
              "durationMs": 7,
              "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:14:12 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": "59",
                "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": "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": "SHRI_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:14:12.873Z",
              "endedAt": "2026-06-23T11:14:12.931Z",
              "durationMs": 58,
              "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:14:12 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": "59",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "51",
                "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": "SHRI_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:14:12.931Z",
              "endedAt": "2026-06-23T11:14:12.950Z",
              "durationMs": 19,
              "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:14:12 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": "59",
                "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": "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": "SHRI_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:14:12.950Z",
              "endedAt": "2026-06-23T11:14:12.958Z",
              "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:14:12 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": "59",
                "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": "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": "SHRI_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:14:12.958Z",
              "endedAt": "2026-06-23T11:14:12.965Z",
              "durationMs": 7,
              "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:14:12 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": "59",
                "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": "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": "SHRI_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:14:12.965Z",
              "endedAt": "2026-06-23T11:14:13.031Z",
              "durationMs": 66,
              "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:14:12 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": "59",
                "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": "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": "SHRI_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:14:13.031Z",
              "endedAt": "2026-06-23T11:14:13.038Z",
              "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:14:13 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": "59",
                "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": "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": "SHRI_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:14:13.038Z",
              "endedAt": "2026-06-23T11:14:13.052Z",
              "durationMs": 14,
              "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:14:13 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": "58",
                "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\":\"<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": "SHRI_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:14:13.052Z",
              "endedAt": "2026-06-23T11:14:13.128Z",
              "durationMs": 76,
              "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:14:13 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": "58",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "73",
                "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": "SHRI_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:14:13.128Z",
              "endedAt": "2026-06-23T11:14:13.136Z",
              "durationMs": 8,
              "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:14:13 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": "58",
                "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\":\"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": "SHRI_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:14:13.136Z",
              "endedAt": "2026-06-23T11:14:13.142Z",
              "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:14:13 GMT",
                "etag": "W/\"f6-ySe3EJgjQXC755DXBtbxRm0LZnc\"",
                "vary": "Origin",
                "x-powered-by": "Express",
                "x-envoy-upstream-service-time": "2",
                "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": "SHRI_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:14:13.142Z",
              "endedAt": "2026-06-23T11:14:13.155Z",
              "durationMs": 13,
              "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:14:13 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": "58",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "10",
                "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": "SHRI_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:14:13.155Z",
              "endedAt": "2026-06-23T11:14:13.168Z",
              "durationMs": 13,
              "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:14:13 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": "58",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "10",
                "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": "SHRI_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:14:13.168Z",
              "endedAt": "2026-06-23T11:14:13.181Z",
              "durationMs": 13,
              "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:14:13 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": "58",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "9",
                "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": "SHRI_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:14:13.181Z",
              "endedAt": "2026-06-23T11:14:13.231Z",
              "durationMs": 50,
              "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:14:13 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": "58",
                "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": "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": "SHRI_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:14:13.231Z",
              "endedAt": "2026-06-23T11:14:13.239Z",
              "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:14:13 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": "58",
                "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": "SHRI_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:14:13.239Z",
              "endedAt": "2026-06-23T11:14:13.246Z",
              "durationMs": 7,
              "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:14:13 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": "58",
                "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": "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": "SHRI_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:14:13.246Z",
              "endedAt": "2026-06-23T11:14:13.253Z",
              "durationMs": 7,
              "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:14:13 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": "58",
                "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": "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": "SHRI_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:14:13.253Z",
              "endedAt": "2026-06-23T11:14:13.260Z",
              "durationMs": 7,
              "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:14:13 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": "58",
                "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": "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": "SHRI_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:14:13.261Z",
              "endedAt": "2026-06-23T11:14:13.331Z",
              "durationMs": 70,
              "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:14:13 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": "58",
                "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": "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": "SHRI_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:14:13.331Z",
              "endedAt": "2026-06-23T11:14:13.338Z",
              "durationMs": 7,
              "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:14:13 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": "58",
                "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": "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": "SHRI_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:14:13.338Z",
              "endedAt": "2026-06-23T11:14:13.351Z",
              "durationMs": 13,
              "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:14:13 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": "58",
                "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)"
                  }
                ]
              },
              "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": "SHRI_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:14:13.351Z",
              "endedAt": "2026-06-23T11:14:13.358Z",
              "durationMs": 7,
              "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:14:13 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": "58",
                "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": "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": "SHRI_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:14:13.358Z",
              "endedAt": "2026-06-23T11:14:13.431Z",
              "durationMs": 73,
              "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:14:13 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": "58",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "66",
                "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": "SHRI_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:14:13.431Z",
              "endedAt": "2026-06-23T11:14:13.636Z",
              "durationMs": 205,
              "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:14:13 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": "58",
                "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": "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": "SHRI_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:14:13.636Z",
              "endedAt": "2026-06-23T11:14:13.730Z",
              "durationMs": 94,
              "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:14:13 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": "58",
                "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": "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": "SHRI_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:14:13.730Z",
              "endedAt": "2026-06-23T11:14:13.832Z",
              "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:14:13 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": "58",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "98",
                "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": "SHRI_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:14:13.832Z",
              "endedAt": "2026-06-23T11:14:14.223Z",
              "durationMs": 391,
              "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:14:14 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": "57",
                "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": "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 98ms across 4 requests"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:14:14.223Z",
              "endedAt": "2026-06-23T11:14:14.712Z",
              "durationMs": 489,
              "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:14:14 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": "57",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "89",
                "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": "SHRI_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:14:14.712Z",
              "endedAt": "2026-06-23T11:14:15.014Z",
              "durationMs": 302,
              "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:14:15 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": "57",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "95",
                "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": "SHRI_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:14:15.014Z",
              "endedAt": "2026-06-23T11:14:15.108Z",
              "durationMs": 94,
              "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:14:15 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": "57",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "90",
                "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": "SHRI_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:14:15.108Z",
              "endedAt": "2026-06-23T11:14:15.214Z",
              "durationMs": 106,
              "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:14:15 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": "56",
                "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": "SHRI_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:14:15.214Z",
              "endedAt": "2026-06-23T11:14:15.323Z",
              "durationMs": 109,
              "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:14:15 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": "56",
                "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": "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": "SHRI_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:14:15.323Z",
              "endedAt": "2026-06-23T11:14:15.431Z",
              "durationMs": 108,
              "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:14:15 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": "56",
                "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": "Response status should be 201 or 200",
                  "passed": true,
                  "message": "Status 201 OK"
                },
                {
                  "description": "Response time should be within 5000ms",
                  "passed": true,
                  "message": "duration=108ms"
                }
              ],
              "docsFile": "user-services/API_QA_POST_AUTH_REGISTER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:14:15.431Z",
              "endedAt": "2026-06-23T11:14:15.535Z",
              "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:14:15 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": "56",
                "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 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": "SHRI_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:14:15.535Z",
              "endedAt": "2026-06-23T11:14:15.629Z",
              "durationMs": 94,
              "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:14:15 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "91",
                "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": "SHRI_LOGIN_002",
              "caseName": "Verify OTP and extract auth tokens (Shriram Finance)",
              "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:14:15.629Z",
              "endedAt": "2026-06-23T11:14:15.672Z",
              "durationMs": 43,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestPayload": {
                "phone": "918668336629",
                "otp": "123456",
                "partner_url": "https://tradingquants.dev.fixerra.in",
                "consent": false,
                "issuer_code": "SHRIRAM"
              },
              "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:14:15 GMT",
                "etag": "W/\"3ea-alW3Et7ZnvumAi2P/+j9vRjc+Jg\"",
                "referrer-policy": "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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "41",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "User already exists.",
                "payload": {
                  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw",
                  "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJyZWZyZXNoIiwiZl91c2VyX2lkIjoiZGI2YTFiMDktMjQyMS00MmIxLWJhOTItZjRhZmIyY2JmYmU0IiwiZl9wYXJ0bmVyX3VzZXJfaWQiOiI3OTYwNjI4Zi00ZWM4LTRkOTItOWI2OC1mODY1NjdiOGFmODQiLCJmX3BhcnRuZXJfaWQiOiI2OGJkY2Y4OS04NDY0LTRmODUtODk4Ny1hYTI4OTA4ZTIxYWQiLCJwYXJ0bmVyX3VybCI6Imh0dHBzOi8vdHJhZGluZ3F1YW50cy5kZXYuZml4ZXJyYS5pbiIsImlhdCI6MTc4MjIxMzI1NSwiZXhwIjoxNzgyODE4MDU1fQ.clQDuBjemE_smaObhBWkX7rHwtvxkFtAegbjDk7bQlk"
                }
              },
              "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\":\"SHRIRAM\"}'",
              "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": "SHRI_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:14:15.673Z",
              "endedAt": "2026-06-23T11:14:15.743Z",
              "durationMs": 70,
              "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:14:15 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "67",
                "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": "SHRI_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:14:15.743Z",
              "endedAt": "2026-06-23T11:14:15.944Z",
              "durationMs": 201,
              "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:14:15 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "198",
                "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": "SHRI_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:14:15.944Z",
              "endedAt": "2026-06-23T11:14:16.137Z",
              "durationMs": 193,
              "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:14:16 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": "56",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "189",
                "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": "SHRI_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:14:16.137Z",
              "endedAt": "2026-06-23T11:14:16.236Z",
              "durationMs": 99,
              "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:14:16 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": "55",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "96",
                "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": "SHRI_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:14:16.236Z",
              "endedAt": "2026-06-23T11:14:16.244Z",
              "durationMs": 8,
              "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:14:16 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": "55",
                "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": "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": "SHRI_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:14:16.245Z",
              "endedAt": "2026-06-23T11:14:16.259Z",
              "durationMs": 14,
              "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:14: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": "2991",
                "x-ratelimit-reset": "55",
                "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/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": "SHRI_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:14:16.259Z",
              "endedAt": "2026-06-23T11:14:16.266Z",
              "durationMs": 7,
              "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:14: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": "2990",
                "x-ratelimit-reset": "55",
                "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": "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": "SHRI_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:14:16.266Z",
              "endedAt": "2026-06-23T11:14:16.328Z",
              "durationMs": 62,
              "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:14:16 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": "55",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "58",
                "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": 66,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 4696
          }
        },
        {
          "stepId": "step-02-fd-detail",
          "stepName": "FD Detail",
          "cases": [
            {
              "caseId": "SHRI_FD_DETAIL_001",
              "caseName": "Get Shriram Finance issuer detail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/detail/c791d914-ef3b-4c63-a9be-f0d3d772e89a",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:16.328Z",
              "endedAt": "2026-06-23T11:14:16.532Z",
              "durationMs": 204,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "93437",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:16 GMT",
                "etag": "W/\"16cfd-78SJxyl8cfES7e9MZT0021v+d7U\"",
                "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": "17",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "issuerData": {
                    "id": 1,
                    "name": "Shriram Finance Ltd",
                    "description": "Shriram Finance is a prominent financial institution with assets under management (AUM) of over ₹2.3 lakh crores. Founded in 1974, the company has grown to become a key player in the finance sector, catering to over 82.2 lakh customers through 3000+ branches. With a dedicated workforce of more than 75,000 employees, Shriram Finance continues to deliver a wide range of financial services and solutions.",
                    "f_code": "SHRI",
                    "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                    "url": "https://images.dev.fixerra.in/logos/shriram/Shriram.png",
                    "sub_logo": "https://images.dev.fixerra.in/logos/shriram/SHRIRAM-SMALL.png",
                    "compounding_freq": "Yearly",
                    "issuer_type": "NBFC",
                    "crisil_rating": "AAA/Stable",
                    "icra_rating": "AAA/Stable",
                    "trusted_users": "7CR+ Since 2022",
                    "hero_tag": "",
                    "subtag_1": "AA+ Rated by Crisil",
                    "subtag_2": "Compounds Yearly",
                    "is_range_required": true,
                    "bank_disabled_at": null,
                    "faq": "",
                    "active_issuer_rank": 10,
                    "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": false,
                    "enable_easy_split": false,
                    "pg_setting": "8898609d136b892f53436eea18e0b5e7:4de1de3f2a0607781fc3f5830da13419",
                    "is_nominee_required": false,
                    "bank_type": "",
                    "is_issuer_live": true,
                    "women_benefit": 0.05,
                    "senior_citizen_benefit": 0.5,
                    "minTenure": 365,
                    "maxTenure": 1825
                  },
                  "vehiclesPayload": [
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "664ae34d-f89e-4091-a111-019bfd0db470",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.54"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e4856182-4062-4710-a241-e8166e02f3fb",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.58"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e507f91a-72f6-4942-8325-259a547fc495",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.65"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "7d4a511c-185b-4d40-9da5-72a8de1fb5f0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "d35c1b80-043c-432f-9c06-aced9cdcc120",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.42"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "585512f8-9f08-42f4-8695-b4bce4e628c2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.54"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "6a96fb12-6dc3-4d42-8fc5-48099c9567b2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.58"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "9dd283fd-2aff-486d-82fd-15191d8cacd9",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.65"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "9bc13fc9-5712-4434-8a53-0fa04247e8eb",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "9699ac0d-b5ea-4fdd-825b-e1dcdb596c0b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.81"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "7e90af6c-8e23-4af8-a9cb-f6d61638c13d",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.54"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e6ef7183-c046-4309-9863-97149d4abaaf",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.58"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "eae50d89-d8d7-427c-9282-80e541cce5e9",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.65"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b75081e9-64a6-4060-ae04-58fcad077bb2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "8fcd4f28-c546-400b-bac1-03f84bee7967",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "16992686-c65c-4060-a287-9a1a9f05ad25",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.50"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "0fe77581-c93c-4e5c-8c65-f251f800f765",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.53"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "84bfb135-88c1-4870-9573-15c15e252b34",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.61"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "30446294-f090-401d-a91d-5449401387e7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "0c70414b-c76f-4313-a276-2d6b8b0ac105",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": 10,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.37"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "5fa4ae62-1257-4370-980e-1cc03f816ab9",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.50"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "97a23579-69c4-462f-9983-f797e921cee6",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.53"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "ffab2420-42a5-435a-96fc-314245e37794",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.61"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "856dcf17-bc56-4ef9-a57d-540fac07d21b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "f8087c21-01e9-4a9c-8315-5ffb646af1ed",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "83682cdf-1c01-49b5-ad1e-746be22c8deb",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.50"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "c3b33079-868d-4fab-bbd0-e9f9507bd732",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.53"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "28b933c7-656c-4d78-abbf-832789e475a8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.61"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "99f63086-0430-4b1c-9a53-9657f4bc8eb4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "5b261dc6-8fd0-4db7-8a52-375b986921dd",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "1fa4fcf9-27b3-4236-b909-6611d5039664",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.36"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e6fe093c-1149-48c2-abce-e3509b5253f9",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.39"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "912842bd-45cd-48ef-b470-f7343a17e6b7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.46"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "3af629b5-30db-4833-9699-65e01a323255",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a974f8a1-11fd-458e-8926-83b6fd7060db",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.89"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a3210aef-03a8-4cc4-960f-1c6b4af734cc",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.31"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "4a0c5ec2-1ffa-43c8-bb50-6e906b64103c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.36"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "8ef82698-af97-4237-abdf-0ffa4c1ce5b9",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.42"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "66b09437-b182-43ae-b691-5154233e72e5",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.56"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b39a3058-518f-4273-811a-ff1f1df04633",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.70"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "64b46f00-5f67-499c-bdde-bacc17adc389",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.31"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "4bb8f360-3958-4a16-a69e-e61a66d43aa3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "d5a276d7-ffda-4680-9caa-e2bb87bd48fa",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "67955c55-61e6-4f0c-87e6-2a05aae26bb3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.55"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a86e44d3-ea6e-4c6f-ba11-7483192a2f5f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.83"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "6d38021e-5996-4213-a042-7838854e8d11",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.27"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "22d95043-84ae-4cdf-a9fe-ff4ec24b3654",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.31"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a649d09e-14b4-42a9-996c-4dc2b53e5831",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.37"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "758a5d00-ab86-4138-b66b-8d5adb1dc841",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.51"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "6da28cad-616a-40b9-a120-f63f797b725a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.64"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "457cfcc6-749d-4d0e-98e2-781f17356999",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "c428d70d-2d47-4e46-b665-be5a0d9e4c16",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b7b8ec4e-b329-495f-aeab-4d06a14134d7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.17"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "86b7a52c-77d4-47fa-944a-9471cfde0145",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a861ae19-0323-4a73-8ae1-0fb99a04e889",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "729c39fb-1387-4166-a62e-976e51268df8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b98c6554-a305-494e-952e-75809afa5884",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "7bc714d5-b2b6-4084-8ba4-3dabcf05566e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.17"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b5a12e73-270c-4a72-ad80-93c0f50ff7ee",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "c6f77afa-9b8c-4b86-95e2-fbceb0894c73",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.85"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "cdf58a25-250f-47b0-adb6-925c18f1229a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "dca0309e-5aa1-43b5-be75-dd96eb82e839",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "0bea5cf5-478e-4919-be2f-926713970595",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.17"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "cc8a1902-e88f-4005-9b8f-b8f439eb59bd",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "16389033-6562-45bf-be45-fe210fa2ea08",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.19"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "55abbaa4-8d30-4a6a-93ae-ec2cc313359d",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a8de8bd5-5b2d-46ad-abb3-34d34936d3bf",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "4a08a2c0-7fea-4c87-a268-b83ffb9a4d98",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.17"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "69794790-55ef-42a4-bbae-3a3e41ef7e26",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a32757dd-669a-4302-8578-6d6e2c992307",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.45"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "81683072-64b3-4064-ad3b-c78472929728",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.02"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "5beeb733-2eb0-4403-8be8-af3240b2f0ec",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "9ab4d58e-9c6f-485d-8087-7fc021bd70f0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.12"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "88ca58f2-3a7b-47d4-b844-eb7e98114151",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "1b980525-688a-4e08-9019-0659b1156606",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "cb8d1712-6661-41bf-865d-7d2522fa7383",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.02"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "8418e3e1-561c-4be0-9046-57d1be6a81b3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "25400e2e-18d8-42ca-8c2c-ec5f00da9b21",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.12"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "cec67f09-f21a-462c-8e5d-2e66c1ce6e48",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "6754d53d-3a2e-4f54-a4ef-4805c3404723",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": 3,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.79"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "fb61af7d-253c-4db2-a05f-cac6a4cd8d8c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.02"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "1f154fdf-2a0b-498d-aaef-6094ba14547a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "4823a80e-8304-4007-847f-569bbde49ab8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.12"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "f8b158e4-62b8-4b53-ae72-1efc01b60df8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "27d91ad9-cd54-41c3-83a6-b0b57174de5b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.13"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "7f0bd032-5dc7-4120-adea-52c1266365d4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.02"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "5f27929b-4f93-4a8a-8a18-6cf9d82606e5",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a569411d-c0a9-4b7d-9115-f26ccb05da1c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.12"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "7097a098-c6eb-4d6f-9ade-2d5fdd0c98b1",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b48c72ef-4294-4153-9e3d-c14e7c77fc0e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.38"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b8a6f59c-f486-4d92-8272-54c97d874f7f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.89"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "af981b6d-496d-4dd6-8363-c01b88e17b28",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.92"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a9d52574-204d-4636-8327-7ba3f7c5a8bc",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.98"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a8000abf-12b3-49d8-8c4b-4e3bd09dda07",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.10"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "996088f0-1022-44fe-b718-30460a9e4c88",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "669a8b18-c607-4001-9d99-3fac59a5cdb5",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "fa8d51ff-7cba-4108-869f-c1b4da1a045e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "46c18442-17ef-41e3-bb75-3250a921927d",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.94"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "3ef6a479-4dd7-4ad4-b3ef-fb57e0338fc3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "06a70326-a347-46cf-a47b-4e08e401094a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.18"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "fe7f0a82-e00a-4ddc-8c95-9e9b207e31f7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "11e08076-7df9-412a-ad2b-8b82eddf27f3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "cf580c4e-7fb5-4c86-afc7-ff7a5de0a704",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e0c5fb2b-c565-4017-af66-bd35c6bed4d1",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "71e973fe-b889-4811-a276-f8f3136f6ff5",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e8c7749d-78c0-44f6-a7de-29dc24ad7d3d",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e4b5cdcd-aaa4-4ef6-9002-3175513a3f06",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.83"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "5a0a3d42-d04b-475d-9595-048f19fec0b6",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.89"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a802d467-f91e-404d-ab96-2b9ef084b90e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.01"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "38cd906f-5dea-44d9-901b-e86a47b04c98",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.13"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "6313d995-d0ff-4b42-be95-976d20c70e86",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "73cb7d9d-7ec4-49bd-b996-75d998fe6047",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.63"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "2a339a8b-eb50-4988-93f2-7741d37960ee",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.69"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "f2672357-223e-490b-96dc-060f5f05a242",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "0efc854e-e1fa-4165-9f1c-df974c7210f4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.55"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "4a0df7b1-203a-469c-a01f-f34b149ad021",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.59"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "aad7f1d3-2e16-4e9b-94e5-5182a3463e68",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.64"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "833b65b4-efa2-46f8-89e2-22fddf6ead36",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.75"
                    }
                  ],
                  "highlights": [
                    {
                      "title": "All investments are regulated by RBI",
                      "url": "https://images.dev.fixerra.in/illustrations/RBI@3x.png"
                    },
                    {
                      "title": "Women get up to 0.10% extra",
                      "url": "https://images.dev.fixerra.in/illustrations/Women@3x.png"
                    },
                    {
                      "title": "Maturity Amount is directly credited to your bank account",
                      "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": "1974"
                    },
                    {
                      "key": "Customers Served",
                      "value": "97  lakh+"
                    },
                    {
                      "key": "Number of Branches",
                      "value": "3000+"
                    },
                    {
                      "key": "CRISIL Rating",
                      "value": "AAA/Stable"
                    },
                    {
                      "key": "Assets Under Management",
                      "value": "₹2.3 lakh Cr+"
                    }
                  ],
                  "distinctMinTenureValues": [
                    {
                      "value": 1095
                    },
                    {
                      "value": 1521
                    },
                    {
                      "value": 1825
                    },
                    {
                      "value": 365
                    },
                    {
                      "value": 547
                    },
                    {
                      "value": 730
                    }
                  ],
                  "interestPayouts": [
                    "Monthly",
                    "Quarterly",
                    "HalfYearly",
                    "Yearly",
                    "Maturity"
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/c791d914-ef3b-4c63-a9be-f0d3d772e89a' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                },
                {
                  "description": "Response should contain issuer data (payload.issuerData)",
                  "passed": true,
                  "message": "Issuer data present (f_code=SHRI)"
                }
              ],
              "docsFile": "master-services/API_QA_GET_DETAIL_ISSUER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_FD_DETAIL_002",
              "caseName": "Get Shriram maturity quote and capture investment vehicle id",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:16.533Z",
              "endedAt": "2026-06-23T11:14:17.496Z",
              "durationMs": 963,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "25000",
                "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": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:17 GMT",
                "etag": "W/\"1bf-9gdKMvqDtTgzpI02Lwcd76bx6V0\"",
                "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": "960",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 26688
                      }
                    ]
                  }
                ],
                "maturity_amount": 26688
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=25000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "Maturity quote should include f_investment_vehicle_id",
                  "passed": true,
                  "message": "Vehicle id present (c05f82c4-f92f-4b37-96eb-a02e808b4f1f)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_FD_DETAIL_003",
              "caseName": "Get Shriram investment vehicle product list",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/investment-vehicle/shriram",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:17.496Z",
              "endedAt": "2026-06-23T11:14:17.509Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "109122",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:17 GMT",
                "etag": "W/\"1aa42-zoVBY0hNaUTX7bx3AY5wX8Qy1ss\"",
                "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": [
                {
                  "id": 41581,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.55",
                  "product_interest_pa_raw": "6.75"
                },
                {
                  "id": 41582,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "4a0df7b1-203a-469c-a01f-f34b149ad021",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.59",
                  "product_interest_pa_raw": "6.75"
                },
                {
                  "id": 41583,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "aad7f1d3-2e16-4e9b-94e5-5182a3463e68",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "6.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.64",
                  "product_interest_pa_raw": "6.75"
                },
                {
                  "id": 41584,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "833b65b4-efa2-46f8-89e2-22fddf6ead36",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.75",
                  "product_interest_pa_raw": "6.75"
                },
                {
                  "id": 41585,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "6313d995-d0ff-4b42-be95-976d20c70e86",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "6.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.60",
                  "product_interest_pa_raw": "6.80"
                },
                {
                  "id": 41586,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "73cb7d9d-7ec4-49bd-b996-75d998fe6047",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "6.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.63",
                  "product_interest_pa_raw": "6.80"
                },
                {
                  "id": 41587,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "2a339a8b-eb50-4988-93f2-7741d37960ee",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "6.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.69",
                  "product_interest_pa_raw": "6.80"
                },
                {
                  "id": 41588,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "f2672357-223e-490b-96dc-060f5f05a242",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.80",
                  "product_interest_pa_raw": "6.80"
                },
                {
                  "id": 41589,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "0efc854e-e1fa-4165-9f1c-df974c7210f4",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.80",
                  "product_interest_pa_raw": "6.80"
                },
                {
                  "id": 41590,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "6.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.75",
                  "product_interest_pa_raw": "6.75"
                },
                {
                  "id": 41591,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "81683072-64b3-4064-ad3b-c78472929728",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.02",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41592,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "5beeb733-2eb0-4403-8be8-af3240b2f0ec",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.06",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41593,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "9ab4d58e-9c6f-485d-8087-7fc021bd70f0",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.12",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41594,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "88ca58f2-3a7b-47d4-b844-eb7e98114151",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.25",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41595,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "457cfcc6-749d-4d0e-98e2-781f17356999",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.08",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41596,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "c428d70d-2d47-4e46-b665-be5a0d9e4c16",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.11",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41597,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "b7b8ec4e-b329-495f-aeab-4d06a14134d7",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.17",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41598,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "86b7a52c-77d4-47fa-944a-9471cfde0145",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.30",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41599,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a861ae19-0323-4a73-8ae1-0fb99a04e889",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.30",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41600,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "1b980525-688a-4e08-9019-0659b1156606",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 365,
                  "product_max_tenure": 365,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.25",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41601,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "e8c7749d-78c0-44f6-a7de-29dc24ad7d3d",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.00",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.80",
                  "product_interest_pa_raw": "7.00"
                },
                {
                  "id": 41602,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "e4b5cdcd-aaa4-4ef6-9002-3175513a3f06",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.00",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.83",
                  "product_interest_pa_raw": "7.00"
                },
                {
                  "id": 41603,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "5a0a3d42-d04b-475d-9595-048f19fec0b6",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.00",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.89",
                  "product_interest_pa_raw": "7.00"
                },
                {
                  "id": 41604,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a802d467-f91e-404d-ab96-2b9ef084b90e",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.00",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.01",
                  "product_interest_pa_raw": "7.00"
                },
                {
                  "id": 41605,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "669a8b18-c607-4001-9d99-3fac59a5cdb5",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.05",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.85",
                  "product_interest_pa_raw": "7.15"
                },
                {
                  "id": 41606,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "fa8d51ff-7cba-4108-869f-c1b4da1a045e",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.05",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.88",
                  "product_interest_pa_raw": "7.05"
                },
                {
                  "id": 41607,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "46c18442-17ef-41e3-bb75-3250a921927d",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.05",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.94",
                  "product_interest_pa_raw": "7.05"
                },
                {
                  "id": 41608,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "3ef6a479-4dd7-4ad4-b3ef-fb57e0338fc3",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.05",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.06",
                  "product_interest_pa_raw": "7.05"
                },
                {
                  "id": 41609,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "06a70326-a347-46cf-a47b-4e08e401094a",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.05",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.18",
                  "product_interest_pa_raw": "7.05"
                },
                {
                  "id": 41610,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "38cd906f-5dea-44d9-901b-e86a47b04c98",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.00",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.13",
                  "product_interest_pa_raw": "7.00"
                },
                {
                  "id": 41611,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "6d38021e-5996-4213-a042-7838854e8d11",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.50",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.27",
                  "product_interest_pa_raw": "7.50"
                },
                {
                  "id": 41612,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "22d95043-84ae-4cdf-a9fe-ff4ec24b3654",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.50",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.31",
                  "product_interest_pa_raw": "7.50"
                },
                {
                  "id": 41613,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a649d09e-14b4-42a9-996c-4dc2b53e5831",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.50",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.37",
                  "product_interest_pa_raw": "7.50"
                },
                {
                  "id": 41614,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "758a5d00-ab86-4138-b66b-8d5adb1dc841",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.50",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.51",
                  "product_interest_pa_raw": "7.50"
                },
                {
                  "id": 41615,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a3210aef-03a8-4cc4-960f-1c6b4af734cc",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.55",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.31",
                  "product_interest_pa_raw": "7.55"
                },
                {
                  "id": 41616,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "4a0c5ec2-1ffa-43c8-bb50-6e906b64103c",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.55",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.36",
                  "product_interest_pa_raw": "7.55"
                },
                {
                  "id": 41617,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "8ef82698-af97-4237-abdf-0ffa4c1ce5b9",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.55",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.42",
                  "product_interest_pa_raw": "7.55"
                },
                {
                  "id": 41618,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "66b09437-b182-43ae-b691-5154233e72e5",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.55",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.56",
                  "product_interest_pa_raw": "7.55"
                },
                {
                  "id": 41619,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "b39a3058-518f-4273-811a-ff1f1df04633",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.55",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.70",
                  "product_interest_pa_raw": "7.55"
                },
                {
                  "id": 41620,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "6da28cad-616a-40b9-a120-f63f797b725a",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 547,
                  "product_max_tenure": 547,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.50",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.64",
                  "product_interest_pa_raw": "7.50"
                },
                {
                  "id": 41621,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "fe7f0a82-e00a-4ddc-8c95-9e9b207e31f7",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.05",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.05",
                  "product_interest_pa_raw": "7.05"
                },
                {
                  "id": 41622,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "11e08076-7df9-412a-ad2b-8b82eddf27f3",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.05",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.05",
                  "product_interest_pa_raw": "7.05"
                },
                {
                  "id": 41623,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "cf580c4e-7fb5-4c86-afc7-ff7a5de0a704",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.05",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.05",
                  "product_interest_pa_raw": "7.05"
                },
                {
                  "id": 41624,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "e0c5fb2b-c565-4017-af66-bd35c6bed4d1",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.05",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.05",
                  "product_interest_pa_raw": "7.05"
                },
                {
                  "id": 41625,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "b8a6f59c-f486-4d92-8272-54c97d874f7f",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.10",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.89",
                  "product_interest_pa_raw": "7.10"
                },
                {
                  "id": 41626,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "af981b6d-496d-4dd6-8363-c01b88e17b28",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.10",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.92",
                  "product_interest_pa_raw": "7.10"
                },
                {
                  "id": 41627,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a9d52574-204d-4636-8327-7ba3f7c5a8bc",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.10",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "6.98",
                  "product_interest_pa_raw": "7.10"
                },
                {
                  "id": 41628,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a8000abf-12b3-49d8-8c4b-4e3bd09dda07",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.10",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.10",
                  "product_interest_pa_raw": "7.10"
                },
                {
                  "id": 41629,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "996088f0-1022-44fe-b718-30460a9e4c88",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.10",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.35",
                  "product_interest_pa_raw": "7.10"
                },
                {
                  "id": 41630,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "71e973fe-b889-4811-a276-f8f3136f6ff5",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.05",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": null,
                  "product_interest_pa_raw": "7.05"
                },
                {
                  "id": 41631,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "64b46f00-5f67-499c-bdde-bacc17adc389",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.55",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.31",
                  "product_interest_pa_raw": "7.55"
                },
                {
                  "id": 41632,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "4bb8f360-3958-4a16-a69e-e61a66d43aa3",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.55",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.35",
                  "product_interest_pa_raw": "7.55"
                },
                {
                  "id": 41633,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "d5a276d7-ffda-4680-9caa-e2bb87bd48fa",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.55",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.41",
                  "product_interest_pa_raw": "7.55"
                },
                {
                  "id": 41634,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "67955c55-61e6-4f0c-87e6-2a05aae26bb3",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.55",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.55",
                  "product_interest_pa_raw": "7.55"
                },
                {
                  "id": 41635,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "1fa4fcf9-27b3-4236-b909-6611d5039664",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.60",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.36",
                  "product_interest_pa_raw": "7.60"
                },
                {
                  "id": 41636,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "e6fe093c-1149-48c2-abce-e3509b5253f9",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.60",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.39",
                  "product_interest_pa_raw": "7.60"
                },
                {
                  "id": 41637,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "912842bd-45cd-48ef-b470-f7343a17e6b7",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.60",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.46",
                  "product_interest_pa_raw": "7.60"
                },
                {
                  "id": 41638,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "3af629b5-30db-4833-9699-65e01a323255",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.60",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.60",
                  "product_interest_pa_raw": "7.60"
                },
                {
                  "id": 41639,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a974f8a1-11fd-458e-8926-83b6fd7060db",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.60",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.89",
                  "product_interest_pa_raw": "7.60"
                },
                {
                  "id": 41640,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a86e44d3-ea6e-4c6f-ba11-7483192a2f5f",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 730,
                  "product_max_tenure": 730,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.55",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.83",
                  "product_interest_pa_raw": "7.55"
                },
                {
                  "id": 41641,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "cb8d1712-6661-41bf-865d-7d2522fa7383",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.02",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41642,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "8418e3e1-561c-4be0-9046-57d1be6a81b3",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.06",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41643,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "25400e2e-18d8-42ca-8c2c-ec5f00da9b21",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.12",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41644,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "cec67f09-f21a-462c-8e5d-2e66c1ce6e48",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.25",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41645,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "729c39fb-1387-4166-a62e-976e51268df8",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.08",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41646,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "b98c6554-a305-494e-952e-75809afa5884",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.11",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41647,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "7bc714d5-b2b6-4084-8ba4-3dabcf05566e",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.17",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41648,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "b5a12e73-270c-4a72-ad80-93c0f50ff7ee",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.30",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41649,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "c6f77afa-9b8c-4b86-95e2-fbceb0894c73",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.85",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41650,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "6754d53d-3a2e-4f54-a4ef-4805c3404723",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": 3,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.79",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41651,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "16992686-c65c-4060-a287-9a1a9f05ad25",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.50",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41652,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "0fe77581-c93c-4e5c-8c65-f251f800f765",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.53",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41653,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "84bfb135-88c1-4870-9573-15c15e252b34",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.61",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41654,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "30446294-f090-401d-a91d-5449401387e7",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.75",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41655,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "664ae34d-f89e-4091-a111-019bfd0db470",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.54",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41656,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "e4856182-4062-4710-a241-e8166e02f3fb",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.58",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41657,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "e507f91a-72f6-4942-8325-259a547fc495",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.65",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41658,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "7d4a511c-185b-4d40-9da5-72a8de1fb5f0",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.80",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41659,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "d35c1b80-043c-432f-9c06-aced9cdcc120",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "8.42",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41660,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "0c70414b-c76f-4313-a276-2d6b8b0ac105",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": 10,
                  "product_min_tenure": 1095,
                  "product_max_tenure": 1095,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "8.37",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41661,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "fb61af7d-253c-4db2-a05f-cac6a4cd8d8c",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.02",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41662,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "1f154fdf-2a0b-498d-aaef-6094ba14547a",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.06",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41663,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "4823a80e-8304-4007-847f-569bbde49ab8",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.12",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41664,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "f8b158e4-62b8-4b53-ae72-1efc01b60df8",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.25",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41665,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "cdf58a25-250f-47b0-adb6-925c18f1229a",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.08",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41666,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "dca0309e-5aa1-43b5-be75-dd96eb82e839",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.11",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41667,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "0bea5cf5-478e-4919-be2f-926713970595",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.17",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41668,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "cc8a1902-e88f-4005-9b8f-b8f439eb59bd",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.30",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41669,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "16389033-6562-45bf-be45-fe210fa2ea08",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "8.19",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41670,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "27d91ad9-cd54-41c3-83a6-b0b57174de5b",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "8.13",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41671,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "5fa4ae62-1257-4370-980e-1cc03f816ab9",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.50",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41672,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "97a23579-69c4-462f-9983-f797e921cee6",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.53",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41673,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "ffab2420-42a5-435a-96fc-314245e37794",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.61",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41674,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "856dcf17-bc56-4ef9-a57d-540fac07d21b",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.75",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41675,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "585512f8-9f08-42f4-8695-b4bce4e628c2",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.54",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41676,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "6a96fb12-6dc3-4d42-8fc5-48099c9567b2",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.58",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41677,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "9dd283fd-2aff-486d-82fd-15191d8cacd9",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.65",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41678,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "9bc13fc9-5712-4434-8a53-0fa04247e8eb",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.80",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41679,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "9699ac0d-b5ea-4fdd-825b-e1dcdb596c0b",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "8.81",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41680,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "f8087c21-01e9-4a9c-8315-5ffb646af1ed",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1521,
                  "product_max_tenure": 1521,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "8.76",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41681,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "7f0bd032-5dc7-4120-adea-52c1266365d4",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.02",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41682,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "5f27929b-4f93-4a8a-8a18-6cf9d82606e5",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.06",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41683,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a569411d-c0a9-4b7d-9115-f26ccb05da1c",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.12",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41684,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "7097a098-c6eb-4d6f-9ade-2d5fdd0c98b1",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.25",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41685,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "55abbaa4-8d30-4a6a-93ae-ec2cc313359d",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.08",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41686,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a8de8bd5-5b2d-46ad-abb3-34d34936d3bf",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.11",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41687,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "4a08a2c0-7fea-4c87-a268-b83ffb9a4d98",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.17",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41688,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "69794790-55ef-42a4-bbae-3a3e41ef7e26",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.30",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41689,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "a32757dd-669a-4302-8578-6d6e2c992307",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.30",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "8.45",
                  "product_interest_pa_raw": "7.30"
                },
                {
                  "id": 41690,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "b48c72ef-4294-4153-9e3d-c14e7c77fc0e",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": false,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.25",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "8.38",
                  "product_interest_pa_raw": "7.25"
                },
                {
                  "id": 41691,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "83682cdf-1c01-49b5-ad1e-746be22c8deb",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.50",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41692,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "c3b33079-868d-4fab-bbd0-e9f9507bd732",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.53",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41693,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "28b933c7-656c-4d78-abbf-832789e475a8",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.61",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41694,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "99f63086-0430-4b1c-9a53-9657f4bc8eb4",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.75",
                  "product_interest_pa_raw": "7.75"
                },
                {
                  "id": 41695,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "7e90af6c-8e23-4af8-a9cb-f6d61638c13d",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Monthly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.54",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41696,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "e6ef7183-c046-4309-9863-97149d4abaaf",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Quarterly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.58",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41697,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "eae50d89-d8d7-427c-9282-80e541cce5e9",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "HalfYearly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.65",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41698,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "b75081e9-64a6-4060-ae04-58fcad077bb2",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "NC",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "7.80",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41699,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "8fcd4f28-c546-400b-bac1-03f84bee7967",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": true,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.80",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "9.11",
                  "product_interest_pa_raw": "7.80"
                },
                {
                  "id": 41700,
                  "f_product_id": "",
                  "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                  "f_investment_vehicle_id": "5b261dc6-8fd0-4db7-8a52-375b986921dd",
                  "product_details": "NULL",
                  "product_type": "FD",
                  "product_rank": null,
                  "product_min_tenure": 1825,
                  "product_max_tenure": 1825,
                  "product_min_investment": 5000,
                  "product_max_investment": 100000000,
                  "product_senior_citizen": true,
                  "product_effective_date": "2026-05-05T00:00:00.000Z",
                  "product_tax_saver": false,
                  "product_issuer_commision": "NULL",
                  "product_self_commision": "NULL",
                  "product_women": false,
                  "product_early_withdrawal": false,
                  "product_payout_term": "C",
                  "product_loc_in_period": "3",
                  "product_interest_freq": "Yearly",
                  "product_interest": "7.75",
                  "schema_code": "NULL",
                  "product_ineffective_date": null,
                  "bank_disabled_at": null,
                  "deleted_at": null,
                  "product_min_tenure_label": "",
                  "is_visible": true,
                  "product_tag": "NULL",
                  "permature_penalty": "",
                  "yield": "9.05",
                  "product_interest_pa_raw": "7.75"
                }
              ],
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/investment-vehicle/shriram' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                },
                {
                  "description": "Response should contain Shriram FD product variants with tenure/investment bounds",
                  "passed": true,
                  "message": "120 Shriram FD product variant(s) returned"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_MAT_AUTH_001",
              "caseName": "SHRI maturity should reject missing auth",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:17.510Z",
              "endedAt": "2026-06-23T11:14:17.631Z",
              "durationMs": 121,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "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": "79",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:17 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/SHRI?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'",
              "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": "SHRI_MAT_FREQ001",
              "caseName": "SHRI Maturity payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:17.631Z",
              "endedAt": "2026-06-23T11:14:17.741Z",
              "durationMs": 110,
              "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": "false",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:17 GMT",
                "etag": "W/\"1bf-YOy4RFKYoQq9I8IZ16T4ZzTtilM\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 10676
                      }
                    ]
                  }
                ],
                "maturity_amount": 10676
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?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 'apikey: d4****bb'",
              "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": "SHRI_MAT_FREQ002",
              "caseName": "SHRI Monthly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:17.741Z",
              "endedAt": "2026-06-23T11:14:17.771Z",
              "durationMs": 30,
              "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",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "890",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:17 GMT",
                "etag": "W/\"37a-Q2lz/sSrIQuEUUZYHaqlWKc0UNc\"",
                "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": "26",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                "average_yield": "6.55",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 14.79
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 55
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 55
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 55
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 55
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 55
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 55
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 55
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 55
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 55
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 55
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 55
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 55,
                "total_payout": 660
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?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 'apikey: d4****bb'",
              "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": "SHRI_MAT_FREQ003",
              "caseName": "SHRI Quarterly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:17.771Z",
              "endedAt": "2026-06-23T11:14:17.790Z",
              "durationMs": 19,
              "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",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "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:14:17 GMT",
                "etag": "W/\"270-q9da6uINQPWdx9wzEErPRGZbe6A\"",
                "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": "16",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Quarterly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "4a0df7b1-203a-469c-a01f-f34b149ad021",
                "average_yield": "6.59",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 14.79
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 165
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 165
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 165
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 165,
                "total_payout": 660
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?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 'apikey: d4****bb'",
              "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": "SHRI_MAT_FREQ004",
              "caseName": "SHRI HalfYearly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:17.790Z",
              "endedAt": "2026-06-23T11:14:17.810Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "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": "556",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:17 GMT",
                "etag": "W/\"22c-Uun8vVrZeW/aw8LYaykSZaqBWc0\"",
                "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": "17",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "HalfYearly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "aad7f1d3-2e16-4e9b-94e5-5182a3463e68",
                "average_yield": "6.64",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-09-30",
                        "amount": 184.93
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 332
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 332,
                "total_payout": 664
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?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 'apikey: d4****bb'",
              "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": "SHRI_MAT_FREQ005",
              "caseName": "SHRI Yearly payout success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:17.810Z",
              "endedAt": "2026-06-23T11:14:17.829Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "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": "494",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:17 GMT",
                "etag": "W/\"1ee-MBvxxjDYIPopaehafkQufaubP7o\"",
                "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": "16",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Yearly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "833b65b4-efa2-46f8-89e2-22fddf6ead36",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 521.51
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 675,
                "total_payout": 675
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?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 'apikey: d4****bb'",
              "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": "SHRI_MAT_BOUND_001",
              "caseName": "SHRI min amount boundary success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:17.829Z",
              "endedAt": "2026-06-23T11:14:17.838Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:17 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "SHRI_MAT_BOUND_002",
              "caseName": "SHRI max amount boundary success",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:17.838Z",
              "endedAt": "2026-06-23T11:14:18.634Z",
              "durationMs": 796,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "1825",
                "investment_amount": "100000000",
                "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": "457",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:18 GMT",
                "etag": "W/\"1c9-0z5h9wYIRmFkTDRq6PR3QFReqLo\"",
                "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": "793",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "7.25",
                "payout_frequency": "Maturity",
                "maturity_date": "2031-06-22",
                "maturity_date_ist": "2031-06-22",
                "f_investment_vehicle_id": "b48c72ef-4294-4153-9e3d-c14e7c77fc0e",
                "average_yield": "8.38",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 1825,
                "product_max_tenure": 1825,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2031,
                    "data": [
                      {
                        "date": "2031-06-22",
                        "amount": 141903536
                      }
                    ]
                  }
                ],
                "maturity_amount": 141903536
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=1825&investment_amount=100000000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "SHRI_MAT_BOUND_003",
              "caseName": "SHRI amount below min should fail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:18.634Z",
              "endedAt": "2026-06-23T11:14:18.644Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "4000",
                "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:14:18 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/SHRI?tenure=365&investment_amount=4000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "SHRI_MAT_BOUND_004",
              "caseName": "SHRI tenure below min should fail",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:18.644Z",
              "endedAt": "2026-06-23T11:14:18.671Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "364",
                "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:14:18 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": "23",
                "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/SHRI?tenure=364&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 'apikey: d4****bb'",
              "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": "SHRI_MAT_NBFC_001",
              "caseName": "SHRI non-multiple amount should fail FIXMAS091",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:18.671Z",
              "endedAt": "2026-06-23T11:14:18.675Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "100500",
                "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": "201",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:18 GMT",
                "etag": "W/\"c9-2re6GDMEIAEFJ1IzkNKzA/vr5Vo\"",
                "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": "FIXMAS091",
                    "error": "investment_amount should be a multiple of 1000"
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=100500&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "Body should be Fixerra error with FIXMAS091",
                  "passed": true,
                  "message": "FIXMAS091 present"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXMAS091"
              ]
            },
            {
              "caseId": "SHRI_MAT_WOMEN_001",
              "caseName": "SHRI women_citizen=true should succeed",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:18.675Z",
              "endedAt": "2026-06-23T11:14:19.467Z",
              "durationMs": 792,
              "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",
                "product_type": "FD"
              },
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "447",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:19 GMT",
                "etag": "W/\"1bf-TO1P6nskLAfloxIHgMYm9hQ0Z0s\"",
                "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": "788",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.80",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0efc854e-e1fa-4165-9f1c-df974c7210f4",
                "average_yield": "6.80",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 10681
                      }
                    ]
                  }
                ],
                "maturity_amount": 10681
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&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 'apikey: d4****bb'",
              "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": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:19.467Z",
              "endedAt": "2026-06-23T11:14:19.478Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:19 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_interest should be a non-empty numeric string",
                  "passed": true,
                  "message": "product_interest=\"6.75\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:19.478Z",
              "endedAt": "2026-06-23T11:14:19.510Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:19 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": "29",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"6.75\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:19.510Z",
              "endedAt": "2026-06-23T11:14:19.600Z",
              "durationMs": 90,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:19 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"2027-06-23\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:19.600Z",
              "endedAt": "2026-06-23T11:14:19.689Z",
              "durationMs": 89,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:19 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"c05f82c4-f92f-4b37-96eb-a02e808b4f1f\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_MAT_009",
              "caseName": "Verify minimum investment amount returned (5000)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:19.689Z",
              "endedAt": "2026-06-23T11:14:19.698Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:19 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_min_investment should equal 5000",
                  "passed": true,
                  "message": "product_min_investment=5000"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_MAT_010",
              "caseName": "Verify maximum investment amount returned (100000000)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:19.698Z",
              "endedAt": "2026-06-23T11:14:19.707Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:19 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_max_investment should equal 100000000",
                  "passed": true,
                  "message": "product_max_investment=100000000"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:19.708Z",
              "endedAt": "2026-06-23T11:14:19.717Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:19 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=5338 > principal=5000"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_MAT_042",
              "caseName": "Verify total_payout returned for monthly (non-cumulative) FD",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:19.717Z",
              "endedAt": "2026-06-23T11:14:20.501Z",
              "durationMs": 784,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "903",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:20 GMT",
                "etag": "W/\"387-Qi234IsFsClcc1eOxJJrr/bS7v4\"",
                "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": "781",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                "average_yield": "6.55",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 73.97
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 273
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 273
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 273
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 273
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 273
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 273,
                "total_payout": 3276
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.total_payout should be a positive number",
                  "passed": true,
                  "message": "total_payout=3276"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_MAT_043",
              "caseName": "Verify payout_amount field present for monthly (non-cumulative) FD",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.501Z",
              "endedAt": "2026-06-23T11:14:20.517Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "903",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:20 GMT",
                "etag": "W/\"387-Qi234IsFsClcc1eOxJJrr/bS7v4\"",
                "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": "13",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                "average_yield": "6.55",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 73.97
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 273
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 273
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 273
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 273
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 273
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 273,
                "total_payout": 3276
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.payout_amount should be a positive number",
                  "passed": true,
                  "message": "payout_amount=273"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.517Z",
              "endedAt": "2026-06-23T11:14:20.531Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "903",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:20 GMT",
                "etag": "W/\"387-Qi234IsFsClcc1eOxJJrr/bS7v4\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                "average_yield": "6.55",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 73.97
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 273
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 273
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 273
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 273
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 273
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 273,
                "total_payout": 3276
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.531Z",
              "endedAt": "2026-06-23T11:14:20.547Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "903",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:20 GMT",
                "etag": "W/\"387-Qi234IsFsClcc1eOxJJrr/bS7v4\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                "average_yield": "6.55",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 73.97
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 273
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 273
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 273
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 273
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 273
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 273,
                "total_payout": 3276
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.547Z",
              "endedAt": "2026-06-23T11:14:20.630Z",
              "durationMs": 83,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:14:20 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/SHRI?tenure=365&investment_amount=5000&payout_frequency=Weekly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "SHRI_MAT_059",
              "caseName": "Verify missing API key is rejected",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:20.631Z",
              "endedAt": "2026-06-23T11:14:20.635Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:14:20 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/SHRI?tenure=365&investment_amount=5000&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 an auth/validation error (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": "SHRI_MAT_060",
              "caseName": "Verify a non-empty (invalid) API key value still passes (apikey presence bypasses partner-key check)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.636Z",
              "endedAt": "2026-06-23T11:14:20.645Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "in****yz"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:20 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: in****yz'",
              "validations": [
                {
                  "description": "apikey header presence bypasses partner-key validation regardless of its value, so the request should succeed with maturity data",
                  "passed": true,
                  "message": "Request succeeded with maturity data (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": "SHRI_MAT_063",
              "caseName": "Verify blank API key header is rejected",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:20.645Z",
              "endedAt": "2026-06-23T11:14:20.731Z",
              "durationMs": 86,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "****"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:14:20 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/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: ****'",
              "validations": [
                {
                  "description": "Should reject with an auth/validation error (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": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.731Z",
              "endedAt": "2026-06-23T11:14:20.740Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:20 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.741Z",
              "endedAt": "2026-06-23T11:14:20.750Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:20 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "Response should complete within 2000ms",
                  "passed": true,
                  "message": "duration=9ms"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_MAT_069",
              "caseName": "Verify SQL injection payload in investment_amount is safely ignored (leading numeric value '5000' is parsed, no injection)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.750Z",
              "endedAt": "2026-06-23T11:14:20.830Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000' 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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:20 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000%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 'apikey: d4****bb'",
              "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=5338"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.831Z",
              "endedAt": "2026-06-23T11:14:20.836Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365' OR '1'='1",
                "investment_amount": "5000",
                "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:14:20 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/SHRI?tenure=365%27+OR+%271%27%3D%271&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.836Z",
              "endedAt": "2026-06-23T11:14:20.841Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:14:20 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/SHRI?tenure=365&investment_amount=5000&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 'apikey: d4****bb'",
              "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": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.841Z",
              "endedAt": "2026-06-23T11:14:20.845Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:14:20 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/SHRI?tenure=365&investment_amount=5000&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 'apikey: d4****bb'",
              "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": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.845Z",
              "endedAt": "2026-06-23T11:14:20.849Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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:14:20 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": "1",
                "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/SHRI?tenure=365&investment_amount=5000&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 'apikey: d4****bb'",
              "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": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:20.849Z",
              "endedAt": "2026-06-23T11:14:21.431Z",
              "durationMs": 582,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:21 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": "16",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:21.431Z",
              "endedAt": "2026-06-23T11:14:21.443Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:21 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=\"2027-06-23\""
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:21.443Z",
              "endedAt": "2026-06-23T11:14:21.458Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "50000",
                "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": "903",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:21 GMT",
                "etag": "W/\"387-Qi234IsFsClcc1eOxJJrr/bS7v4\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                "average_yield": "6.55",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 73.97
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 273
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 273
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 273
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 273
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 273
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 273
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 273
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 273,
                "total_payout": 3276
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=50000&payout_frequency=Monthly&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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": "SHRI_MAT_085",
              "caseName": "Verify product_min_tenure equals 365",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:21.458Z",
              "endedAt": "2026-06-23T11:14:21.468Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:21 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "HTTP 200"
                },
                {
                  "description": "payload.product_min_tenure should equal 365",
                  "passed": true,
                  "message": "product_min_tenure=365"
                }
              ],
              "docsFile": "master-services/API_QA_GET_ESTIMATED_MATURITY_PAYOUT.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:21.468Z",
              "endedAt": "2026-06-23T11:14:21.478Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:21 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Maturity&senior_citizen=false&women_citizen=false&tax_saver=false&product_type=FD' \\\n  -H 'Content-Type: application/json' \\\n  -H 'apikey: d4****bb'",
              "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=365, product_max_tenure=365"
                }
              ],
              "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/c791d914-ef3b-4c63-a9be-f0d3d772e89a",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:21.478Z",
              "endedAt": "2026-06-23T11:14:21.533Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {},
              "responseHeaders": {
                "access-control-allow-origin": "*",
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "93437",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:21 GMT",
                "etag": "W/\"16cfd-78SJxyl8cfES7e9MZT0021v+d7U\"",
                "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": "13",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "issuerData": {
                    "id": 1,
                    "name": "Shriram Finance Ltd",
                    "description": "Shriram Finance is a prominent financial institution with assets under management (AUM) of over ₹2.3 lakh crores. Founded in 1974, the company has grown to become a key player in the finance sector, catering to over 82.2 lakh customers through 3000+ branches. With a dedicated workforce of more than 75,000 employees, Shriram Finance continues to deliver a wide range of financial services and solutions.",
                    "f_code": "SHRI",
                    "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                    "url": "https://images.dev.fixerra.in/logos/shriram/Shriram.png",
                    "sub_logo": "https://images.dev.fixerra.in/logos/shriram/SHRIRAM-SMALL.png",
                    "compounding_freq": "Yearly",
                    "issuer_type": "NBFC",
                    "crisil_rating": "AAA/Stable",
                    "icra_rating": "AAA/Stable",
                    "trusted_users": "7CR+ Since 2022",
                    "hero_tag": "",
                    "subtag_1": "AA+ Rated by Crisil",
                    "subtag_2": "Compounds Yearly",
                    "is_range_required": true,
                    "bank_disabled_at": null,
                    "faq": "",
                    "active_issuer_rank": 10,
                    "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": false,
                    "enable_easy_split": false,
                    "pg_setting": "8898609d136b892f53436eea18e0b5e7:4de1de3f2a0607781fc3f5830da13419",
                    "is_nominee_required": false,
                    "bank_type": "",
                    "is_issuer_live": true,
                    "women_benefit": 0.05,
                    "senior_citizen_benefit": 0.5,
                    "minTenure": 365,
                    "maxTenure": 1825
                  },
                  "vehiclesPayload": [
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "664ae34d-f89e-4091-a111-019bfd0db470",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.54"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e4856182-4062-4710-a241-e8166e02f3fb",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.58"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e507f91a-72f6-4942-8325-259a547fc495",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.65"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "7d4a511c-185b-4d40-9da5-72a8de1fb5f0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "d35c1b80-043c-432f-9c06-aced9cdcc120",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.42"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "585512f8-9f08-42f4-8695-b4bce4e628c2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.54"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "6a96fb12-6dc3-4d42-8fc5-48099c9567b2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.58"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "9dd283fd-2aff-486d-82fd-15191d8cacd9",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.65"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "9bc13fc9-5712-4434-8a53-0fa04247e8eb",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "9699ac0d-b5ea-4fdd-825b-e1dcdb596c0b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.81"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "7e90af6c-8e23-4af8-a9cb-f6d61638c13d",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.54"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e6ef7183-c046-4309-9863-97149d4abaaf",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.58"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "eae50d89-d8d7-427c-9282-80e541cce5e9",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.65"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b75081e9-64a6-4060-ae04-58fcad077bb2",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "8fcd4f28-c546-400b-bac1-03f84bee7967",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "16992686-c65c-4060-a287-9a1a9f05ad25",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.50"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "0fe77581-c93c-4e5c-8c65-f251f800f765",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.53"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "84bfb135-88c1-4870-9573-15c15e252b34",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.61"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "30446294-f090-401d-a91d-5449401387e7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "0c70414b-c76f-4313-a276-2d6b8b0ac105",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": 10,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.37"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "5fa4ae62-1257-4370-980e-1cc03f816ab9",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.50"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "97a23579-69c4-462f-9983-f797e921cee6",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.53"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "ffab2420-42a5-435a-96fc-314245e37794",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.61"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "856dcf17-bc56-4ef9-a57d-540fac07d21b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "f8087c21-01e9-4a9c-8315-5ffb646af1ed",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.76"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "83682cdf-1c01-49b5-ad1e-746be22c8deb",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.50"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "c3b33079-868d-4fab-bbd0-e9f9507bd732",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.53"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "28b933c7-656c-4d78-abbf-832789e475a8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.61"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "99f63086-0430-4b1c-9a53-9657f4bc8eb4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "5b261dc6-8fd0-4db7-8a52-375b986921dd",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "9.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "1fa4fcf9-27b3-4236-b909-6611d5039664",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.36"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e6fe093c-1149-48c2-abce-e3509b5253f9",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.39"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "912842bd-45cd-48ef-b470-f7343a17e6b7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.46"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "3af629b5-30db-4833-9699-65e01a323255",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a974f8a1-11fd-458e-8926-83b6fd7060db",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.60",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.89"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a3210aef-03a8-4cc4-960f-1c6b4af734cc",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.31"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "4a0c5ec2-1ffa-43c8-bb50-6e906b64103c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.36"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "8ef82698-af97-4237-abdf-0ffa4c1ce5b9",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.42"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "66b09437-b182-43ae-b691-5154233e72e5",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.56"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b39a3058-518f-4273-811a-ff1f1df04633",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.70"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "64b46f00-5f67-499c-bdde-bacc17adc389",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.31"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "4bb8f360-3958-4a16-a69e-e61a66d43aa3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "d5a276d7-ffda-4680-9caa-e2bb87bd48fa",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.41"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "67955c55-61e6-4f0c-87e6-2a05aae26bb3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.55"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a86e44d3-ea6e-4c6f-ba11-7483192a2f5f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.55",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.83"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "6d38021e-5996-4213-a042-7838854e8d11",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.27"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "22d95043-84ae-4cdf-a9fe-ff4ec24b3654",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.31"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a649d09e-14b4-42a9-996c-4dc2b53e5831",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.37"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "758a5d00-ab86-4138-b66b-8d5adb1dc841",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.51"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "6da28cad-616a-40b9-a120-f63f797b725a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.50",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.64"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "457cfcc6-749d-4d0e-98e2-781f17356999",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "c428d70d-2d47-4e46-b665-be5a0d9e4c16",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b7b8ec4e-b329-495f-aeab-4d06a14134d7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.17"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "86b7a52c-77d4-47fa-944a-9471cfde0145",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a861ae19-0323-4a73-8ae1-0fb99a04e889",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "729c39fb-1387-4166-a62e-976e51268df8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b98c6554-a305-494e-952e-75809afa5884",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "7bc714d5-b2b6-4084-8ba4-3dabcf05566e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.17"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b5a12e73-270c-4a72-ad80-93c0f50ff7ee",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "c6f77afa-9b8c-4b86-95e2-fbceb0894c73",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.85"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "cdf58a25-250f-47b0-adb6-925c18f1229a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "dca0309e-5aa1-43b5-be75-dd96eb82e839",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "0bea5cf5-478e-4919-be2f-926713970595",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.17"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "cc8a1902-e88f-4005-9b8f-b8f439eb59bd",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "16389033-6562-45bf-be45-fe210fa2ea08",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.19"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "55abbaa4-8d30-4a6a-93ae-ec2cc313359d",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.08"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a8de8bd5-5b2d-46ad-abb3-34d34936d3bf",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.11"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "4a08a2c0-7fea-4c87-a268-b83ffb9a4d98",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.17"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "69794790-55ef-42a4-bbae-3a3e41ef7e26",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.30"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a32757dd-669a-4302-8578-6d6e2c992307",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.30",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.45"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "81683072-64b3-4064-ad3b-c78472929728",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.02"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "5beeb733-2eb0-4403-8be8-af3240b2f0ec",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "9ab4d58e-9c6f-485d-8087-7fc021bd70f0",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.12"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "88ca58f2-3a7b-47d4-b844-eb7e98114151",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "1b980525-688a-4e08-9019-0659b1156606",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": true,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "cb8d1712-6661-41bf-865d-7d2522fa7383",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.02"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "8418e3e1-561c-4be0-9046-57d1be6a81b3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "25400e2e-18d8-42ca-8c2c-ec5f00da9b21",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.12"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "cec67f09-f21a-462c-8e5d-2e66c1ce6e48",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "6754d53d-3a2e-4f54-a4ef-4805c3404723",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": 3,
                      "product_min_tenure": 1095,
                      "product_max_tenure": 1095,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.79"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "fb61af7d-253c-4db2-a05f-cac6a4cd8d8c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.02"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "1f154fdf-2a0b-498d-aaef-6094ba14547a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "4823a80e-8304-4007-847f-569bbde49ab8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.12"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "f8b158e4-62b8-4b53-ae72-1efc01b60df8",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "27d91ad9-cd54-41c3-83a6-b0b57174de5b",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1521,
                      "product_max_tenure": 1521,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.13"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "7f0bd032-5dc7-4120-adea-52c1266365d4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.02"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "5f27929b-4f93-4a8a-8a18-6cf9d82606e5",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a569411d-c0a9-4b7d-9115-f26ccb05da1c",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.12"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "7097a098-c6eb-4d6f-9ade-2d5fdd0c98b1",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.25"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b48c72ef-4294-4153-9e3d-c14e7c77fc0e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 1825,
                      "product_max_tenure": 1825,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.25",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "8.38"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "b8a6f59c-f486-4d92-8272-54c97d874f7f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.89"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "af981b6d-496d-4dd6-8363-c01b88e17b28",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.92"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a9d52574-204d-4636-8327-7ba3f7c5a8bc",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.98"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a8000abf-12b3-49d8-8c4b-4e3bd09dda07",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.10"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "996088f0-1022-44fe-b718-30460a9e4c88",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.10",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.35"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "669a8b18-c607-4001-9d99-3fac59a5cdb5",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.85"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "fa8d51ff-7cba-4108-869f-c1b4da1a045e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.88"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "46c18442-17ef-41e3-bb75-3250a921927d",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.94"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "3ef6a479-4dd7-4ad4-b3ef-fb57e0338fc3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.06"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "06a70326-a347-46cf-a47b-4e08e401094a",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.18"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "fe7f0a82-e00a-4ddc-8c95-9e9b207e31f7",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "11e08076-7df9-412a-ad2b-8b82eddf27f3",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "cf580c4e-7fb5-4c86-afc7-ff7a5de0a704",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e0c5fb2b-c565-4017-af66-bd35c6bed4d1",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.05"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "71e973fe-b889-4811-a276-f8f3136f6ff5",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 730,
                      "product_max_tenure": 730,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.05",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": null
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e8c7749d-78c0-44f6-a7de-29dc24ad7d3d",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "e4b5cdcd-aaa4-4ef6-9002-3175513a3f06",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.83"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "5a0a3d42-d04b-475d-9595-048f19fec0b6",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.89"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a802d467-f91e-404d-ab96-2b9ef084b90e",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.01"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "38cd906f-5dea-44d9-901b-e86a47b04c98",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 547,
                      "product_max_tenure": 547,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "7.00",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "7.13"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "6313d995-d0ff-4b42-be95-976d20c70e86",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.60"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "73cb7d9d-7ec4-49bd-b996-75d998fe6047",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.63"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "2a339a8b-eb50-4988-93f2-7741d37960ee",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.69"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "f2672357-223e-490b-96dc-060f5f05a242",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "0efc854e-e1fa-4165-9f1c-df974c7210f4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": true,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.80",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.80"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Monthly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.55"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "4a0df7b1-203a-469c-a01f-f34b149ad021",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Quarterly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.59"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "aad7f1d3-2e16-4e9b-94e5-5182a3463e68",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "HalfYearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.64"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "833b65b4-efa2-46f8-89e2-22fddf6ead36",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "NC",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.75"
                    },
                    {
                      "f_product_id": "",
                      "f_issuer_id": "c791d914-ef3b-4c63-a9be-f0d3d772e89a",
                      "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                      "product_details": "NULL",
                      "product_type": "FD",
                      "product_rank": null,
                      "product_min_tenure": 365,
                      "product_max_tenure": 365,
                      "product_min_investment": 5000,
                      "product_max_investment": 100000000,
                      "product_senior_citizen": false,
                      "product_effective_date": "2026-05-05T00:00:00.000Z",
                      "product_tax_saver": false,
                      "product_issuer_commision": "NULL",
                      "product_self_commision": "NULL",
                      "product_women": false,
                      "product_early_withdrawal": false,
                      "product_payout_term": "C",
                      "product_loc_in_period": "3",
                      "product_interest_freq": "Yearly",
                      "product_interest": "6.75",
                      "product_ineffective_date": null,
                      "product_min_tenure_label": "",
                      "is_visible": true,
                      "yield": "6.75"
                    }
                  ],
                  "highlights": [
                    {
                      "title": "All investments are regulated by RBI",
                      "url": "https://images.dev.fixerra.in/illustrations/RBI@3x.png"
                    },
                    {
                      "title": "Women get up to 0.10% extra",
                      "url": "https://images.dev.fixerra.in/illustrations/Women@3x.png"
                    },
                    {
                      "title": "Maturity Amount is directly credited to your bank account",
                      "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": "1974"
                    },
                    {
                      "key": "Customers Served",
                      "value": "97  lakh+"
                    },
                    {
                      "key": "Number of Branches",
                      "value": "3000+"
                    },
                    {
                      "key": "CRISIL Rating",
                      "value": "AAA/Stable"
                    },
                    {
                      "key": "Assets Under Management",
                      "value": "₹2.3 lakh Cr+"
                    }
                  ],
                  "distinctMinTenureValues": [
                    {
                      "value": 1095
                    },
                    {
                      "value": 1521
                    },
                    {
                      "value": 1825
                    },
                    {
                      "value": 365
                    },
                    {
                      "value": 547
                    },
                    {
                      "value": 730
                    }
                  ],
                  "interestPayouts": [
                    "Monthly",
                    "Quarterly",
                    "HalfYearly",
                    "Yearly",
                    "Maturity"
                  ]
                }
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/detail/c791d914-ef3b-4c63-a9be-f0d3d772e89a' \\\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 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/c791d914-ef3b-4c63-a9be-f0d3d772e89a",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:21.533Z",
              "endedAt": "2026-06-23T11:14:21.537Z",
              "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:14:21 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/c791d914-ef3b-4c63-a9be-f0d3d772e89a' \\\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/c791d914-ef3b-4c63-a9be-f0d3d772e89a",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:21.537Z",
              "endedAt": "2026-06-23T11:14:21.543Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "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:14:21 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": "3",
                "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/c791d914-ef3b-4c63-a9be-f0d3d772e89a?product_type=ABC' \\\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_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-SHRI-001_0",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:21.543Z",
              "endedAt": "2026-06-23T11:14:21.552Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:21 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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-SHRI-002_1",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:21.552Z",
              "endedAt": "2026-06-23T11:14:21.630Z",
              "durationMs": 78,
              "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": "890",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:21 GMT",
                "etag": "W/\"37a-Q2lz/sSrIQuEUUZYHaqlWKc0UNc\"",
                "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": "11",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                "average_yield": "6.55",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 14.79
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 55
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 55
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 55
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 55
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 55
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 55
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 55
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 55
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 55
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 55
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 55
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 55,
                "total_payout": 660
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?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-SHRI-003_2",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:21.630Z",
              "endedAt": "2026-06-23T11:14:21.646Z",
              "durationMs": 16,
              "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": "624",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:21 GMT",
                "etag": "W/\"270-q9da6uINQPWdx9wzEErPRGZbe6A\"",
                "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": "12",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Quarterly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "4a0df7b1-203a-469c-a01f-f34b149ad021",
                "average_yield": "6.59",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 14.79
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 165
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 165
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 165
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 165,
                "total_payout": 660
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?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-SHRI-004_3",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:21.646Z",
              "endedAt": "2026-06-23T11:14:22.414Z",
              "durationMs": 768,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "730",
                "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": "650",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:22 GMT",
                "etag": "W/\"28a-br5H1CSkwRg+ztjG5+8dc2939Zk\"",
                "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": "765",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "7.05",
                "payout_frequency": "HalfYearly",
                "maturity_date": "2028-06-22",
                "maturity_date_ist": "2028-06-22",
                "f_investment_vehicle_id": "cf580c4e-7fb5-4c86-afc7-ff7a5de0a704",
                "average_yield": "7.05",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 730,
                "product_max_tenure": 730,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-09-30",
                        "amount": 192.89
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 347
                      },
                      {
                        "date": "2027-09-30",
                        "amount": 347
                      }
                    ]
                  },
                  {
                    "year": 2028,
                    "data": [
                      {
                        "date": "2028-03-31",
                        "amount": 347
                      },
                      {
                        "date": "2028-06-22",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 347,
                "total_payout": 1388
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=730&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'",
              "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-SHRI-005_4",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:22.414Z",
              "endedAt": "2026-06-23T11:14:22.434Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "730",
                "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": "553",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:22 GMT",
                "etag": "W/\"229-uz8+Svtpjb83VFHsbGPlMfD4tOc\"",
                "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": "16",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "7.05",
                "payout_frequency": "Yearly",
                "maturity_date": "2028-06-22",
                "maturity_date_ist": "2028-06-22",
                "f_investment_vehicle_id": "e0c5fb2b-c565-4017-af66-bd35c6bed4d1",
                "average_yield": "7.05",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 730,
                "product_max_tenure": 730,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-03-31",
                        "amount": 543.94
                      }
                    ]
                  },
                  {
                    "year": 2028,
                    "data": [
                      {
                        "date": "2028-03-31",
                        "amount": 705
                      },
                      {
                        "date": "2028-06-22",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 705,
                "total_payout": 1410
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=730&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'",
              "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-POS-003_5",
              "caseName": "[POSITIVE] SHRI valid min boundary",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:22.434Z",
              "endedAt": "2026-06-23T11:14:22.444Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:22 GMT",
                "etag": "W/\"1bd-ncEMbGuH6igy9A/Q3v0Z8EVxGro\"",
                "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": {
                "product_interest": "6.75",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "c05f82c4-f92f-4b37-96eb-a02e808b4f1f",
                "average_yield": "6.75",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5338
                      }
                    ]
                  }
                ],
                "maturity_amount": 5338
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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-POS-004_6",
              "caseName": "[POSITIVE] SHRI above max investment (should fail)",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:22.444Z",
              "endedAt": "2026-06-23T11:14:22.453Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "1825",
                "investment_amount": "999999000",
                "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:14:22 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/SHRI?tenure=1825&investment_amount=999999000&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": "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": [
                "FIXMAS092"
              ],
              "actualErrorCodes": [
                "FIXMAS092"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-LIMIT-SHRI-001_7",
              "caseName": "[EDGE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:22.453Z",
              "endedAt": "2026-06-23T11:14:22.463Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-LIMIT-SHRI-001"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "4000",
                "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:14:22 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/SHRI?tenure=365&investment_amount=4000&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-SHRI-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-SHRI-002_8",
              "caseName": "[EDGE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:22.463Z",
              "endedAt": "2026-06-23T11:14:22.473Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-LIMIT-SHRI-002"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "1100000000",
                "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:14:22 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/SHRI?tenure=365&investment_amount=1100000000&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-SHRI-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-SHRI-001_9",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:22.473Z",
              "endedAt": "2026-06-23T11:14:22.484Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "192",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:22 GMT",
                "etag": "W/\"c0-93bI5/OhS+luDK8tJtJZx7vb+Qk\"",
                "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": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS090",
                    "error": "Shriram doesnt support tax saver Fds."
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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": [
                "FIXMAS090"
              ],
              "actualErrorCodes": [
                "FIXMAS090"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_TC-MAT-WOM-SHRI-001_10",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:22.484Z",
              "endedAt": "2026-06-23T11:14:23.257Z",
              "durationMs": 773,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:23 GMT",
                "etag": "W/\"1bd-rAX4Ourd/EMs8ZqmAX0PY8jVwPY\"",
                "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": "770",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.80",
                "payout_frequency": "Maturity",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "0efc854e-e1fa-4165-9f1c-df974c7210f4",
                "average_yield": "6.80",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5341
                      }
                    ]
                  }
                ],
                "maturity_amount": 5341
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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": "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-SR-SHRI-001_11",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:23.257Z",
              "endedAt": "2026-06-23T11:14:24.039Z",
              "durationMs": 782,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:24 GMT",
                "etag": "W/\"1bd-bxLVxi1902BIXZoh0Nqwj3zC3e4\"",
                "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": "777",
                "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": "1b980525-688a-4e08-9019-0659b1156606",
                "average_yield": "7.25",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-06-23",
                        "amount": 5363
                      }
                    ]
                  }
                ],
                "maturity_amount": 5363
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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_TC-MAT-EDG-005_12",
              "caseName": "[EDGE] Very large valid amount near SHRI max",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:24.040Z",
              "endedAt": "2026-06-23T11:14:24.050Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "TC-MAT-EDG-005"
              },
              "requestQuery": {
                "tenure": "1825",
                "investment_amount": "999999000",
                "payout_frequency": "Yearly",
                "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": "214",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:24 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": "8",
                "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/SHRI?tenure=1825&investment_amount=999999000&payout_frequency=Yearly&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\":\"TC-MAT-EDG-005\"}'",
              "validations": [
                {
                  "description": "HTTP status should be 200",
                  "passed": true,
                  "message": "Got 200"
                }
              ],
              "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": [
                "FIXMAS092"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-001_13",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:24.051Z",
              "endedAt": "2026-06-23T11:14:24.828Z",
              "durationMs": 777,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "888",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:24 GMT",
                "etag": "W/\"378-Vrnsge9VhWZ9qERPLej92zzqmeM\"",
                "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": "775",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "6.75",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "a3de69dc-dc1d-4dbc-86b9-1e4b1914cfe4",
                "average_yield": "6.55",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 7.4
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 28
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 28
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 28
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 28
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 28
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 28
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 28
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 28
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 28
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 28
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 28
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 28,
                "total_payout": 336
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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_14",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:24.828Z",
              "endedAt": "2026-06-23T11:14:25.604Z",
              "durationMs": 776,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "889",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:25 GMT",
                "etag": "W/\"379-oE/0dWJog0Uwnvf4ZL4rBhJMGnY\"",
                "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": "773",
                "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": "81683072-64b3-4064-ad3b-c78472929728",
                "average_yield": "7.02",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 7.95
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 30
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 30
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 30
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 30
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 30
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 30
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 30
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 30
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 30
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 30
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 30
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 30,
                "total_payout": 360
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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_15",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:25.605Z",
              "endedAt": "2026-06-23T11:14:26.374Z",
              "durationMs": 769,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "889",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:26 GMT",
                "etag": "W/\"379-v/kFbFprEbYdsbg+sTxKZZSo768\"",
                "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": "766",
                "server": "envoy",
                "connection": "close"
              },
              "responseBody": {
                "product_interest": "6.80",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "6313d995-d0ff-4b42-be95-976d20c70e86",
                "average_yield": "6.60",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 7.45
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 28
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 28
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 28
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 28
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 28
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 28
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 28
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 28
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 28
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 28
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 28
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 28,
                "total_payout": 336
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Monthly&senior_citizen=false&women_citizen=true&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-004_16",
              "caseName": "[EDGE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:26.374Z",
              "endedAt": "2026-06-23T11:14:26.385Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-004"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "192",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:26 GMT",
                "etag": "W/\"c0-93bI5/OhS+luDK8tJtJZx7vb+Qk\"",
                "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": "",
                    "f_error_message": "",
                    "errorCode": "FIXMAS090",
                    "error": "Shriram doesnt support tax saver Fds."
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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): FIXMAS090",
                  "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": [
                "FIXMAS090"
              ],
              "actualErrorCodes": [
                "FIXMAS090"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-005_17",
              "caseName": "[POSITIVE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:26.385Z",
              "endedAt": "2026-06-23T11:14:27.171Z",
              "durationMs": 786,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "886",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:27 GMT",
                "etag": "W/\"376-jkN6FdHWecZL8uh86btFUcxl/hA\"",
                "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": "783",
                "server": "envoy"
              },
              "responseBody": {
                "product_interest": "7.30",
                "payout_frequency": "Monthly",
                "maturity_date": "2027-06-23",
                "maturity_date_ist": "2027-06-23",
                "f_investment_vehicle_id": "457cfcc6-749d-4d0e-98e2-781f17356999",
                "average_yield": "7.08",
                "product_min_investment": 5000,
                "product_max_investment": 100000000,
                "product_min_tenure": 365,
                "product_max_tenure": 365,
                "product_min_tenure_label": "",
                "payout": [
                  {
                    "year": 2026,
                    "data": [
                      {
                        "date": "2026-06-30",
                        "amount": 8
                      },
                      {
                        "date": "2026-07-31",
                        "amount": 30
                      },
                      {
                        "date": "2026-08-31",
                        "amount": 30
                      },
                      {
                        "date": "2026-09-30",
                        "amount": 30
                      },
                      {
                        "date": "2026-10-31",
                        "amount": 30
                      },
                      {
                        "date": "2026-11-30",
                        "amount": 30
                      },
                      {
                        "date": "2026-12-31",
                        "amount": 30
                      }
                    ]
                  },
                  {
                    "year": 2027,
                    "data": [
                      {
                        "date": "2027-01-31",
                        "amount": 30
                      },
                      {
                        "date": "2027-02-28",
                        "amount": 30
                      },
                      {
                        "date": "2027-03-31",
                        "amount": 30
                      },
                      {
                        "date": "2027-04-30",
                        "amount": 30
                      },
                      {
                        "date": "2027-05-31",
                        "amount": 30
                      },
                      {
                        "date": "2027-06-23",
                        "amount": 0
                      }
                    ]
                  }
                ],
                "payout_amount": 30,
                "total_payout": 360
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&payout_frequency=Monthly&senior_citizen=true&women_citizen=true&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-006_18",
              "caseName": "[EDGE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:27.171Z",
              "endedAt": "2026-06-23T11:14:27.181Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-006"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "192",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:27 GMT",
                "etag": "W/\"c0-93bI5/OhS+luDK8tJtJZx7vb+Qk\"",
                "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": "FIXMAS090",
                    "error": "Shriram doesnt support tax saver Fds."
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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): FIXMAS090",
                  "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": [
                "FIXMAS090"
              ],
              "actualErrorCodes": [
                "FIXMAS090"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-007_19",
              "caseName": "[EDGE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:27.181Z",
              "endedAt": "2026-06-23T11:14:27.191Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-007"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "192",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:27 GMT",
                "etag": "W/\"c0-93bI5/OhS+luDK8tJtJZx7vb+Qk\"",
                "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": "FIXMAS090",
                    "error": "Shriram doesnt support tax saver Fds."
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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): FIXMAS090",
                  "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": [
                "FIXMAS090"
              ],
              "actualErrorCodes": [
                "FIXMAS090"
              ]
            },
            {
              "caseId": "API_QA_GET_ESTIMATED_MATURITY_PAYOUT_FLAG-008_20",
              "caseName": "[EDGE] `SHRI`",
              "service": "master-services",
              "method": "GET",
              "url": "https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 400,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:27.191Z",
              "endedAt": "2026-06-23T11:14:27.201Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "apikey": "d4****bb"
              },
              "requestPayload": {
                "_qa_negative_test": true,
                "_tc_id": "FLAG-008"
              },
              "requestQuery": {
                "tenure": "365",
                "investment_amount": "5000",
                "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": "192",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:27 GMT",
                "etag": "W/\"c0-93bI5/OhS+luDK8tJtJZx7vb+Qk\"",
                "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": "FIXMAS090",
                    "error": "Shriram doesnt support tax saver Fds."
                  }
                ]
              },
              "curl": "curl -X GET 'https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/SHRI?tenure=365&investment_amount=5000&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): FIXMAS090",
                  "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": [
                "FIXMAS090"
              ],
              "actualErrorCodes": [
                "FIXMAS090"
              ]
            }
          ],
          "summary": {
            "total": 66,
            "passed": 66,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 10863
          }
        },
        {
          "stepId": "step-03-pan-verification",
          "stepName": "PAN Verification",
          "cases": [
            {
              "caseId": "SHRI_PAN_001",
              "caseName": "Get user profile before PAN entry (Shriram Finance)",
              "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:14:27.201Z",
              "endedAt": "2026-06-23T11:14:27.383Z",
              "durationMs": 182,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:14:27 GMT",
                "etag": "W/\"573-uoAvJ3mNshPokhZMReFV0lz8v2c\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                  "createdAt": "2026-06-23T11:14:11.000Z",
                  "isActive": true,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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:14:11.583Z",
                  "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:44:11.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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_PAN_003",
              "caseName": "Verify PAN for Shriram Finance",
              "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:14:27.383Z",
              "endedAt": "2026-06-23T11:14:27.990Z",
              "durationMs": 607,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:27 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "604",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:27.990Z",
              "endedAt": "2026-06-23T11:14:28.453Z",
              "durationMs": 463,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:28 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "459",
                "server": "envoy",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:28.453Z",
              "endedAt": "2026-06-23T11:14:28.795Z",
              "durationMs": 342,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:28 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "329",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:28.795Z",
              "endedAt": "2026-06-23T11:14:29.180Z",
              "durationMs": 385,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:29 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "382",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:29.180Z",
              "endedAt": "2026-06-23T11:14:29.580Z",
              "durationMs": 400,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:29 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "397",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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=400ms"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:14:29.580Z",
              "endedAt": "2026-06-23T11:14:29.912Z",
              "durationMs": 332,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:29 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "329",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:29.912Z",
              "endedAt": "2026-06-23T11:14:29.923Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:29 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:29.923Z",
              "endedAt": "2026-06-23T11:14:29.938Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": null,
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:29 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":null,\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:29.938Z",
              "endedAt": "2026-06-23T11:14:29.950Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:29 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:29.950Z",
              "endedAt": "2026-06-23T11:14:30.027Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "BLXPR343",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:29 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": "74",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"BLXPR343\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.027Z",
              "endedAt": "2026-06-23T11:14:30.066Z",
              "durationMs": 39,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "BLXPR3438LL",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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": "36",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"BLXPR3438LL\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.066Z",
              "endedAt": "2026-06-23T11:14:30.078Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "blxpr3438l",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"blxpr3438l\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.078Z",
              "endedAt": "2026-06-23T11:14:30.088Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "BLXP@3438L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"BLXP@3438L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.088Z",
              "endedAt": "2026-06-23T11:14:30.097Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "BLXP R3438L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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": "6",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"BLXP R3438L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.098Z",
              "endedAt": "2026-06-23T11:14:30.127Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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": "26",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.127Z",
              "endedAt": "2026-06-23T11:14:30.137Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "ABCDEFGHIJ",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"ABCDEFGHIJ\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.137Z",
              "endedAt": "2026-06-23T11:14:30.147Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AB123456CD",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AB123456CD\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.147Z",
              "endedAt": "2026-06-23T11:14:30.158Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "' OR 1=1 --",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"'\\'' OR 1=1 --\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.158Z",
              "endedAt": "2026-06-23T11:14:30.168Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "<script>alert(1)</script>",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"<script>alert(1)</script>\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.168Z",
              "endedAt": "2026-06-23T11:14:30.226Z",
              "durationMs": 58,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": "{\"number\":",
              "requestQuery": {},
              "responseHeaders": {
                "content-length": "248",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:30 GMT",
                "etag": "W/\"f8-ydQRwr2txlf09MfVIoTWDDYnXgw\"",
                "vary": "Origin",
                "x-powered-by": "Express",
                "x-envoy-upstream-service-time": "55",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:14:30.226Z",
              "endedAt": "2026-06-23T11:14:30.237Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {},
              "requestQuery": {},
              "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:14:30 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": "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)"
                  },
                  {
                    "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:14:30.237Z",
              "endedAt": "2026-06-23T11:14:30.247Z",
              "durationMs": 10,
              "requestHeaders": {
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": "{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}",
              "requestQuery": {},
              "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:14:30 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": "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)"
                  },
                  {
                    "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' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.247Z",
              "endedAt": "2026-06-23T11:14:30.431Z",
              "durationMs": 184,
              "requestHeaders": {
                "Content-Type": "text/plain",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": "{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}",
              "requestQuery": {},
              "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:14:30 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' \\\n  -H 'Content-Type: text/plain' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.431Z",
              "endedAt": "2026-06-23T11:14:30.441Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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": "6",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.441Z",
              "endedAt": "2026-06-23T11:14:30.450Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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": "6",
                "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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.450Z",
              "endedAt": "2026-06-23T11:14:30.461Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.461Z",
              "endedAt": "2026-06-23T11:14:30.472Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "1234567890",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "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:14:30 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' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"1234567890\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.472Z",
              "endedAt": "2026-06-23T11:14:30.903Z",
              "durationMs": 431,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:30 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "428",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:30.903Z",
              "endedAt": "2026-06-23T11:14:31.453Z",
              "durationMs": 550,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:31 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "546",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:31.453Z",
              "endedAt": "2026-06-23T11:14:32.535Z",
              "durationMs": 1082,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:32 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "590",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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 518ms across 3 requests"
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:14:32.535Z",
              "endedAt": "2026-06-23T11:14:33.585Z",
              "durationMs": 1050,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:33 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "410",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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": "SHRI_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:14:33.586Z",
              "endedAt": "2026-06-23T11:14:33.925Z",
              "durationMs": 339,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:33 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "336",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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=\"OM CHANDRASHEKHAR WAKHARE\""
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:14:33.925Z",
              "endedAt": "2026-06-23T11:14:34.279Z",
              "durationMs": 354,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "number": "AJFPW6688L",
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "162",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:34 GMT",
                "etag": "W/\"a2-nEezBOarUBHmI0Ccl5143iWpHCI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "352",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Verification Successful",
                "payload": {
                  "name": "OM CHANDRASHEKHAR WAKHARE",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/pan-verification' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"number\":\"AJFPW6688L\",\"issuer_code\":\"SHRI\",\"issuer_type\":\"NBFC\"}'",
              "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=\"WAKHARE BABASAHEB CHANDRASHEKHAR\""
                }
              ],
              "docsFile": "user-services/API_QA_PAN_VERIFICATION.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            }
          ],
          "summary": {
            "total": 34,
            "passed": 34,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 7076
          }
        },
        {
          "stepId": "step-04-shriram-kyc-gate",
          "stepName": "Shriram KYC Gate",
          "cases": [
            {
              "caseId": "SHRI_GATE_001",
              "caseName": "Shriram check-status gate (issuer readiness)",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:34.280Z",
              "endedAt": "2026-06-23T11:14:35.960Z",
              "durationMs": 1680,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:35 GMT",
                "etag": "W/\"1bd-kbPI/5Jgxkanu00KmXUw8U1wJyI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1677",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:35.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response should expose the Shriram user-validation record (200) or a tolerated issuer error (400 FIXUSER1431/FIXUSER1430)",
                  "passed": true,
                  "message": "f_user_id=db6a1b09-2421-42b1-ba92-f4afb2cbfbe4, digilocker_verified=false, aadhar_verified=false, etb=false, ntb=true"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_003",
              "caseName": "Shriram check-status gate (review re-check)",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:35.960Z",
              "endedAt": "2026-06-23T11:14:37.482Z",
              "durationMs": 1522,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:37 GMT",
                "etag": "W/\"1bd-XoPZguwkbOXwJZpq2WzJtYEYhp0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1519",
                "server": "envoy",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:37.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response should expose the Shriram user-validation record (200) or a tolerated issuer error (400 FIXUSER1431/FIXUSER1430)",
                  "passed": true,
                  "message": "f_user_id=db6a1b09-2421-42b1-ba92-f4afb2cbfbe4, digilocker_verified=false, aadhar_verified=false, etb=false, ntb=true"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_004",
              "caseName": "Reject check-status without any auth headers",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:37.482Z",
              "endedAt": "2026-06-23T11:14:37.488Z",
              "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:14:37 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/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be \"x-partner-key is required\"",
                  "passed": true,
                  "message": "message=\"x-partner-key is required\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_005",
              "caseName": "Reject check-status with invalid bearer token",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:37.489Z",
              "endedAt": "2026-06-23T11:14:37.493Z",
              "durationMs": 4,
              "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:14:37 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/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer invalid.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be \"Access Denied.\"",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_007",
              "caseName": "Reject check-status with expired JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:37.493Z",
              "endedAt": "2026-06-23T11:14:37.499Z",
              "durationMs": 6,
              "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:14:37 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/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be \"Access Denied.\"",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_008",
              "caseName": "Reject check-status with malformed/corrupted JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:37.499Z",
              "endedAt": "2026-06-23T11:14:37.531Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer corrupted-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:14:37 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/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer corrupted-token-!!!'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be \"Access Denied.\"",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_009",
              "caseName": "Reject check-status when Bearer keyword is missing",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:37.531Z",
              "endedAt": "2026-06-23T11:14:37.536Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:14:37 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/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_010",
              "caseName": "Reject check-status with Basic auth scheme instead of Bearer",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:37.537Z",
              "endedAt": "2026-06-23T11:14:37.541Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Basic dXNlcjpwYXNz"
              },
              "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:14:37 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/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Basic dXNlcjpwYXNz'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be \"Access Denied.\"",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_011",
              "caseName": "Reject check-status with empty Authorization header",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:37.541Z",
              "endedAt": "2026-06-23T11:14:37.546Z",
              "durationMs": 5,
              "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:14:37 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": "2",
                "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/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"x-partner-key is required\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_012",
              "caseName": "Verify HTTP method POST instead of GET for check-status",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:14:37.546Z",
              "endedAt": "2026-06-23T11:14:37.631Z",
              "durationMs": 85,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "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:14:37 GMT",
                "etag": "W/\"ca-Mx8fv9uxu2Qc9p9kKQ2vROxLQjY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot POST /v1/issuer-shriram/check-status",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot POST /v1/issuer-shriram/check-status",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_013",
              "caseName": "Verify HTTP method PUT instead of GET for check-status",
              "service": "user-services",
              "method": "PUT",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:14:37.631Z",
              "endedAt": "2026-06-23T11:14:37.731Z",
              "durationMs": 100,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "200",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:37 GMT",
                "etag": "W/\"c8-TKe80217PILFX1VFgbSIbjZqK2k\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot PUT /v1/issuer-shriram/check-status",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot PUT /v1/issuer-shriram/check-status",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_014",
              "caseName": "Verify HTTP method DELETE instead of GET for check-status",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:14:37.731Z",
              "endedAt": "2026-06-23T11:14:37.735Z",
              "durationMs": 4,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "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:14:37 GMT",
                "etag": "W/\"ce-qiQf2f4zRIj9QSzIH168d/0uzfI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot DELETE /v1/issuer-shriram/check-status",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot DELETE /v1/issuer-shriram/check-status",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_015",
              "caseName": "Verify check-status response envelope datatypes",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:37.736Z",
              "endedAt": "2026-06-23T11:14:39.254Z",
              "durationMs": 1518,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:39 GMT",
                "etag": "W/\"1bd-poGnSx04UF0oGIgI0XTeghjKelg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1515",
                "server": "envoy",
                "connection": "close"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:39.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "check-status response envelope should have the expected datatypes",
                  "passed": true,
                  "message": "datatype OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_016",
              "caseName": "Verify check-status response time is within limits",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:39.254Z",
              "endedAt": "2026-06-23T11:14:40.814Z",
              "durationMs": 1560,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:40 GMT",
                "etag": "W/\"1bd-EWCJiUMcYtCiLQxh6MrsyRH4LfU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1545",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:40.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response should expose the Shriram user-validation record (200) or a tolerated issuer error (400 FIXUSER1431/FIXUSER1430)",
                  "passed": true,
                  "message": "f_user_id=db6a1b09-2421-42b1-ba92-f4afb2cbfbe4, digilocker_verified=false, aadhar_verified=false, etb=false, ntb=true"
                },
                {
                  "description": "Response should complete within 5000ms",
                  "passed": true,
                  "message": "duration=1560ms"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_017",
              "caseName": "Verify check-status response does not leak PAN or mobile number",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:40.814Z",
              "endedAt": "2026-06-23T11:14:42.333Z",
              "durationMs": 1519,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:42 GMT",
                "etag": "W/\"1bd-ZGbgZvkGD5Ft+WvF39IOT4IOMGY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1515",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:42.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response should expose the Shriram user-validation record (200) or a tolerated issuer error (400 FIXUSER1431/FIXUSER1430)",
                  "passed": true,
                  "message": "f_user_id=db6a1b09-2421-42b1-ba92-f4afb2cbfbe4, digilocker_verified=false, aadhar_verified=false, etb=false, ntb=true"
                },
                {
                  "description": "Response should not expose PAN or mobile number in plaintext",
                  "passed": true,
                  "message": "No PAN/mobile leakage in response body"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_018",
              "caseName": "Verify check-status response does not expose the JWT token",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:42.333Z",
              "endedAt": "2026-06-23T11:14:43.948Z",
              "durationMs": 1615,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:43 GMT",
                "etag": "W/\"1bd-J9O2GyUCQM2iMHzcy7tgsbcNzSk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1611",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:43.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response should expose the Shriram user-validation record (200) or a tolerated issuer error (400 FIXUSER1431/FIXUSER1430)",
                  "passed": true,
                  "message": "f_user_id=db6a1b09-2421-42b1-ba92-f4afb2cbfbe4, digilocker_verified=false, aadhar_verified=false, etb=false, ntb=true"
                },
                {
                  "description": "Response should not expose the JWT access token",
                  "passed": true,
                  "message": "JWT token not present in response body"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_020",
              "caseName": "Verify check-status handles SQL injection in custom header",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:43.948Z",
              "endedAt": "2026-06-23T11:14:45.473Z",
              "durationMs": 1525,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-QA-Test": "' OR '1'='1'; DROP TABLE users; --",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:45 GMT",
                "etag": "W/\"1bd-42rmMyHYsAMV9SIvVXVvMM76yvo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1522",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:45.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-QA-Test: '\\'' OR '\\''1'\\''='\\''1'\\''; DROP TABLE users; --' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "SQL injection header should either be rejected or safely ignored",
                  "passed": true,
                  "message": "SQL injection header safely ignored by API (status 200, success=1)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_021",
              "caseName": "Verify check-status handles XSS payload in custom header",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:45.473Z",
              "endedAt": "2026-06-23T11:14:46.982Z",
              "durationMs": 1509,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-QA-Test": "<script>alert(1)</script>",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:46 GMT",
                "etag": "W/\"1bd-P/ugXtk+6VIdgx+g+HrnVYHM+eU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1506",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:46.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-QA-Test: <script>alert(1)</script>' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "XSS injection header should either be rejected or safely ignored",
                  "passed": true,
                  "message": "XSS injection header safely ignored by API (status 200, success=1)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_022",
              "caseName": "Verify check-status handles spoofed forwarding headers",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:46.982Z",
              "endedAt": "2026-06-23T11:14:48.537Z",
              "durationMs": 1555,
              "requestHeaders": {
                "Content-Type": "application/json",
                "X-Forwarded-For": "127.0.0.1, evil.example.com",
                "X-Forwarded-Host": "evil.example.com",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:48 GMT",
                "etag": "W/\"1bd-Bt7OE0SgdCugVUwsU7D4lUn0FY4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1552",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:48.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-Forwarded-For: 127.0.0.1, evil.example.com' \\\n  -H 'X-Forwarded-Host: evil.example.com' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response should expose the Shriram user-validation record (200) or a tolerated issuer error (400 FIXUSER1431/FIXUSER1430)",
                  "passed": true,
                  "message": "f_user_id=db6a1b09-2421-42b1-ba92-f4afb2cbfbe4, digilocker_verified=false, aadhar_verified=false, etb=false, ntb=true"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_019",
              "caseName": "Verify check-status returns a consistent shape on repeated calls",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:48.537Z",
              "endedAt": "2026-06-23T11:14:53.113Z",
              "durationMs": 4576,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:53 GMT",
                "etag": "W/\"1bd-C2YB6COFdFBOnNl+oY+VzDOmJVw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1539",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:53.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "Concurrent requests should return a consistent success/error shape",
                  "passed": true,
                  "message": "All 3 concurrent requests returned the same response shape (200:1:200)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_023",
              "caseName": "Verify check-status under burst traffic",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:53.113Z",
              "endedAt": "2026-06-23T11:14:56.831Z",
              "durationMs": 3718,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "445",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:55 GMT",
                "etag": "W/\"1bd-zxya9GSVLZyNGllswKA0PCeX3nY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1960",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "id": 925,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "pan_rapid_id": null,
                  "pan_rapid_id_created_at": null,
                  "is_shriram_digilocker_verified": false,
                  "is_shriram_digilocker_verified_created_at": null,
                  "is_fixerra_aadhar_verified": false,
                  "etb": false,
                  "ntb": true,
                  "transaction_status": false,
                  "created_at": "2026-06-23T11:14:35.000Z",
                  "updated_at": "2026-06-23T11:14:55.000Z",
                  "masked_mobile": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/check-status' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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/400"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_002",
              "caseName": "Get Shriram Digilocker redirect URL (personal KYC)",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:56.831Z",
              "endedAt": "2026-06-23T11:14:58.783Z",
              "durationMs": 1952,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:58 GMT",
                "etag": "W/\"258-g/G0VvYWCjoe9INQ8Cu/9gfZ3xQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1950",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUwOTgsInJlcXVlc3RJZCI6IjkyNDA5MjE4LWJjYmUtNDY2MC1iNmVkLWM2ZTg1YTFiOTk3NCJ9.5x_5BE9-6SZgNEDT06Rw98Ob9-W5Tf-37n_XtknUs6g&code_challenge=OTRlYzA4ZmJiNWRkZTY4MWI4ZjAwMWUyODEzMzdhNDg4NTUyODllZDg2ZjllYjAyYjNhOWNmZGNlOGM1MGM0OQ&code_challenge_method=S256&consent_valid_till=1782234898"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response should expose a url field (200, possibly empty in UAT) or a tolerated issuer error (400 FIXUSER1431/FIXUSER1430)",
                  "passed": true,
                  "message": "url=\"https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUwOTgsInJlcXVlc3RJZCI6IjkyNDA5MjE4LWJjYmUtNDY2MC1iNmVkLWM2ZTg1YTFiOTk3NCJ9.5x_5BE9-6SZgNEDT06Rw98Ob9-W5Tf-37n_XtknUs6g&code_challenge=OTRlYzA4ZmJiNWRkZTY4MWI4ZjAwMWUyODEzMzdhNDg4NTUyODllZDg2ZjllYjAyYjNhOWNmZGNlOGM1MGM0OQ&code_challenge_method=S256&consent_valid_till=1782234898\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_006",
              "caseName": "Reject Digilocker URL request without any auth headers",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:58.784Z",
              "endedAt": "2026-06-23T11:14:58.791Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "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:14:58 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/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be \"x-partner-key is required\"",
                  "passed": true,
                  "message": "message=\"x-partner-key is required\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_024",
              "caseName": "Reject Digilocker URL request with invalid bearer token",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:58.791Z",
              "endedAt": "2026-06-23T11:14:58.797Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer invalid.jwt.token"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "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:14:58 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/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer invalid.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be \"Access Denied.\"",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_025",
              "caseName": "Reject Digilocker URL request with expired JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:58.797Z",
              "endedAt": "2026-06-23T11:14:58.802Z",
              "durationMs": 5,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer expired.jwt.token"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "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:14:58 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/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer expired.jwt.token'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be \"Access Denied.\"",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_026",
              "caseName": "Reject Digilocker URL request with malformed/corrupted JWT",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:58.802Z",
              "endedAt": "2026-06-23T11:14:58.808Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer corrupted-token-!!!"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "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:14:58 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/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer corrupted-token-!!!'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be \"Access Denied.\"",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_027",
              "caseName": "Reject Digilocker URL request when Bearer keyword is missing",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:58.808Z",
              "endedAt": "2026-06-23T11:14:58.831Z",
              "durationMs": 23,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "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:14:58 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/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be an auth rejection",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_028",
              "caseName": "Reject Digilocker URL request with Basic auth scheme instead of Bearer",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 401,
              "httpStatus": 401,
              "startedAt": "2026-06-23T11:14:58.831Z",
              "endedAt": "2026-06-23T11:14:58.837Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Basic dXNlcjpwYXNz"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "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:14:58 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/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Basic dXNlcjpwYXNz'",
              "validations": [
                {
                  "description": "Response status should be 401",
                  "passed": true,
                  "message": "Status 401"
                },
                {
                  "description": "Response message should be \"Access Denied.\"",
                  "passed": true,
                  "message": "message=\"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_029",
              "caseName": "Verify Digilocker URL request with missing redirection query param",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:58.837Z",
              "endedAt": "2026-06-23T11:14:59.379Z",
              "durationMs": 542,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:59 GMT",
                "etag": "W/\"258-YGfUVExYvBrTXcTncUdCwB04nrQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "540",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUwOTksInJlcXVlc3RJZCI6ImQ2MmYxYmI1LTVjYmItNDZjNi05MGJkLThkODMyODU0MDkwYSJ9.ejONvWtOAbbPRJY1JY_sz8gsOSapi0xgL9jqthrHU-0&code_challenge=NmNmN2Q1ODBiNTdiMjYyNjJhY2RjMDU2NDNkY2QyZTU0ZTUwNTlhMTYxYWVlNDc1YTQ3ZDY5OTUyNTY2ZjY2OQ&code_challenge_method=S256&consent_valid_till=1782234899"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Missing redirection query param (acceptable per current API design)",
                  "passed": true,
                  "message": "Status 200 acceptable for Missing redirection query param"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_030",
              "caseName": "Verify Digilocker URL request with missing event_id query param",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:59.380Z",
              "endedAt": "2026-06-23T11:14:59.916Z",
              "durationMs": 536,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:14:59 GMT",
                "etag": "W/\"258-5x56W4kPzMIh6X5IR/n4vBIpmwk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "533",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUwOTksInJlcXVlc3RJZCI6ImY2MGE5YmFjLTE5Y2MtNDEzZi1hMzUxLTViNWFkNGI4MWVkOSJ9.VBPtiAq0CEjJyfS3bEGmvSLZ2VxPSc2_Fi1Fd184ReY&code_challenge=OTNhZDE5YWYwYzkzMWRlODhjNjQxYWExMzI3OTBlNWMxMjQ3MGRhZmNmNmE4MGQyNjhmMDgyYWZkYzZhNDUzYQ&code_challenge_method=S256&consent_valid_till=1782234899"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Missing event_id query param (acceptable per current API design)",
                  "passed": true,
                  "message": "Status 200 acceptable for Missing event_id query param"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_031",
              "caseName": "Verify Digilocker URL request with invalid redirection value",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:14:59.916Z",
              "endedAt": "2026-06-23T11:15:00.491Z",
              "durationMs": 575,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "NOT_A_REAL_PAGE",
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:00 GMT",
                "etag": "W/\"258-MOwEUPjupy2gtvkWEw0zats4j5k\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "572",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUxMDAsInJlcXVlc3RJZCI6IjVjNmJjYTUyLWYzMGMtNDllMS05ZmUzLTljYTY0MzViZTY2NCJ9.1p1NZWurqW64ioUJIQ8G-6OHSUioDRH3W_Zv24Vkic8&code_challenge=Y2QzYjk1ODgzNTJhNzdlODYxMWUyNDNhMDgwNTZjNjczZjIyMjJjMzJhMzM2Yjc2ODg4NzQyM2JhZWE4OGI1NQ&code_challenge_method=S256&consent_valid_till=1782234900"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=NOT_A_REAL_PAGE&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Invalid redirection value (acceptable per current API design)",
                  "passed": true,
                  "message": "Status 200 acceptable for Invalid redirection value"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_032",
              "caseName": "Verify Digilocker URL request with empty event_id query value",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:00.491Z",
              "endedAt": "2026-06-23T11:15:01.137Z",
              "durationMs": 646,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": ""
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:01 GMT",
                "etag": "W/\"258-VZ8o9D8DK1GWRBXrllDMDjcM0wU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "642",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUxMDAsInJlcXVlc3RJZCI6IjJhZDRjODQxLWFlOGItNGQyZS1iMjdhLWZkMzE0ZTBkZTIwYyJ9.yIn4IseIx3YlR25EIAKmL4ZzQNhaigGrOzW-4MVYwUg&code_challenge=MzQ2ODkxMmIxYjQyYTM5M2VlODBjODdiYjI4OTQzZTY4ZTg5YjRlZTIzOWI5M2MyZTU5MTRkYjdjZmQwODM4MA&code_challenge_method=S256&consent_valid_till=1782234900"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Empty event_id query value (acceptable per current API design)",
                  "passed": true,
                  "message": "Status 200 acceptable for Empty event_id query value"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_035",
              "caseName": "Verify Digilocker URL request with a very long event_id (boundary)",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:01.137Z",
              "endedAt": "2026-06-23T11:15:02.274Z",
              "durationMs": 1137,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:02 GMT",
                "etag": "W/\"258-Ew9C12djQVzTPo2NxiZi8sawiiI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "1135",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUxMDEsInJlcXVlc3RJZCI6IjY1ZmM2MDcxLTc5MmYtNDk2ZC1hMTY1LTZiYjg0ZmRiZTMwNSJ9.1g_cQY18G8sUrY4T29XVVnX8u4fGjLWSEydVhhUQvfc&code_challenge=ZDYzYzZmNzFmYWExM2Y5ZjU2YWFiYzAwNzVlYWY1ZWI1MzU5YWE4N2EzNDlmMmVhZmM3YTU3ZjAxMDJkZGVjNw&code_challenge_method=S256&consent_valid_till=1782234901"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Very long event_id should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 200)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_033",
              "caseName": "Verify Digilocker URL request handles SQL injection in event_id",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:02.274Z",
              "endedAt": "2026-06-23T11:15:03.170Z",
              "durationMs": 896,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "' OR '1'='1'; DROP TABLE users; --"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:03 GMT",
                "etag": "W/\"258-OHlTkfHU+HhPIjHNQMwxH5Lr6w4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "892",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUxMDIsInJlcXVlc3RJZCI6ImUwMzEwZTU4LTk1M2EtNGExOS04ZmRmLTkwMTZlNzFjODRmMSJ9.fqW2UMKE7Qlqx0fWpYTj-SXuOTCL-UY4oKoot0h62fo&code_challenge=YmMzYjgwNDVjYzhmNzA5ODJhNDZmNDUwMGIyMDExODVjZDc2NDgwNzkxZGFhYjM3NjBiODUzZDkxYTBiNDJhYg&code_challenge_method=S256&consent_valid_till=1782234902"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=%27+OR+%271%27%3D%271%27%3B+DROP+TABLE+users%3B+--' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "SQL injection in event_id should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 200)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_034",
              "caseName": "Verify Digilocker URL request handles XSS payload in redirection",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "negative",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:03.170Z",
              "endedAt": "2026-06-23T11:15:03.899Z",
              "durationMs": 729,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "<script>alert(1)</script>",
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:03 GMT",
                "etag": "W/\"258-crHVy1mkOLN3opX+7RLB/iRK3cM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "726",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUxMDMsInJlcXVlc3RJZCI6ImVkZGEyZDcwLTA1NzItNGVhNS1iZTZkLTE3NTQ5MmQ1YjkwMCJ9.NNZHkKFuBn8ZkYVaHhvS_2Ea4ZXrVkjmQEGe0u8amzM&code_challenge=ODA3MTZlNTdjMTljNzMxY2FhZjg3ZmIzYmUxYjlmZjBjZDk5ODZmNzU0NzY4ZjZhMDQwNzk5MGJmNjVmOWZjNA&code_challenge_method=S256&consent_valid_till=1782234903"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=%3Cscript%3Ealert%281%29%3C%2Fscript%3E&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "XSS payload in redirection should not cause an unhandled 5xx and should return a structured body",
                  "passed": true,
                  "message": "Handled gracefully (HTTP 200)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_036",
              "caseName": "Verify HTTP method POST instead of GET for Digilocker URL",
              "service": "user-services",
              "method": "POST",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:15:03.899Z",
              "endedAt": "2026-06-23T11:15:03.905Z",
              "durationMs": 6,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "284",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:03 GMT",
                "etag": "W/\"11c-7wz9aHd7jJjlNC0LsG6bL44ROMM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot POST /v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot POST /v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_037",
              "caseName": "Verify HTTP method PUT instead of GET for Digilocker URL",
              "service": "user-services",
              "method": "PUT",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:15:03.905Z",
              "endedAt": "2026-06-23T11:15:03.914Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "282",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:03 GMT",
                "etag": "W/\"11a-70emEyjiuKy11HFG4oSr3At7kVA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot PUT /v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot PUT /v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_038",
              "caseName": "Verify HTTP method DELETE instead of GET for Digilocker URL",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 404,
              "startedAt": "2026-06-23T11:15:03.914Z",
              "endedAt": "2026-06-23T11:15:03.921Z",
              "durationMs": 7,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "288",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:03 GMT",
                "etag": "W/\"120-uOMh4AOOPwtPsRsKudR3nLB/vAU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 404,
                "message": "Cannot DELETE /v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT",
                "payload": {},
                "error": {
                  "statusCode": 404,
                  "message": "Cannot DELETE /v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT",
                  "error": "Not Found"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Unsupported HTTP method should be rejected",
                  "passed": true,
                  "message": "Method rejected with status 404"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_039",
              "caseName": "Verify Digilocker URL response envelope datatypes",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:03.921Z",
              "endedAt": "2026-06-23T11:15:04.551Z",
              "durationMs": 630,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:04 GMT",
                "etag": "W/\"258-RKHVLVlclUUVRp8WZf/tVpGuGKE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "627",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUxMDQsInJlcXVlc3RJZCI6ImJiZjRjMmM1LWVkNTAtNGRjZC1hM2NiLTg5ZmQ0ODUzZjliZCJ9.gGbhFIuDr4WB3bzDNYQzEMaMEuBZxqbdoauk0SlQFuM&code_challenge=OTQxNDM4NmFjYjkyZjBkYjU5ZWI2NTE0OTdiMDU4MmY2MmU4MThlZjM2OTQzZmQ1M2E0ZDljZWEzMDk5MDcxYg&code_challenge_method=S256&consent_valid_till=1782234904"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "digilocker-url response envelope should have the expected datatypes",
                  "passed": true,
                  "message": "datatype OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_040",
              "caseName": "Verify Digilocker URL response time is within limits",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:04.551Z",
              "endedAt": "2026-06-23T11:15:05.175Z",
              "durationMs": 624,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:05 GMT",
                "etag": "W/\"258-NFcCbQKUdlGfaSmZmnPjbwvZ8pU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "620",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUxMDQsInJlcXVlc3RJZCI6ImZmYTRhOTA5LTc5ZTYtNGE5My1iZjQ2LWRmMjQyMzIxYTE5MiJ9.QCWqkgQSb1I9r_jgWS96XRhwc1eO-FaFjXcNPD8bcs0&code_challenge=MjdjYWY5MTRkZWFhZmQwYmEwYzUwNTFiYTdmNDNmOTQ1ODE2ODY2YWI0NmJhM2YxMjAwY2ZkYWU2NzE0OTQ4NA&code_challenge_method=S256&consent_valid_till=1782234904"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response should expose a url field (200, possibly empty in UAT) or a tolerated issuer error (400 FIXUSER1431/FIXUSER1430)",
                  "passed": true,
                  "message": "url=\"https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUxMDQsInJlcXVlc3RJZCI6ImZmYTRhOTA5LTc5ZTYtNGE5My1iZjQ2LWRmMjQyMzIxYTE5MiJ9.QCWqkgQSb1I9r_jgWS96XRhwc1eO-FaFjXcNPD8bcs0&code_challenge=MjdjYWY5MTRkZWFhZmQwYmEwYzUwNTFiYTdmNDNmOTQ1ODE2ODY2YWI0NmJhM2YxMjAwY2ZkYWU2NzE0OTQ4NA&code_challenge_method=S256&consent_valid_till=1782234904\""
                },
                {
                  "description": "Response should complete within 5000ms",
                  "passed": true,
                  "message": "duration=624ms"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_041",
              "caseName": "Verify Digilocker URL returns a consistent shape on repeated calls",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:05.175Z",
              "endedAt": "2026-06-23T11:15:07.134Z",
              "durationMs": 1959,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "600",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:07 GMT",
                "etag": "W/\"258-arTX45wJLM/UsAnlwrFNyIyQ1Sg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "SUCCESS",
                "payload": {
                  "url": "https://api.digitallocker.gov.in/public/oauth2/1/authorize?response_type=code&client_id=JZ352A2C49&redirect_uri=https%3A%2F%2Fapi-in-uat.perfios.com%2Fkyc%2Fapi%2Fv1%2Fdigilocker%2Fget-token&state=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3ODIyMTUxMDYsInJlcXVlc3RJZCI6IjYzMzBkMDg1LTlmOWMtNDVjNy1iMTcwLWJiNmRhODViMGNkMyJ9.x9AN7EFSiPPzBKktUSEsO6LrNDF3BBYvcQXQumh3I6M&code_challenge=NjNhZmE3ZGU4Y2QzZDc1ZDVhYjgxNzBmN2M4ZWI0Mzc3MmY3NWIyMzM1MDk5ODQ0NGI1M2VhNWZhYTY5OGY4Zg&code_challenge_method=S256&consent_valid_till=1782234906"
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "Concurrent requests should return a consistent success/error shape",
                  "passed": true,
                  "message": "All 3 concurrent requests returned the same response shape (200:1:200)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_042",
              "caseName": "Verify Digilocker URL request under burst traffic",
              "service": "user-services",
              "method": "GET",
              "url": "https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url",
              "status": "passed",
              "scenarioType": "edge",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:07.134Z",
              "endedAt": "2026-06-23T11:15:08.617Z",
              "durationMs": 1483,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "redirection": "PERSONAL",
                "event_id": "QA_EVENT"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "71",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:07 GMT",
                "etag": "W/\"47-O4YzVU4hwVB4YkptPR9Ehk3VDEs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "489",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "url": ""
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/v1/issuer-shriram/digilocker-url?redirection=PERSONAL&event_id=QA_EVENT' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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/400"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_043",
              "caseName": "Save verified bank account for fresh user (Shriram)",
              "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:15:08.617Z",
              "endedAt": "2026-06-23T11:15:08.677Z",
              "durationMs": 60,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "account": "10076324285",
                "ifsc": "IDFB0040112",
                "account_holder_full_name": "QA Test User",
                "consent_checked": true,
                "fd_info": "{\"issuer\":{\"f_code\":\"SHRI\"}}"
              },
              "requestQuery": {
                "issuer_code": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:08 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": "56",
                "server": "envoy"
              },
              "responseBody": {
                "verified": true
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/v2/signzy/bank?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"account\":\"10076324285\",\"ifsc\":\"IDFB0040112\",\"account_holder_full_name\":\"QA Test User\",\"consent_checked\":true,\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SHRI\\\"}}\"}'",
              "validations": [
                {
                  "description": "Bank save should succeed (200/201, verified)",
                  "passed": true,
                  "message": "Bank saved (HTTP 201)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_GATE_044",
              "caseName": "Get bank accounts for Shriram payout",
              "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:15:08.677Z",
              "endedAt": "2026-06-23T11:15:08.756Z",
              "durationMs": 79,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "decrypt": "true",
                "page_name": "review_bank",
                "issuer_code": "SHRI"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "457",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:08 GMT",
                "etag": "W/\"1c9-sYlX6chYMPzc+wpWsRQ7/DdiMnY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_bank_id": "2b94d035-9ea6-4ca7-a3f7-cd405fe176a1",
                    "account_number": "10076324285",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "bank_logo": "https://images.fixerra.in/bank_logos_payu/idfc-bank-apps-circle.svg",
                    "bank_alias": "IDFC",
                    "code": "IDFCNB",
                    "unsupported": false
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts?decrypt=true&page_name=review_bank&issuer_code=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "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:15:08.757Z",
              "endedAt": "2026-06-23T11:15:08.775Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "726",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:08 GMT",
                "etag": "W/\"2d6-ENST2DOvEm4pNi05KuChVUaDW4A\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70483,
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_bank_id": "2b94d035-9ea6-4ca7-a3f7-cd405fe176a1",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:15:09.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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
                  }
                ]
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/bank-accounts' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:08.775Z",
              "endedAt": "2026-06-23T11:15:08.829Z",
              "durationMs": 54,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "page": "1",
                "limit": "10"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "726",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:08 GMT",
                "etag": "W/\"2d6-ENST2DOvEm4pNi05KuChVUaDW4A\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70483,
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_bank_id": "2b94d035-9ea6-4ca7-a3f7-cd405fe176a1",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:15:09.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:08.829Z",
              "endedAt": "2026-06-23T11:15:08.848Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "page": "0",
                "limit": "0"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "726",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:08 GMT",
                "etag": "W/\"2d6-ENST2DOvEm4pNi05KuChVUaDW4A\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70483,
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_bank_id": "2b94d035-9ea6-4ca7-a3f7-cd405fe176a1",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:15:09.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:08.848Z",
              "endedAt": "2026-06-23T11:15:08.928Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "decrypt": "true"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "790",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:08 GMT",
                "etag": "W/\"316-CseHwEecupYs//FwmaPgzISn3Ao\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70483,
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_bank_id": "2b94d035-9ea6-4ca7-a3f7-cd405fe176a1",
                    "account_number": "10076324285",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:15:09.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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"
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:08.928Z",
              "endedAt": "2026-06-23T11:15:08.965Z",
              "durationMs": 37,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "decrypt": "false"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "790",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:08 GMT",
                "etag": "W/\"316-CseHwEecupYs//FwmaPgzISn3Ao\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "33",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 70483,
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_bank_id": "2b94d035-9ea6-4ca7-a3f7-cd405fe176a1",
                    "account_number": "10076324285",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:15:09.000Z",
                    "branch_name": "THANE BRANCH",
                    "micr_code": "",
                    "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"
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:08.965Z",
              "endedAt": "2026-06-23T11:15:09.125Z",
              "durationMs": 160,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "issuer_code": "USFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "463",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:09 GMT",
                "etag": "W/\"1cf-HMCxCO/An22JNtGKIy69riLPHkY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "157",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "f_user_bank_id": "2b94d035-9ea6-4ca7-a3f7-cd405fe176a1",
                    "account_number": "10076324285",
                    "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": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "is_default": true,
                    "verified": true,
                    "acc_holder_name": "QA Test User",
                    "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:09.125Z",
              "endedAt": "2026-06-23T11:15:09.172Z",
              "durationMs": 47,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:09 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:09.172Z",
              "endedAt": "2026-06-23T11:15:09.264Z",
              "durationMs": 92,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "issuer_code": "USFB",
                "decrypt": "true"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "463",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:09 GMT",
                "etag": "W/\"1cf-HMCxCO/An22JNtGKIy69riLPHkY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "f_user_bank_id": "2b94d035-9ea6-4ca7-a3f7-cd405fe176a1",
                    "account_number": "10076324285",
                    "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": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "is_default": true,
                    "verified": true,
                    "acc_holder_name": "QA Test User",
                    "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:09.264Z",
              "endedAt": "2026-06-23T11:15:09.303Z",
              "durationMs": 39,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:09 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": "36",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:09.303Z",
              "endedAt": "2026-06-23T11:15:09.334Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "page_name": "review"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "735",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:09 GMT",
                "etag": "W/\"2df-Rlc/0IjPKGYj3vK0dpM9nj+ZZ5A\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 70483,
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_bank_id": "2b94d035-9ea6-4ca7-a3f7-cd405fe176a1",
                    "account_number": "249a22814bf213a7ff2e68cfa58da9d3:d7712a5e592b2f877efac9ebe19f7d19",
                    "verfied": true,
                    "ifsc": "IDFB0040112",
                    "bank_name": "IDFC FIRST Bank",
                    "is_default": true,
                    "acc_holder_name": "QA Test User",
                    "effective_dt": "2026-06-23T11:15:09.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
                  }
                ]
              },
              "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:09.334Z",
              "endedAt": "2026-06-23T11:15:09.341Z",
              "durationMs": 7,
              "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:15:09 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:15:09.341Z",
              "endedAt": "2026-06-23T11:15:09.347Z",
              "durationMs": 6,
              "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:15:09 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:15:09.347Z",
              "endedAt": "2026-06-23T11:15:09.431Z",
              "durationMs": 84,
              "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:15:09 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/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": 57,
            "passed": 57,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 35145
          }
        },
        {
          "stepId": "step-05-email-verification",
          "stepName": "Email Verification",
          "cases": [
            {
              "caseId": "SHRI_EMAIL_001",
              "caseName": "Verify OTP sent to valid email (Shriram 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:15:09.431Z",
              "endedAt": "2026-06-23T11:15:10.109Z",
              "durationMs": 678,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 GMT",
                "etag": "W/\"b3-I9mf7JLwsFV1R2C2Q4eYi/hAcNo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "575",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213309638,
                  "endTime": 1782213310073,
                  "durationMs": 435,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.109Z",
              "endedAt": "2026-06-23T11:15:10.123Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 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": "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": 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.123Z",
              "endedAt": "2026-06-23T11:15:10.135Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.135Z",
              "endedAt": "2026-06-23T11:15:10.152Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 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": "14",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.152Z",
              "endedAt": "2026-06-23T11:15:10.164Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.164Z",
              "endedAt": "2026-06-23T11:15:10.176Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.176Z",
              "endedAt": "2026-06-23T11:15:10.240Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 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": "60",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.240Z",
              "endedAt": "2026-06-23T11:15:10.252Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.252Z",
              "endedAt": "2026-06-23T11:15:10.266Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 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": "11",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.266Z",
              "endedAt": "2026-06-23T11:15:10.335Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.335Z",
              "endedAt": "2026-06-23T11:15:10.350Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"issuer\":{\"f_code\":\"SHRI\"}}"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"issuer\\\":{\\\"f_code\\\":\\\"SHRI\\\"}}\"}'",
              "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": "SHRI_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:15:10.350Z",
              "endedAt": "2026-06-23T11:15:10.363Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.363Z",
              "endedAt": "2026-06-23T11:15:10.442Z",
              "durationMs": 79,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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": "76",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.442Z",
              "endedAt": "2026-06-23T11:15:10.454Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"dilip@fixerra.inn\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_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:15:10.454Z",
              "endedAt": "2026-06-23T11:15:10.467Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.467Z",
              "endedAt": "2026-06-23T11:15:10.537Z",
              "durationMs": 70,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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": "66",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.537Z",
              "endedAt": "2026-06-23T11:15:10.632Z",
              "durationMs": 95,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.633Z",
              "endedAt": "2026-06-23T11:15:10.644Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.644Z",
              "endedAt": "2026-06-23T11:15:10.831Z",
              "durationMs": 187,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.831Z",
              "endedAt": "2026-06-23T11:15:10.842Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.842Z",
              "endedAt": "2026-06-23T11:15:10.853Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.853Z",
              "endedAt": "2026-06-23T11:15:10.863Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.863Z",
              "endedAt": "2026-06-23T11:15:10.931Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.931Z",
              "endedAt": "2026-06-23T11:15:10.943Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.944Z",
              "endedAt": "2026-06-23T11:15:10.953Z",
              "durationMs": 9,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.953Z",
              "endedAt": "2026-06-23T11:15:10.964Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:10 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:10.964Z",
              "endedAt": "2026-06-23T11:15:11.035Z",
              "durationMs": 71,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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": "68",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.035Z",
              "endedAt": "2026-06-23T11:15:11.052Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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": "13",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.052Z",
              "endedAt": "2026-06-23T11:15:11.126Z",
              "durationMs": 74,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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": "71",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.126Z",
              "endedAt": "2026-06-23T11:15:11.423Z",
              "durationMs": 297,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 GMT",
                "etag": "W/\"b3-nUUNkg+oB5QD8q4ULNEhywB5l/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": "293",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213311241,
                  "endTime": 1782213311385,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.423Z",
              "endedAt": "2026-06-23T11:15:11.436Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.436Z",
              "endedAt": "2026-06-23T11:15:11.451Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.451Z",
              "endedAt": "2026-06-23T11:15:11.531Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.531Z",
              "endedAt": "2026-06-23T11:15:11.542Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.542Z",
              "endedAt": "2026-06-23T11:15:11.556Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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": "9",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.556Z",
              "endedAt": "2026-06-23T11:15:11.568Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.568Z",
              "endedAt": "2026-06-23T11:15:11.627Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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": "56",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.627Z",
              "endedAt": "2026-06-23T11:15:11.838Z",
              "durationMs": 211,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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": "69",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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 42ms across 5 requests"
                }
              ],
              "docsFile": "user-services/API_QA_PI_POST_EMAIL.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:11.838Z",
              "endedAt": "2026-06-23T11:15:11.956Z",
              "durationMs": 118,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:11 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": "10",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:11.956Z",
              "endedAt": "2026-06-23T11:15:12.148Z",
              "durationMs": 192,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 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": "15",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:12.149Z",
              "endedAt": "2026-06-23T11:15:12.159Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 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": "7",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:12.159Z",
              "endedAt": "2026-06-23T11:15:12.230Z",
              "durationMs": 71,
              "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:15: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": "67",
                "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": "SHRI_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:15:12.230Z",
              "endedAt": "2026-06-23T11:15:12.238Z",
              "durationMs": 8,
              "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:15: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 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": "SHRI_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:15:12.238Z",
              "endedAt": "2026-06-23T11:15:12.244Z",
              "durationMs": 6,
              "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:15: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": "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\":\"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": "SHRI_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:15:12.244Z",
              "endedAt": "2026-06-23T11:15:12.331Z",
              "durationMs": 87,
              "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:15: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": "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": "SHRI_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:15:12.331Z",
              "endedAt": "2026-06-23T11:15:12.337Z",
              "durationMs": 6,
              "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:15: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": "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": "SHRI_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:15:12.337Z",
              "endedAt": "2026-06-23T11:15:12.567Z",
              "durationMs": 230,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 GMT",
                "etag": "W/\"b3-L9c3aBkJ6aSeIrSv8JxcDtJiBsk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "225",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Email sent successfully",
                "payload": {
                  "startTime": 1782213312382,
                  "endTime": 1782213312526,
                  "durationMs": 144,
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:12.567Z",
              "endedAt": "2026-06-23T11:15:12.580Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:12.580Z",
              "endedAt": "2026-06-23T11:15:12.596Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 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": "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": 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_EMAIL_900A",
              "caseName": "Verify email OTP (Shriram 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:15:12.596Z",
              "endedAt": "2026-06-23T11:15:12.653Z",
              "durationMs": 57,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "otp": "123456",
                "fd_info": "{\"amount\":25000,\"tenure\":12,\"payout_frequency\":\"maturity\",\"issuer_code\":\"SHRI\"}"
              },
              "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:15:12 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": "54",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"otp\":\"123456\",\"fd_info\":\"{\\\"amount\\\":25000,\\\"tenure\\\":12,\\\"payout_frequency\\\":\\\"maturity\\\",\\\"issuer_code\\\":\\\"SHRI\\\"}\"}'",
              "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": "SHRI_EMAIL_900",
              "caseName": "Save email to user profile (Shriram 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:15:12.653Z",
              "endedAt": "2026-06-23T11:15:12.747Z",
              "durationMs": 94,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "dilip@fixerra.inn"
              },
              "requestQuery": {
                "issuer_code": "SHRI",
                "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:15:12 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": "90",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response should confirm user update",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_EMAIL_901",
              "caseName": "Get user to confirm email state (Shriram 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:15:12.747Z",
              "endedAt": "2026-06-23T11:15:12.840Z",
              "durationMs": 93,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1674",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:12 GMT",
                "etag": "W/\"68a-U+vtj4+hsZo/SInQg0p9I7XSMnY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:14:11.000Z",
                  "isActive": true,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:531b8deb153f11eb940d64dc06c748cd",
                  "email": "dilip@fixerra.inn",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "OM",
                  "middle_name": "CHANDRASHEKHAR",
                  "last_name": "WAKHARE",
                  "pan_first_name": "OM",
                  "pan_middle_name": "CHANDRASHEKHAR",
                  "pan_last_name": "WAKHARE",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": null,
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:14:11.583Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
                  "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": "father",
                  "kin_first_name": "WAKHARE",
                  "kin_middle_name": "BABASAHEB",
                  "kin_last_name": "CHANDRASHEKHAR",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:14:34.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": "2026-06-23T11:15:09.000Z",
                  "user_email_verification_date": "2026-06-23T11:15:13.000Z",
                  "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:44:11.000Z",
                  "decrypted_pan": "AJFPW6688L",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "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:15:12.840Z",
              "endedAt": "2026-06-23T11:15:12.852Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "email": "qa.user@fixerra.in"
              },
              "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:15:12 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": "9",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"email\":\"qa.user@fixerra.in\"}'",
              "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_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:15:12.852Z",
              "endedAt": "2026-06-23T11:15:12.865Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 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": "9",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:12.865Z",
              "endedAt": "2026-06-23T11:15:12.877Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "224",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:12 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": "9",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:12.877Z",
              "endedAt": "2026-06-23T11:15:12.932Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 GMT",
                "etag": "W/\"c4-xYaIXKimfps6wqcLhqRWCuiRTEY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 429,
                "message": "Rate limit exceeded. Please try again in 30 minute(s).",
                "payload": {
                  "attemptsUsed": 0,
                  "otpSentCount": 3,
                  "retryAfter": "30 minute(s)",
                  "retryAfterSeconds": 1796
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:12.932Z",
              "endedAt": "2026-06-23T11:15:12.942Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 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": "6",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:12.942Z",
              "endedAt": "2026-06-23T11:15:12.954Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:12.954Z",
              "endedAt": "2026-06-23T11:15:12.964Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:12.964Z",
              "endedAt": "2026-06-23T11:15:12.975Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:12 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:12.975Z",
              "endedAt": "2026-06-23T11:15:13.040Z",
              "durationMs": 65,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.040Z",
              "endedAt": "2026-06-23T11:15:13.051Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.051Z",
              "endedAt": "2026-06-23T11:15:13.065Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.065Z",
              "endedAt": "2026-06-23T11:15:13.134Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.134Z",
              "endedAt": "2026-06-23T11:15:13.145Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.146Z",
              "endedAt": "2026-06-23T11:15:13.157Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.157Z",
              "endedAt": "2026-06-23T11:15:13.168Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 GMT",
                "etag": "W/\"c4-xYaIXKimfps6wqcLhqRWCuiRTEY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 3,
                  "retryAfter": "30 minute(s)",
                  "retryAfterSeconds": 1796
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/signzy/email' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.168Z",
              "endedAt": "2026-06-23T11:15:13.231Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "58",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.231Z",
              "endedAt": "2026-06-23T11:15:13.238Z",
              "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:15:13 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  -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:15:13.238Z",
              "endedAt": "2026-06-23T11:15:13.244Z",
              "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:15:13 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 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:15:13.244Z",
              "endedAt": "2026-06-23T11:15:13.251Z",
              "durationMs": 7,
              "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:15:13 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:15:13.251Z",
              "endedAt": "2026-06-23T11:15:13.331Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.331Z",
              "endedAt": "2026-06-23T11:15:13.377Z",
              "durationMs": 46,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "42",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.377Z",
              "endedAt": "2026-06-23T11:15:13.408Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.408Z",
              "endedAt": "2026-06-23T11:15:13.529Z",
              "durationMs": 121,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "118",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.529Z",
              "endedAt": "2026-06-23T11:15:13.559Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "26",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.560Z",
              "endedAt": "2026-06-23T11:15:13.574Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.574Z",
              "endedAt": "2026-06-23T11:15:13.629Z",
              "durationMs": 55,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "51",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.629Z",
              "endedAt": "2026-06-23T11:15:13.641Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "8",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.641Z",
              "endedAt": "2026-06-23T11:15:13.727Z",
              "durationMs": 86,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "82",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.727Z",
              "endedAt": "2026-06-23T11:15:13.762Z",
              "durationMs": 35,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "31",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.763Z",
              "endedAt": "2026-06-23T11:15:13.783Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "17",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.783Z",
              "endedAt": "2026-06-23T11:15:13.863Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "77",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.863Z",
              "endedAt": "2026-06-23T11:15:13.930Z",
              "durationMs": 67,
              "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:15:13 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": "64",
                "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:15:13.930Z",
              "endedAt": "2026-06-23T11:15:13.936Z",
              "durationMs": 6,
              "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:15:13 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  -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:15:13.936Z",
              "endedAt": "2026-06-23T11:15:13.942Z",
              "durationMs": 6,
              "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:15:13 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:15:13.942Z",
              "endedAt": "2026-06-23T11:15:13.976Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:13 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": "30",
                "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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:15:13.976Z",
              "endedAt": "2026-06-23T11:15:14.137Z",
              "durationMs": 161,
              "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:15:14 GMT",
                "etag": "W/\"1dec-5v38TmKdx9q/E+eYAxnbuItQFUY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "158",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:14.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:15:13.985Z",
                  "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:15:14.137Z",
              "endedAt": "2026-06-23T11:15:14.157Z",
              "durationMs": 20,
              "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:15:14 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=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:15:14.157Z",
              "endedAt": "2026-06-23T11:15:14.264Z",
              "durationMs": 107,
              "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:15:14 GMT",
                "etag": "W/\"1dec-H9vNOM/Rg56iPF7pvSDV7dQbZ/U\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:14.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:15:14.166Z",
                  "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:15:14.264Z",
              "endedAt": "2026-06-23T11:15:14.378Z",
              "durationMs": 114,
              "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:15:14 GMT",
                "etag": "W/\"1dec-UWWZHrNvrD/sD3DgaxgGT2ETIUA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:15:14.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:15:14.278Z",
                  "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:15:14.378Z",
              "endedAt": "2026-06-23T11:15:14.492Z",
              "durationMs": 114,
              "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:15:14 GMT",
                "etag": "W/\"1dec-j0oeyUYYETRlDndhjyq7iE8C6+o\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:14.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:15:14.432Z",
                  "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:15:14.492Z",
              "endedAt": "2026-06-23T11:15:14.569Z",
              "durationMs": 77,
              "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:15:14 GMT",
                "etag": "W/\"1dec-bH0GABq7LTbBRBrHWSY/3z04XEk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:15:14.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:15:14.499Z",
                  "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:15:14.569Z",
              "endedAt": "2026-06-23T11:15:14.628Z",
              "durationMs": 59,
              "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:15:14 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": "56",
                "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:15:14.628Z",
              "endedAt": "2026-06-23T11:15:14.638Z",
              "durationMs": 10,
              "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:15:14 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": "7",
                "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:15:14.638Z",
              "endedAt": "2026-06-23T11:15:14.788Z",
              "durationMs": 150,
              "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:15:14 GMT",
                "etag": "W/\"1df6-XjeW+E3zd8mnZ8bOk880XhTXC3Y\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:14.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:15:14.646Z",
                  "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:15:14.788Z",
              "endedAt": "2026-06-23T11:15:14.839Z",
              "durationMs": 51,
              "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:15:14 GMT",
                "etag": "W/\"1de2-0BZa2J7wOHsHELG2UY0eGHmcg1U\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "47",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:14.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:15:14.796Z",
                  "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:15:14.839Z",
              "endedAt": "2026-06-23T11:15:14.892Z",
              "durationMs": 53,
              "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:15:14 GMT",
                "etag": "W/\"1de2-ooaAs8FXn9JPKMh5qGyDLkd5IzI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:14.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:15:14.847Z",
                  "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:15:14.892Z",
              "endedAt": "2026-06-23T11:15:14.964Z",
              "durationMs": 72,
              "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:15:14 GMT",
                "etag": "W/\"1de2-lvlkYODo6VFSwCqfh4rMbLcr4lg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "68",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:14.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": 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:15:14.899Z",
                  "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:15:14.964Z",
              "endedAt": "2026-06-23T11:15:15.052Z",
              "durationMs": 88,
              "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:15:15 GMT",
                "etag": "W/\"1de2-yMyAiEzl+pqowuvUwra6q+i1YzQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:14.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:15:14.971Z",
                  "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:15:15.052Z",
              "endedAt": "2026-06-23T11:15:15.166Z",
              "durationMs": 114,
              "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:15:15 GMT",
                "etag": "W/\"1de2-T2onW7SFDEu7P/ZbL9fFzxymYbY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:15.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:15:15.064Z",
                  "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:15:15.166Z",
              "endedAt": "2026-06-23T11:15:15.231Z",
              "durationMs": 65,
              "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:15:15 GMT",
                "etag": "W/\"1de2-oRlx72zua7bPR8TErw8a3q1e3GI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:15.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:15:15.173Z",
                  "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:15:15.231Z",
              "endedAt": "2026-06-23T11:15:15.281Z",
              "durationMs": 50,
              "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:15:15 GMT",
                "etag": "W/\"1de2-IwDDWXTdiXiuO1105E9yO/puYUU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "47",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:15.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:15:15.237Z",
                  "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:15:15.281Z",
              "endedAt": "2026-06-23T11:15:15.363Z",
              "durationMs": 82,
              "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:15:15 GMT",
                "etag": "W/\"1de2-cVPxWD82ZWxEI8T6htsoRCCYchg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:15.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:15:15.289Z",
                  "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:15:15.363Z",
              "endedAt": "2026-06-23T11:15:15.468Z",
              "durationMs": 105,
              "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:15:15 GMT",
                "etag": "W/\"1de2-yjh6EhArHEuTQR+g2Q/OOXjlNM0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:15.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:15:15.376Z",
                  "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:15:15.468Z",
              "endedAt": "2026-06-23T11:15:15.544Z",
              "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:15:15 GMT",
                "etag": "W/\"1de2-ynDJqVGg3Mo5SMiq5J1Ndoqo3HU\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:15.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:15:15.476Z",
                  "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:15:15.544Z",
              "endedAt": "2026-06-23T11:15:15.600Z",
              "durationMs": 56,
              "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:15:15 GMT",
                "etag": "W/\"1de2-A30YAazFvZRkyX0IpqI4I/QUm/M\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:15:15.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:15:15.553Z",
                  "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:15:15.600Z",
              "endedAt": "2026-06-23T11:15:15.640Z",
              "durationMs": 40,
              "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:15: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": "35",
                "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:15:15.640Z",
              "endedAt": "2026-06-23T11:15:15.654Z",
              "durationMs": 14,
              "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:15: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": "11",
                "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:15:15.655Z",
              "endedAt": "2026-06-23T11:15:15.734Z",
              "durationMs": 79,
              "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:15:15 GMT",
                "etag": "W/\"1de2-VKiYsCCmyNy/GTGxQeEb8kKtqB4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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:15:15.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:15:15.662Z",
                  "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:15:15.734Z",
              "endedAt": "2026-06-23T11:15:15.850Z",
              "durationMs": 116,
              "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:15:15 GMT",
                "etag": "W/\"1de2-N5dmdcZWO5Mfj0pRt1HAsrCM0h8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "112",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:15.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:15:15.748Z",
                  "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:15:15.850Z",
              "endedAt": "2026-06-23T11:15:15.860Z",
              "durationMs": 10,
              "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:15:15 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\":\"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:15:15.860Z",
              "endedAt": "2026-06-23T11:15:15.970Z",
              "durationMs": 110,
              "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:15:15 GMT",
                "etag": "W/\"1de2-NQHAnitSrUQVOzJpU0ql84WC8tI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:15.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:15:15.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 '{\"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:15:15.970Z",
              "endedAt": "2026-06-23T11:15:15.978Z",
              "durationMs": 8,
              "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:15:15 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": "5",
                "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:15:15.978Z",
              "endedAt": "2026-06-23T11:15:15.988Z",
              "durationMs": 10,
              "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:15:15 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": "6",
                "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:15:15.988Z",
              "endedAt": "2026-06-23T11:15:16.039Z",
              "durationMs": 51,
              "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:15: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": "47",
                "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:15:16.039Z",
              "endedAt": "2026-06-23T11:15:16.049Z",
              "durationMs": 10,
              "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:15:16 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": "6",
                "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:15:16.049Z",
              "endedAt": "2026-06-23T11:15:16.127Z",
              "durationMs": 78,
              "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:15:16 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": "74",
                "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:15:16.127Z",
              "endedAt": "2026-06-23T11:15:16.136Z",
              "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:15:16 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:15:16.136Z",
              "endedAt": "2026-06-23T11:15:16.227Z",
              "durationMs": 91,
              "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:15:16 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": "87",
                "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:15:16.227Z",
              "endedAt": "2026-06-23T11:15:16.245Z",
              "durationMs": 18,
              "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:15:16 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": "14",
                "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:15:16.245Z",
              "endedAt": "2026-06-23T11:15:16.337Z",
              "durationMs": 92,
              "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:15:16 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": "89",
                "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:15:16.337Z",
              "endedAt": "2026-06-23T11:15:16.431Z",
              "durationMs": 94,
              "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:15:16 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": "12",
                "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:15:16.431Z",
              "endedAt": "2026-06-23T11:15:16.439Z",
              "durationMs": 8,
              "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:15:16 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": "5",
                "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:15:16.439Z",
              "endedAt": "2026-06-23T11:15:16.458Z",
              "durationMs": 19,
              "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:15:16 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": "15",
                "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:15:16.458Z",
              "endedAt": "2026-06-23T11:15:16.531Z",
              "durationMs": 73,
              "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:15:16 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": "6",
                "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:15:16.531Z",
              "endedAt": "2026-06-23T11:15:16.548Z",
              "durationMs": 17,
              "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:15:16 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": "14",
                "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:15:16.548Z",
              "endedAt": "2026-06-23T11:15:16.565Z",
              "durationMs": 17,
              "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:15:16 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": "13",
                "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:15:16.565Z",
              "endedAt": "2026-06-23T11:15:16.580Z",
              "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:15:16 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": "11",
                "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:15:16.580Z",
              "endedAt": "2026-06-23T11:15:16.646Z",
              "durationMs": 66,
              "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:15:16 GMT",
                "etag": "W/\"1de2-Mta+BegNnq0647tiB2jl4UblKOo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:16.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:15:16.587Z",
                  "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:15:16.646Z",
              "endedAt": "2026-06-23T11:15:16.668Z",
              "durationMs": 22,
              "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:15:16 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": "18",
                "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:15:16.668Z",
              "endedAt": "2026-06-23T11:15:16.758Z",
              "durationMs": 90,
              "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:15:16 GMT",
                "etag": "W/\"1df6-nJbtmJ+8HQy4jYiGvfTSFDTNI/s\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:16.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:15:16.733Z",
                  "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:15:16.758Z",
              "endedAt": "2026-06-23T11:15:16.928Z",
              "durationMs": 170,
              "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:15:16 GMT",
                "etag": "W/\"1df4-jzpueoqKafRnnDLFQPbWLxcPdwo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "165",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:16.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": "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:15:16.828Z",
                  "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:15:16.928Z",
              "endedAt": "2026-06-23T11:15:17.162Z",
              "durationMs": 234,
              "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:15:17 GMT",
                "etag": "W/\"1dec-4c3YDZHQgFJpfqHkP12mPu/la1Y\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "231",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "User Updated",
                "payload": {
                  "createdAt": "2025-03-12T08:42:15.000Z",
                  "updatedAt": "2026-06-23T11:15:16.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:15:16.943Z",
                  "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:15:17.162Z",
              "endedAt": "2026-06-23T11:15:17.170Z",
              "durationMs": 8,
              "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:15:17 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": "5",
                "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:15:17.170Z",
              "endedAt": "2026-06-23T11:15:17.248Z",
              "durationMs": 78,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1674",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:17 GMT",
                "etag": "W/\"68a-foxNg/JMMiYi7osy1ft6b4XCNig\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:14:11.000Z",
                  "isActive": true,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:531b8deb153f11eb940d64dc06c748cd",
                  "email": "dilip@fixerra.inn",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "OM",
                  "middle_name": "CHANDRASHEKHAR",
                  "last_name": "WAKHARE",
                  "pan_first_name": "OM",
                  "pan_middle_name": "CHANDRASHEKHAR",
                  "pan_last_name": "WAKHARE",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": null,
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:14:11.583Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
                  "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": "father",
                  "kin_first_name": "WAKHARE",
                  "kin_middle_name": "BABASAHEB",
                  "kin_last_name": "CHANDRASHEKHAR",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:14:34.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": "2026-06-23T11:15:09.000Z",
                  "user_email_verification_date": "2026-06-23T11:15:14.000Z",
                  "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:44:11.000Z",
                  "decrypted_pan": "AJFPW6688L",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:17.248Z",
              "endedAt": "2026-06-23T11:15:17.341Z",
              "durationMs": 93,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {},
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1674",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:17 GMT",
                "etag": "W/\"68a-foxNg/JMMiYi7osy1ft6b4XCNig\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:14:11.000Z",
                  "isActive": true,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:531b8deb153f11eb940d64dc06c748cd",
                  "email": "dilip@fixerra.inn",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "OM",
                  "middle_name": "CHANDRASHEKHAR",
                  "last_name": "WAKHARE",
                  "pan_first_name": "OM",
                  "pan_middle_name": "CHANDRASHEKHAR",
                  "pan_last_name": "WAKHARE",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": null,
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:14:11.583Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
                  "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": "father",
                  "kin_first_name": "WAKHARE",
                  "kin_middle_name": "BABASAHEB",
                  "kin_last_name": "CHANDRASHEKHAR",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:14:34.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": "2026-06-23T11:15:09.000Z",
                  "user_email_verification_date": "2026-06-23T11:15:14.000Z",
                  "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:44:11.000Z",
                  "decrypted_pan": "AJFPW6688L",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:17.341Z",
              "endedAt": "2026-06-23T11:15:17.459Z",
              "durationMs": 118,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "issuer_code": "SSFB"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1674",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:17 GMT",
                "etag": "W/\"68a-foxNg/JMMiYi7osy1ft6b4XCNig\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "115",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "createdAt": "2026-06-23T11:14:11.000Z",
                  "isActive": true,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "profile_photo": null,
                  "profile_photo_file_name": null,
                  "pan": "249a22814bf213a7ff2e68cfa58da9d3:531b8deb153f11eb940d64dc06c748cd",
                  "email": "dilip@fixerra.inn",
                  "password": "",
                  "sub_account": "",
                  "gender": "",
                  "salutation": "",
                  "first_name": "OM",
                  "middle_name": "CHANDRASHEKHAR",
                  "last_name": "WAKHARE",
                  "pan_first_name": "OM",
                  "pan_middle_name": "CHANDRASHEKHAR",
                  "pan_last_name": "WAKHARE",
                  "phone": "918668336629",
                  "code": "91",
                  "dob": null,
                  "care_of": "",
                  "referral_code": "",
                  "masked_aadhaar": "",
                  "user_activation_date": null,
                  "user_registration_date": "2026-06-23T11:14:11.583Z",
                  "user_deactivation_date": "",
                  "custodial_account": "",
                  "occupation": "",
                  "annual_income": "",
                  "user_tax_status": "",
                  "father_name": "WAKHARE BABASAHEB CHANDRASHEKHAR",
                  "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": "father",
                  "kin_first_name": "WAKHARE",
                  "kin_middle_name": "BABASAHEB",
                  "kin_last_name": "CHANDRASHEKHAR",
                  "marital_status": "",
                  "kapture_id": "",
                  "user_aadhaar_verification_date": null,
                  "user_pan_verification_date": "2026-06-23T11:14:34.000Z",
                  "user_nominee_update_date": null,
                  "user_bank_account_update_date": "2026-06-23T11:15:09.000Z",
                  "user_email_verification_date": "2026-06-23T11:15:14.000Z",
                  "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:44:11.000Z",
                  "decrypted_pan": "AJFPW6688L",
                  "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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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:15:17.459Z",
              "endedAt": "2026-06-23T11:15:17.466Z",
              "durationMs": 7,
              "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:15:17 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' \\\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": []
            }
          ],
          "summary": {
            "total": 139,
            "passed": 139,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 8028
          }
        },
        {
          "stepId": "step-06-personal-details",
          "stepName": "Personal Details",
          "cases": [
            {
              "caseId": "SHRI_PI_001",
              "caseName": "Get dropdown options for personal info form (Shriram Finance)",
              "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:15:17.466Z",
              "endedAt": "2026-06-23T11:15:17.471Z",
              "durationMs": 5,
              "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:15:17 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": "3",
                "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": "SHRI_PI_002",
              "caseName": "Save personal details for Shriram Finance 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:15:17.471Z",
              "endedAt": "2026-06-23T11:15:17.547Z",
              "durationMs": 76,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:17 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": "73",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:17.547Z",
              "endedAt": "2026-06-23T11:15:17.578Z",
              "durationMs": 31,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:17 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": "27",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response content type should be application/json",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:17.578Z",
              "endedAt": "2026-06-23T11:15:17.640Z",
              "durationMs": 62,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:17 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": "59",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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"
                },
                {
                  "description": "Response should complete within 2000ms",
                  "passed": true,
                  "message": "duration=62ms"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:17.640Z",
              "endedAt": "2026-06-23T11:15:17.670Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC",
                "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": "0",
                "content-security-policy": "default-src 'self'",
                "date": "Tue, 23 Jun 2026 11:15:17 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": "26",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&issuer_type=NBFC&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:17.670Z",
              "endedAt": "2026-06-23T11:15:17.734Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:17 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": "60",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:17.734Z",
              "endedAt": "2026-06-23T11:15:17.760Z",
              "durationMs": 26,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:17 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": "23",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:17.760Z",
              "endedAt": "2026-06-23T11:15:17.838Z",
              "durationMs": 78,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:17 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": "73",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:17.838Z",
              "endedAt": "2026-06-23T11:15:17.849Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:17 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:17.849Z",
              "endedAt": "2026-06-23T11:15:17.863Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:17 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:17.863Z",
              "endedAt": "2026-06-23T11:15:17.947Z",
              "durationMs": 84,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:17 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": "81",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:17.947Z",
              "endedAt": "2026-06-23T11:15:17.986Z",
              "durationMs": 39,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:17 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": "24",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:17.986Z",
              "endedAt": "2026-06-23T11:15:18.034Z",
              "durationMs": 48,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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": "44",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.034Z",
              "endedAt": "2026-06-23T11:15:18.050Z",
              "durationMs": 16,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.050Z",
              "endedAt": "2026-06-23T11:15:18.133Z",
              "durationMs": 83,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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 PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.134Z",
              "endedAt": "2026-06-23T11:15:18.146Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.146Z",
              "endedAt": "2026-06-23T11:15:18.231Z",
              "durationMs": 85,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.231Z",
              "endedAt": "2026-06-23T11:15:18.251Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.251Z",
              "endedAt": "2026-06-23T11:15:18.331Z",
              "durationMs": 80,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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": "20",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.331Z",
              "endedAt": "2026-06-23T11:15:18.431Z",
              "durationMs": 100,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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": "11",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.431Z",
              "endedAt": "2026-06-23T11:15:18.443Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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": "9",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.443Z",
              "endedAt": "2026-06-23T11:15:18.456Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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": "9",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.456Z",
              "endedAt": "2026-06-23T11:15:18.468Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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": "9",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.469Z",
              "endedAt": "2026-06-23T11:15:18.530Z",
              "durationMs": 61,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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": "57",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.530Z",
              "endedAt": "2026-06-23T11:15:18.631Z",
              "durationMs": 101,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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": "9",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.631Z",
              "endedAt": "2026-06-23T11:15:18.731Z",
              "durationMs": 100,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.731Z",
              "endedAt": "2026-06-23T11:15:18.764Z",
              "durationMs": 33,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:18 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": "30",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:18.764Z",
              "endedAt": "2026-06-23T11:15:18.831Z",
              "durationMs": 67,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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": "12",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.831Z",
              "endedAt": "2026-06-23T11:15:18.860Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:18 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": "25",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:18.860Z",
              "endedAt": "2026-06-23T11:15:18.882Z",
              "durationMs": 22,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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": "18",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.882Z",
              "endedAt": "2026-06-23T11:15:18.951Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:18 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": "66",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:18.951Z",
              "endedAt": "2026-06-23T11:15:18.963Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.963Z",
              "endedAt": "2026-06-23T11:15:18.976Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:18 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:18.976Z",
              "endedAt": "2026-06-23T11:15:19.053Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:19 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": "74",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:19.053Z",
              "endedAt": "2026-06-23T11:15:19.071Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "14",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.071Z",
              "endedAt": "2026-06-23T11:15:19.140Z",
              "durationMs": 69,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:19 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": "66",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:19.140Z",
              "endedAt": "2026-06-23T11:15:19.153Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "10",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.153Z",
              "endedAt": "2026-06-23T11:15:19.227Z",
              "durationMs": 74,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:19 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": "71",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:19.228Z",
              "endedAt": "2026-06-23T11:15:19.240Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "9",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.240Z",
              "endedAt": "2026-06-23T11:15:19.275Z",
              "durationMs": 35,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:19 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": "32",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:19.275Z",
              "endedAt": "2026-06-23T11:15:19.329Z",
              "durationMs": 54,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "51",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.330Z",
              "endedAt": "2026-06-23T11:15:19.344Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "11",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.344Z",
              "endedAt": "2026-06-23T11:15:19.442Z",
              "durationMs": 98,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:19 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": "95",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:19.443Z",
              "endedAt": "2026-06-23T11:15:19.457Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "11",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.457Z",
              "endedAt": "2026-06-23T11:15:19.485Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:19 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": "25",
                "server": "envoy",
                "connection": "close"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:19.486Z",
              "endedAt": "2026-06-23T11:15:19.545Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.545Z",
              "endedAt": "2026-06-23T11:15:19.555Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "7",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.555Z",
              "endedAt": "2026-06-23T11:15:19.566Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.566Z",
              "endedAt": "2026-06-23T11:15:19.631Z",
              "durationMs": 65,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "8",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.631Z",
              "endedAt": "2026-06-23T11:15:19.650Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.650Z",
              "endedAt": "2026-06-23T11:15:19.661Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "9",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.661Z",
              "endedAt": "2026-06-23T11:15:19.673Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "8",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.673Z",
              "endedAt": "2026-06-23T11:15:19.731Z",
              "durationMs": 58,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "53",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.731Z",
              "endedAt": "2026-06-23T11:15:19.741Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "7",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.741Z",
              "endedAt": "2026-06-23T11:15:19.752Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "8",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.752Z",
              "endedAt": "2026-06-23T11:15:19.774Z",
              "durationMs": 22,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "18",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.774Z",
              "endedAt": "2026-06-23T11:15:19.856Z",
              "durationMs": 82,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "79",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.856Z",
              "endedAt": "2026-06-23T11:15:19.885Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:19 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": "27",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:19.885Z",
              "endedAt": "2026-06-23T11:15:19.936Z",
              "durationMs": 51,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:19 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": "48",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:19.936Z",
              "endedAt": "2026-06-23T11:15:19.964Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:19 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": "25",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:19.964Z",
              "endedAt": "2026-06-23T11:15:20.028Z",
              "durationMs": 64,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "61",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.029Z",
              "endedAt": "2026-06-23T11:15:20.059Z",
              "durationMs": 30,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:20 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": "27",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:20.059Z",
              "endedAt": "2026-06-23T11:15:20.131Z",
              "durationMs": 72,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "11",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.131Z",
              "endedAt": "2026-06-23T11:15:20.230Z",
              "durationMs": 99,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:20 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": "27",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Body statusCode should be 201",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response success flag should be 1",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Response message should be \"User Updated\"",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Payload object should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:20.230Z",
              "endedAt": "2026-06-23T11:15:20.331Z",
              "durationMs": 101,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "8",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.331Z",
              "endedAt": "2026-06-23T11:15:20.349Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.349Z",
              "endedAt": "2026-06-23T11:15:20.363Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "11",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.363Z",
              "endedAt": "2026-06-23T11:15:20.434Z",
              "durationMs": 71,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "68",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.434Z",
              "endedAt": "2026-06-23T11:15:20.451Z",
              "durationMs": 17,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "14",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.451Z",
              "endedAt": "2026-06-23T11:15:20.527Z",
              "durationMs": 76,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "73",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.527Z",
              "endedAt": "2026-06-23T11:15:20.550Z",
              "durationMs": 23,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "19",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.550Z",
              "endedAt": "2026-06-23T11:15:20.627Z",
              "durationMs": 77,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "75",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.627Z",
              "endedAt": "2026-06-23T11:15:20.647Z",
              "durationMs": 20,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "17",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.647Z",
              "endedAt": "2026-06-23T11:15:20.726Z",
              "durationMs": 79,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "76",
                "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.726Z",
              "endedAt": "2026-06-23T11:15:20.732Z",
              "durationMs": 6,
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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=SHRI&issuer_type=NBFC' \\\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": "SHRI_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:15:20.733Z",
              "endedAt": "2026-06-23T11:15:20.737Z",
              "durationMs": 4,
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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?issuer_code=SHRI&issuer_type=NBFC' \\\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": "SHRI_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:15:20.738Z",
              "endedAt": "2026-06-23T11:15:20.744Z",
              "durationMs": 6,
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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=SHRI&issuer_type=NBFC' \\\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": "SHRI_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:15:20.744Z",
              "endedAt": "2026-06-23T11:15:20.762Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.762Z",
              "endedAt": "2026-06-23T11:15:20.827Z",
              "durationMs": 65,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:20 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": "63",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                },
                {
                  "description": "Required response headers should be present",
                  "passed": true,
                  "message": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:20.827Z",
              "endedAt": "2026-06-23T11:15:20.840Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.840Z",
              "endedAt": "2026-06-23T11:15:20.869Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:20 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": "26",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:20.869Z",
              "endedAt": "2026-06-23T11:15:20.942Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "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:15:20 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": "69",
                "server": "envoy"
              },
              "responseBody": "",
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user?issuer_code=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "PUT /user returns an empty body for NBFC issuers via this query-param path (acceptable)"
                }
              ],
              "docsFile": "user-services/API_QA_PI_PUT_USER.md",
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:20.942Z",
              "endedAt": "2026-06-23T11:15:20.960Z",
              "durationMs": 18,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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": "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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:20.961Z",
              "endedAt": "2026-06-23T11:15:20.973Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI",
                "issuer_type": "NBFC"
              },
              "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:15:20 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=SHRI&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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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"
              ]
            }
          ],
          "summary": {
            "total": 84,
            "passed": 84,
            "failed": 0,
            "skipped": 0,
            "running": 0,
            "pending": 0,
            "durationMs": 3497
          }
        },
        {
          "stepId": "step-08-nominee",
          "stepName": "Nominee",
          "cases": [
            {
              "caseId": "SHRI_NOMINEE_001",
              "caseName": "Get existing nominees (SHRI)",
              "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:15:20.973Z",
              "endedAt": "2026-06-23T11:15:21.036Z",
              "durationMs": 63,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:21 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": "60",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": []
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_NOMINEE_002",
              "caseName": "Create valid adult nominee (SHRI)",
              "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:15:21.036Z",
              "endedAt": "2026-06-23T11:15:21.130Z",
              "durationMs": 94,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"206-m03OhdYfgsBTSOXCIM+YSgQqmNo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": true,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10816,
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "created_at": "2026-06-23T11:15:21.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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/53dded94-1343-4bcd-be2c-af2294fd797c",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:21.130Z",
              "endedAt": "2026-06-23T11:15:21.145Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"27c-EwP2P8wfrUXETWtM+4T973IMDU4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "User already exists.",
                "payload": {
                  "is_default": true,
                  "id": 10816,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "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:15:21.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": null
                }
              },
              "curl": "curl -X GET 'https://users-api.dev.fixerra.in/user-nominee/53dded94-1343-4bcd-be2c-af2294fd797c?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_NOMINEE_004",
              "caseName": "Update nominee relation by id",
              "service": "user-services",
              "method": "PUT",
              "url": "https://users-api.dev.fixerra.in/user-nominee/53dded94-1343-4bcd-be2c-af2294fd797c",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:21.145Z",
              "endedAt": "2026-06-23T11:15:21.170Z",
              "durationMs": 25,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "nominee_relation": "Mother",
                "nominee_salutation": "MRS"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"270-sxHl+bzhtcpJ8jUnicbIhw1XFF4\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "SUCCESS",
                "payload": {
                  "is_default": true,
                  "id": 10816,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "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:15:21.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": null
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/53dded94-1343-4bcd-be2c-af2294fd797c?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:21.170Z",
              "endedAt": "2026-06-23T11:15:21.197Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"263-/k9v1e9PMlMpXWeQmHAIeE5rHIA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10817,
                  "f_user_nominee_id": "e6a94c9f-d726-49f8-8c1a-c97589b7ccb9",
                  "created_at": "2026-06-23T11:15:21.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_NOMINEE_006",
              "caseName": "Delete nominee by id (cleanup minor nominee)",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/user-nominee/e6a94c9f-d726-49f8-8c1a-c97589b7ccb9",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:21.197Z",
              "endedAt": "2026-06-23T11:15:21.279Z",
              "durationMs": 82,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"2ae-eqX2bHqeDXzS9wvR4sANWNk5Qlc\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "is_default": false,
                  "id": 10817,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_nominee_id": "e6a94c9f-d726-49f8-8c1a-c97589b7ccb9",
                  "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:15:21.000Z",
                  "guardian_dob": "1990-04-15T00:00:00.000Z",
                  "guardian_relation": "Father",
                  "guardian_salutation": "MR",
                  "guardian_pan": "",
                  "deleted_at": "2026-06-23T11:15:21.268Z"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/e6a94c9f-d726-49f8-8c1a-c97589b7ccb9?f_code=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_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:15:21.279Z",
              "endedAt": "2026-06-23T11:15:21.326Z",
              "durationMs": 47,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:21 GMT",
                "etag": "W/\"272-1u6LCGl5QTEHXw6W4otwSWAB8iI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "is_default": true,
                    "id": 10816,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                    "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:15:21.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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:21.326Z",
              "endedAt": "2026-06-23T11:15:21.339Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:21 GMT",
                "etag": "W/\"272-1u6LCGl5QTEHXw6W4otwSWAB8iI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "is_default": true,
                    "id": 10816,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                    "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:15:21.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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Response status should be 200",
                  "passed": true,
                  "message": "Status 200 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:21.339Z",
              "endedAt": "2026-06-23T11:15:21.449Z",
              "durationMs": 110,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"208-ussxJeaGf8FtVryVuMT7YgV8QMI\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10818,
                  "f_user_nominee_id": "764783ff-43d8-4fb4-b32d-8309aab4a25e",
                  "created_at": "2026-06-23T11:15:21.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_NOMINEE_010",
              "caseName": "Delete legacy-route nominee (cleanup)",
              "service": "user-services",
              "method": "DELETE",
              "url": "https://users-api.dev.fixerra.in/user-nominee/764783ff-43d8-4fb4-b32d-8309aab4a25e",
              "status": "passed",
              "scenarioType": "positive",
              "expectedStatus": 200,
              "httpStatus": 200,
              "startedAt": "2026-06-23T11:15:21.449Z",
              "endedAt": "2026-06-23T11:15:21.561Z",
              "durationMs": 112,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"287-ZwhRIZLk2XfegN6vLjkFqLdCeDY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": {
                "success": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": {
                  "is_default": false,
                  "id": 10818,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_nominee_id": "764783ff-43d8-4fb4-b32d-8309aab4a25e",
                  "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:15:21.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": "2026-06-23T11:15:21.550Z"
                }
              },
              "curl": "curl -X DELETE 'https://users-api.dev.fixerra.in/user-nominee/764783ff-43d8-4fb4-b32d-8309aab4a25e?f_code=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_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:15:21.561Z",
              "endedAt": "2026-06-23T11:15:21.595Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"208-nnWg2kWlIIcj399RB64tDOBXxuo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "success": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10819,
                  "f_user_nominee_id": "a1e6a085-193a-47e7-af58-bfafb958c7ff",
                  "created_at": "2026-06-23T11:15:21.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:21.595Z",
              "endedAt": "2026-06-23T11:15:21.741Z",
              "durationMs": 146,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"207-omAzaRbMjg+bVGUij57MBscMubQ\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "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": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10820,
                  "f_user_nominee_id": "8e68596d-2b54-4cd5-bb4d-448e040eadd0",
                  "created_at": "2026-06-23T11:15:21.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:21.741Z",
              "endedAt": "2026-06-23T11:15:21.775Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"208-fHz1QTAHmeMs4PQBBJtBCRHogwA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10821,
                  "f_user_nominee_id": "7b43986f-90fd-416f-a908-b69b20c4c4c9",
                  "created_at": "2026-06-23T11:15:21.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:21.775Z",
              "endedAt": "2026-06-23T11:15:21.932Z",
              "durationMs": 157,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:21 GMT",
                "etag": "W/\"248-R9QdAHsz9QzNMyqVjX5aQFXKJ+Y\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10822,
                  "f_user_nominee_id": "c7cf88c9-2cd2-4829-b531-12df3548698d",
                  "created_at": "2026-06-23T11:15:21.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:21.933Z",
              "endedAt": "2026-06-23T11:15:22.337Z",
              "durationMs": 404,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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": "402",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.337Z",
              "endedAt": "2026-06-23T11:15:22.532Z",
              "durationMs": 195,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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": "192",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.532Z",
              "endedAt": "2026-06-23T11:15:22.544Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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": "SHRI_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:15:22.544Z",
              "endedAt": "2026-06-23T11:15:22.554Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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": "7",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.554Z",
              "endedAt": "2026-06-23T11:15:22.630Z",
              "durationMs": 76,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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": "72",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.630Z",
              "endedAt": "2026-06-23T11:15:22.641Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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": "7",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.641Z",
              "endedAt": "2026-06-23T11:15:22.652Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.653Z",
              "endedAt": "2026-06-23T11:15:22.664Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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": "8",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.664Z",
              "endedAt": "2026-06-23T11:15:22.675Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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 POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.675Z",
              "endedAt": "2026-06-23T11:15:22.729Z",
              "durationMs": 54,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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": "52",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.729Z",
              "endedAt": "2026-06-23T11:15:22.741Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:22 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": "9",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.741Z",
              "endedAt": "2026-06-23T11:15:22.755Z",
              "durationMs": 14,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {},
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:22 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": "11",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{}'",
              "validations": [
                {
                  "description": "Response status should be 400",
                  "passed": true,
                  "message": "Status 400 OK"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": [
                "FIXUSER1072",
                "FIXUSER1071",
                "FIXUSER1077"
              ]
            },
            {
              "caseId": "SHRI_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:15:22.755Z",
              "endedAt": "2026-06-23T11:15:22.831Z",
              "durationMs": 76,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:22 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": "14",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Should not return a 5xx server error",
                  "passed": true,
                  "message": "HTTP 200 (no server error)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:22.831Z",
              "endedAt": "2026-06-23T11:15:22.860Z",
              "durationMs": 29,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "nominee_relation": "Mother"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:22 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": "26",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.860Z",
              "endedAt": "2026-06-23T11:15:22.913Z",
              "durationMs": 53,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:22 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": "50",
                "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=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "validations": [
                {
                  "description": "Should not return a 5xx server error",
                  "passed": true,
                  "message": "HTTP 400 (no server error)"
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:22.913Z",
              "endedAt": "2026-06-23T11:15:22.930Z",
              "durationMs": 17,
              "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:15:22 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": "14",
                "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": "SHRI_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:15:22.930Z",
              "endedAt": "2026-06-23T11:15:22.935Z",
              "durationMs": 5,
              "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:15:22 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": "2",
                "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": "SHRI_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:15:22.936Z",
              "endedAt": "2026-06-23T11:15:22.941Z",
              "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:15:22 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 invalid.jwt.token'",
              "validations": [
                {
                  "description": "Should reject with 401 auth error",
                  "passed": true,
                  "message": "401 \"Access Denied.\""
                }
              ],
              "expectedErrorCodes": [],
              "actualErrorCodes": []
            },
            {
              "caseId": "SHRI_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:15:22.941Z",
              "endedAt": "2026-06-23T11:15:22.945Z",
              "durationMs": 4,
              "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:15:22 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 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": "SHRI_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:15:22.945Z",
              "endedAt": "2026-06-23T11:15:22.977Z",
              "durationMs": 32,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "full_name": "John A Doe",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:22 GMT",
                "etag": "W/\"206-xvMtFBF/w56Wj92+iJ6OBDU1WTM\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "29",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10823,
                  "f_user_nominee_id": "00498034-d29b-4f19-8d90-25c622d7518c",
                  "created_at": "2026-06-23T11:15:22.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:22.977Z",
              "endedAt": "2026-06-23T11:15:23.059Z",
              "durationMs": 82,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "full_name": "Madonna",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:23 GMT",
                "etag": "W/\"206-cfJJqsf2evUuUz1SKc+O1758TJw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10824,
                  "f_user_nominee_id": "07a57f39-14f6-4a68-9a16-3eaa30361d66",
                  "created_at": "2026-06-23T11:15:23.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.059Z",
              "endedAt": "2026-06-23T11:15:23.071Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "full_name": "John2 Doe",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:23 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": "10",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.071Z",
              "endedAt": "2026-06-23T11:15:23.130Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "full_name": ".",
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:23 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": "55",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.130Z",
              "endedAt": "2026-06-23T11:15:23.143Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "nominee_dob": "1990-04-15",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:23 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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.144Z",
              "endedAt": "2026-06-23T11:15:23.156Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 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": "10",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.156Z",
              "endedAt": "2026-06-23T11:15:23.168Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 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": "9",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.169Z",
              "endedAt": "2026-06-23T11:15:23.237Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 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": "66",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.237Z",
              "endedAt": "2026-06-23T11:15:23.271Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 GMT",
                "etag": "W/\"227-PX6VSiE96NDd3Zhq86IXJyO/VvY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "success": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10825,
                  "f_user_nominee_id": "042cbf5f-580c-4277-8012-d9f9b4d992bb",
                  "created_at": "2026-06-23T11:15:23.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.271Z",
              "endedAt": "2026-06-23T11:15:23.330Z",
              "durationMs": 59,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 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": "56",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.330Z",
              "endedAt": "2026-06-23T11:15:23.364Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 GMT",
                "etag": "W/\"233-mPIGdz0tzinw1doIDlLTRWg395A\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "success": 1,
                "statusCode": 201,
                "message": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10826,
                  "f_user_nominee_id": "866fa457-a282-425e-af0c-11fe0a0f3d58",
                  "created_at": "2026-06-23T11:15:23.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.364Z",
              "endedAt": "2026-06-23T11:15:23.443Z",
              "durationMs": 79,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 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": "76",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.443Z",
              "endedAt": "2026-06-23T11:15:23.529Z",
              "durationMs": 86,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.529Z",
              "endedAt": "2026-06-23T11:15:23.548Z",
              "durationMs": 19,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "first_name": "Minor",
                "last_name": "Kumar",
                "nominee_dob": "2015-01-01",
                "nominee_relation": "Father",
                "nominee_salutation": "MR",
                "is_default": false
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:23 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": "16",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.548Z",
              "endedAt": "2026-06-23T11:15:23.563Z",
              "durationMs": 15,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 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": "12",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.563Z",
              "endedAt": "2026-06-23T11:15:23.658Z",
              "durationMs": 95,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 GMT",
                "etag": "W/\"20a-2AMtKSjo2u7ksOBuv/uoTuG1yJk\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": true,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10827,
                  "f_user_nominee_id": "86fa2523-60a7-49e8-9e7a-0c33b8c79dde",
                  "created_at": "2026-06-23T11:15:23.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.658Z",
              "endedAt": "2026-06-23T11:15:23.731Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:23 GMT",
                "etag": "W/\"16ad-S3hM/LdewOyYzqfQC9YVcP+wxys\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "is_default": false,
                    "id": 10824,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "07a57f39-14f6-4a68-9a16-3eaa30361d66",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10825,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "042cbf5f-580c-4277-8012-d9f9b4d992bb",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10826,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "866fa457-a282-425e-af0c-11fe0a0f3d58",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": true,
                    "id": 10827,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "86fa2523-60a7-49e8-9e7a-0c33b8c79dde",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10823,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "00498034-d29b-4f19-8d90-25c622d7518c",
                    "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:15:22.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10816,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                    "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:15:21.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10819,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "a1e6a085-193a-47e7-af58-bfafb958c7ff",
                    "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:15:21.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10820,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "8e68596d-2b54-4cd5-bb4d-448e040eadd0",
                    "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:15:21.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10821,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "7b43986f-90fd-416f-a908-b69b20c4c4c9",
                    "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:15:21.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10822,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "c7cf88c9-2cd2-4829-b531-12df3548698d",
                    "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:15:21.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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_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:15:23.731Z",
              "endedAt": "2026-06-23T11:15:23.758Z",
              "durationMs": 27,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 GMT",
                "etag": "W/\"209-A4sjsKCUExo/03k7iBkKhJ0Ngy8\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "Nominee created successfully",
                "payload": {
                  "is_default": false,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10828,
                  "f_user_nominee_id": "42601093-00c4-41e8-abff-5d6fe77da73d",
                  "created_at": "2026-06-23T11:15:23.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.758Z",
              "endedAt": "2026-06-23T11:15:23.843Z",
              "durationMs": 85,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 GMT",
                "etag": "W/\"24a-TQsia1PgzAYMVxoeNfZaJPtbTJo\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10829,
                  "f_user_nominee_id": "09fae4b7-0c95-423a-8068-1946c90f3bb1",
                  "created_at": "2026-06-23T11:15:23.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.843Z",
              "endedAt": "2026-06-23T11:15:23.927Z",
              "durationMs": 84,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "SHRI"
              },
              "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:15:23 GMT",
                "etag": "W/\"20b-C2NoeJ9PijAKMh5Nt7qqNpyaBms\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "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": 10830,
                  "f_user_nominee_id": "3dac1275-41e7-4aa8-ae85-ae9f08eeecd1",
                  "created_at": "2026-06-23T11:15:23.000Z",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/api/v1/user-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:23.928Z",
              "endedAt": "2026-06-23T11:15:23.941Z",
              "durationMs": 13,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "5812",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:23 GMT",
                "etag": "W/\"16b4-DMF5s8r6wNEJHSewrUx7Y/0s1hE\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "is_default": false,
                    "id": 10830,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "3dac1275-41e7-4aa8-ae85-ae9f08eeecd1",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10829,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "09fae4b7-0c95-423a-8068-1946c90f3bb1",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10824,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "07a57f39-14f6-4a68-9a16-3eaa30361d66",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10825,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "042cbf5f-580c-4277-8012-d9f9b4d992bb",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10826,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "866fa457-a282-425e-af0c-11fe0a0f3d58",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": true,
                    "id": 10827,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "86fa2523-60a7-49e8-9e7a-0c33b8c79dde",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10828,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "42601093-00c4-41e8-abff-5d6fe77da73d",
                    "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:15:23.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10823,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "00498034-d29b-4f19-8d90-25c622d7518c",
                    "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:15:22.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10816,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                    "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:15:21.000Z",
                    "guardian_dob": "",
                    "guardian_relation": "",
                    "guardian_salutation": "",
                    "guardian_pan": "",
                    "deleted_at": null
                  },
                  {
                    "is_default": false,
                    "id": 10819,
                    "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "a1e6a085-193a-47e7-af58-bfafb958c7ff",
                    "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:15:21.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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_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:15:23.941Z",
              "endedAt": "2026-06-23T11:15:23.947Z",
              "durationMs": 6,
              "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:15:23 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": "SHRI_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": "SHRI_NOMINEE_ADDR_001",
              "caseName": "Create address for nominee (SHRI)",
              "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:15:23.947Z",
              "endedAt": "2026-06-23T11:15:23.970Z",
              "durationMs": 23,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                "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": "SHRI"
              },
              "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:15:23 GMT",
                "etag": "W/\"27c-UFlvkyplfEfQtj4CVhODVgHOxn0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "CREATED",
                "payload": {
                  "is_default": false,
                  "same_as_user": false,
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "line2": "Near Test Lane",
                  "state": "MAHARASHTRA",
                  "country": "INDIA",
                  "address_type": "PERMANENT",
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d1ea9dad6b6ab7c5edcb46bd350dd054cdc9ba7cd39664363c47a604e01361097c88203ec3381ed2955464f7d5d584325389d26ca93cc93cacfc91b26b10731ea13576e0f0f109583c9356d1b139de5c5",
                  "id": 5136,
                  "f_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                  "deleted_at": null
                }
              },
              "curl": "curl -X POST 'https://users-api.dev.fixerra.in/user-address/for-nominee?f_code=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"f_user_nominee_id\":\"53dded94-1343-4bcd-be2c-af2294fd797c\",\"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": "SHRI_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:15:23.970Z",
              "endedAt": "2026-06-23T11:15:23.982Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "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:15:23 GMT",
                "etag": "W/\"30f-0uMPOnxKhP3lNmf5yIczTMhHU/E\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 5136,
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                    "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                    "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=53dded94-1343-4bcd-be2c-af2294fd797c' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_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:15:23.982Z",
              "endedAt": "2026-06-23T11:15:24.056Z",
              "durationMs": 74,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                "same_as_user": true
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 GMT",
                "etag": "W/\"28e-ejoZ7SufYbNqEUejx6/vPdwIhtw\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 5136,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "f_base_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                  "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"f_user_nominee_id\":\"53dded94-1343-4bcd-be2c-af2294fd797c\",\"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": "SHRI_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:15:24.056Z",
              "endedAt": "2026-06-23T11:15:24.129Z",
              "durationMs": 73,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:24 GMT",
                "etag": "W/\"331-WtoTMoc835uYrn/0Wy3HkB60gEA\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "SUCCESS",
                "payload": [
                  {
                    "id": 5136,
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                    "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                    "f_base_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                    "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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_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:15:24.129Z",
              "endedAt": "2026-06-23T11:15:24.140Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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:15:24 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": "9",
                "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 'x-partner-key: 38****ef' \\\n  -H 'x-partner-code: tradingquants-dev' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_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:15:24.140Z",
              "endedAt": "2026-06-23T11:15:24.146Z",
              "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:15:24 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": "SHRI_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:15:24.146Z",
              "endedAt": "2026-06-23T11:15:24.152Z",
              "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:15:24 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": "SHRI_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:15:24.152Z",
              "endedAt": "2026-06-23T11:15:24.164Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "same_as_user": true
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 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": "10",
                "server": "envoy"
              },
              "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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": "SHRI_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:15:24.165Z",
              "endedAt": "2026-06-23T11:15:24.227Z",
              "durationMs": 62,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "MH",
                "country": "INDIA",
                "pincode": "ABC"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 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": "59",
                "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"f_user_nominee_id\":\"53dded94-1343-4bcd-be2c-af2294fd797c\",\"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": "SHRI_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:15:24.227Z",
              "endedAt": "2026-06-23T11:15:24.250Z",
              "durationMs": 23,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "maharashtra",
                "country": "INDIA",
                "pincode": "400001"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 GMT",
                "etag": "W/\"24e-G8DHHzIwGfgaxZT3JEfAp07H82w\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 201,
                "message": "CREATED",
                "payload": {
                  "id": 5136,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "f_base_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                  "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"f_user_nominee_id\":\"53dded94-1343-4bcd-be2c-af2294fd797c\",\"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": "SHRI_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:15:24.250Z",
              "endedAt": "2026-06-23T11:15:24.284Z",
              "durationMs": 34,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                "same_as_user": false,
                "line1": "Flat 1",
                "city": "Mumbai",
                "state": "MH",
                "pincode": "400001"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 GMT",
                "etag": "W/\"245-Gcr1+7Im2I6gibykj1xR45y8h/w\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": {
                "success": 1,
                "statusCode": 201,
                "message": "CREATED",
                "payload": {
                  "id": 5136,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "f_base_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                  "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"f_user_nominee_id\":\"53dded94-1343-4bcd-be2c-af2294fd797c\",\"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": "SHRI_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:15:24.284Z",
              "endedAt": "2026-06-23T11:15:24.335Z",
              "durationMs": 51,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestPayload": {
                "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                "same_as_user": false,
                "line1": "Updated Address Line",
                "city": "Pune",
                "state": "MH",
                "country": "INDIA",
                "pincode": "411001"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 GMT",
                "etag": "W/\"265-L/W6Y38VatrX+ypY8iMvLlfwYk0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "47",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 201,
                "message": "CREATED",
                "payload": {
                  "id": 5136,
                  "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "f_base_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                  "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=SHRI' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\n  -d '{\"f_user_nominee_id\":\"53dded94-1343-4bcd-be2c-af2294fd797c\",\"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": "SHRI_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:15:24.335Z",
              "endedAt": "2026-06-23T11:15:24.347Z",
              "durationMs": 12,
              "requestHeaders": {
                "Content-Type": "application/json",
                "x-partner-key": "38****ef",
                "x-partner-code": "tradingquants-dev",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "requestQuery": {
                "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "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:15:24 GMT",
                "etag": "W/\"302-egXzt9nafLOmnw/duVIqN1CVitg\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": [
                  {
                    "id": 5136,
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                    "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                    "f_base_user_address_id": "7a963028-227d-4fed-a933-c10d47ae7cd4",
                    "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=53dded94-1343-4bcd-be2c-af2294fd797c' \\\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.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw'",
              "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": "SHRI_NOMINEE_V1UPD_001",
              "caseName": "Update nominee via v1/update (SHRI)",
              "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:15:24.347Z",
              "endedAt": "2026-06-23T11:15:24.375Z",
              "durationMs": 28,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 GMT",
                "etag": "W/\"283-06boROO+y+MHbbgvIx+MSZJ0oXs\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "Nominee Data updated successfully",
                "payload": {
                  "is_default": true,
                  "id": 10816,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "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:15:21.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=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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\":\"53dded94-1343-4bcd-be2c-af2294fd797c\"}'",
              "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": "SHRI_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:15:24.376Z",
              "endedAt": "2026-06-23T11:15:24.469Z",
              "durationMs": 93,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "53dded94-1343-4bcd-be2c-af2294fd797c",
                "nomineeAddress": {
                  "same_as_user": false,
                  "line1": "ADFJ",
                  "street": "ASDFK",
                  "pincode": "431122",
                  "city": "BEED",
                  "state": "MAHARASHTRA",
                  "country": "INDIA"
                }
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "responseHeaders": {
                "cache-control": "no-store, no-cache, max-age=604800, must-revalidate, private",
                "content-length": "1078",
                "content-security-policy": "default-src 'self'",
                "content-type": "application/json; charset=utf-8",
                "date": "Tue, 23 Jun 2026 11:15:24 GMT",
                "etag": "W/\"436-1f9hA4AsHG5yum2kaxpGDg1bAS0\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; includeSubDomains; preload",
                "vary": "Origin",
                "x-content-type-options": "nosniff",
                "x-powered-by": "Express",
                "x-xss-protection": "1; mode=block",
                "x-envoy-upstream-service-time": "91",
                "server": "envoy"
              },
              "responseBody": {
                "success": 1,
                "statusCode": 200,
                "message": "Nominee Data updated successfully",
                "payload": {
                  "is_default": true,
                  "id": 10816,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "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": "Father",
                  "nominee_salutation": "MR",
                  "guardian_first_name": "",
                  "guardian_last_name": "",
                  "created_at": "2026-06-23T11:15:21.000Z",
                  "guardian_dob": "",
                  "guardian_relation": "",
                  "guardian_salutation": "",
                  "guardian_pan": "",
                  "deleted_at": null,
                  "nomineeAddress": {
                    "same_as_user": false,
                    "state": "MAHARASHTRA",
                    "country": "INDIA",
                    "address_object": "249a22814bf213a7ff2e68cfa58da9d3:7d8f7e7d160711318ed98e9451a3396d67d8e56acb6a0037d70a856eb75e370a3e1608bd6960ad20a42428b87b82f01be86f7a24a27f69e4d4a476e892feb93819f43422c1405c9eaf47a2db0588fc01f80f14dadec1a1639c56890f969cbf0c",
                    "f_user_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                    "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c"
                  }
                }
              },
              "curl": "curl -X PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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\":\"53dded94-1343-4bcd-be2c-af2294fd797c\",\"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": "SHRI_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:15:24.469Z",
              "endedAt": "2026-06-23T11:15:24.480Z",
              "durationMs": 11,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 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 PUT 'https://users-api.dev.fixerra.in/user-nominee/v1/update?f_code=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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\":\"53dded94-1343-4bcd-be2c-af2294fd797c\"}'",
              "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": "SHRI_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:15:24.480Z",
              "endedAt": "2026-06-23T11:15:24.528Z",
              "durationMs": 48,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 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": "45",
                "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=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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\":\"53dded94-1343-4bcd-be2c-af2294fd797c\"}'",
              "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": "SHRI_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:15:24.528Z",
              "endedAt": "2026-06-23T11:15:24.538Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 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=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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\":\"53dded94-1343-4bcd-be2c-af2294fd797c\"}'",
              "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": "SHRI_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:15:24.539Z",
              "endedAt": "2026-06-23T11:15:24.549Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 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": "8",
                "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=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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\":\"53dded94-1343-4bcd-be2c-af2294fd797c\"}'",
              "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": "SHRI_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:15:24.549Z",
              "endedAt": "2026-06-23T11:15:24.559Z",
              "durationMs": 10,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 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=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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\":\"53dded94-1343-4bcd-be2c-af2294fd797c\"}'",
              "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": "SHRI_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:15:24.559Z",
              "endedAt": "2026-06-23T11:15:24.627Z",
              "durationMs": 68,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 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": "64",
                "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=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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\":\"53dded94-1343-4bcd-be2c-af2294fd797c\"}'",
              "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": "SHRI_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:15:24.627Z",
              "endedAt": "2026-06-23T11:15:24.652Z",
              "durationMs": 25,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 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": "21",
                "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=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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\":\"53dded94-1343-4bcd-be2c-af2294fd797c\"}'",
              "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": "SHRI_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:15:24.652Z",
              "endedAt": "2026-06-23T11:15:24.735Z",
              "durationMs": 83,
              "requestHeaders": {
                "Content-Type": "application/json",
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw"
              },
              "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": "53dded94-1343-4bcd-be2c-af2294fd797c"
              },
              "requestQuery": {
                "f_code": "SHRI"
              },
              "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:15:24 GMT",
                "etag": "W/\"2c4-HQQvmItHNVjyGuz0ytJ5q8P2aHY\"",
                "referrer-policy": "origin-when-cross-origin",
                "strict-transport-security": "max-age=31536000; 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": 1,
                "statusCode": 200,
                "message": "Nominee Data updated successfully",
                "payload": {
                  "is_default": true,
                  "id": 10816,
                  "f_user_ref_id": "db6a1b09-2421-42b1-ba92-f4afb2cbfbe4",
                  "f_user_nominee_id": "53dded94-1343-4bcd-be2c-af2294fd797c",
                  "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:15:21.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=SHRI' \\\n  -H 'Content-Type: application/json' \\\n  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlblR5cGUiOiJhY2Nlc3MiLCJmX3VzZXJfaWQiOiJkYjZhMWIwOS0yNDIxLTQyYjEtYmE5Mi1mNGFmYjJjYmZiZTQiLCJmX3BhcnRuZXJfdXNlcl9pZCI6Ijc5NjA2MjhmLTRlYzgtNGQ5Mi05YjY4LWY4NjU2N2I4YWY4NCIsImZfcGFydG5lcl9pZCI6IjY4YmRjZjg5LTg0NjQtNGY4NS04OTg3LWFhMjg5MDhlMjFhZCIsInBhcnRuZXJfdXJsIjoiaHR0cHM6Ly90cmFkaW5ncXVhbnRzLmRldi5maXhlcnJhLmluIiwiaWF0IjoxNzgyMjEzMjU1LCJleHAiOjE3ODIyOTk2NTV9.xi4DPoZSIWQW4XzpAy-D-c6_0fos1p5XetXonxoMnPw' \\\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\":\"53dded94-1343-4bcd-be2c-af2294fd797c\"}'",
              "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": "SHRI_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:15:24.735Z",
              "endedAt": "2026-06-23T11:15:24.740Z",
              "durationMs": 5,
              "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:15:24 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": "SHRI_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:15:24.740Z",
              "endedAt": "2026-06-23T11:15:24.745Z",
              "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:15:24 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": 3763
          }
        }
      ]
    },
    {
      "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": "/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": "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": "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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: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
          }
        }
      ]
    }
  ]
}