\documentclass[10pt]{article} \usepackage[a4paper,landscape,margin=0.65in]{geometry} \usepackage{booktabs} \usepackage{array} \usepackage{longtable} \usepackage{fancyvrb} \usepackage{hyperref} \usepackage{xcolor} \hypersetup{colorlinks=true,urlcolor=blue} \setlength{\parindent}{0pt} \renewcommand{\arraystretch}{1.15} \begin{document} \section*{Golden QA Report - MAHINDRA} \textbf{Journey:} NTB\\ \textbf{Started:} 2026-06-23T11:11:52.134Z\\ \textbf{Ended:} 2026-06-23T11:14:06.241Z\\ \textbf{Duration:} 46s\\ \textbf{Summary:} Total 565, Passed 562, Failed 1, Skipped 2\\ \section*{MAHINDRA / NTB} \subsection*{Step Summary} \begin{longtable}{p{5.1cm}rrrrr} \toprule Step & Total & Passed & Failed & Skipped & Duration \\ \midrule \endhead Login & 66 & 66 & 0 & 0 & 4s \\ FD Detail & 73 & 72 & 1 & 0 & 3s \\ PAN Verification & 37 & 37 & 0 & 0 & 12s \\ Email Verification & 139 & 139 & 0 & 0 & 6s \\ Personal Details & 84 & 84 & 0 & 0 & 5s \\ Aadhaar KYC (Digilocker) & 55 & 55 & 0 & 0 & 5s \\ Mahindra Lead and KYC Context & 29 & 29 & 0 & 0 & 3s \\ Nominee & 82 & 80 & 0 & 2 & 4s \\ \bottomrule \end{longtable} \subsection*{Failed Cases} \begin{longtable}{p{3.4cm}p{4.2cm}p{3.4cm}p{6.8cm}} \toprule Step & Case & Expected & Outcome \\ \midrule \endhead FD Detail & Verify maximum investment amount returned (50000000) & HTTP 200 & HTTP 200 | Expected 50000000, got 9999 \\ \bottomrule \end{longtable} \subsection*{FAILED: Verify maximum investment amount returned (50000000)} \begin{itemize} \item Step: FD Detail \item Service: master-services \item Method: GET \item URL: https://master-api.dev.fixerra.in/api/v1/detail/maturity-amount/MAH \item Expected: HTTP 200 \item Actual: HTTP 200 | Expected 50000000, got 9999 \item Duration: 0s \item Docs: master-services/API\_QA\_GET\_ESTIMATED\_MATURITY\_PAYOUT.md \end{itemize} \paragraph*{Validations} PASS - HTTP status should be 200: HTTP 200 | FAIL - payload.product\_max\_investment should equal 50000000: Expected 50000000, got 9999 \paragraph*{Curl} \begin{Verbatim}[fontsize=\small] 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' \ -H 'Content-Type: application/json' \ -H 'apikey: d4****bb' \end{Verbatim} \paragraph*{Request payload} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Request query} \begin{Verbatim}[fontsize=\small] { "tenure": "365", "investment_amount": "5000", "payout_frequency": "Maturity", "senior_citizen": "false", "women_citizen": "false", "tax_saver": "false", "product_type": "FD" } \end{Verbatim} \paragraph*{Request headers} \begin{Verbatim}[fontsize=\small] { "Content-Type": "application/json", "apikey": "d4****bb" } \end{Verbatim} \paragraph*{Response headers} \begin{Verbatim}[fontsize=\small] { "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" } \end{Verbatim} \paragraph*{Response body} \begin{Verbatim}[fontsize=\small] { "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 } \end{Verbatim} \subsection*{Skipped Cases} \begin{longtable}{p{3.4cm}p{4.2cm}p{3.4cm}p{6.8cm}} \toprule Step & Case & Expected & Outcome \\ \midrule \endhead Nominee & Create nominee whose name matches the applicant's ow... & HTTP 201 & panFirstName not available from PAN verification step \\ Nominee & Create default nominee matching applicant PAN name (... & HTTP 201 & panFirstName not available from PAN verification step \\ \bottomrule \end{longtable} \subsection*{SKIPPED: Create nominee whose name matches the applicant's own PAN name} \begin{itemize} \item Step: Nominee \item Service: user-services \item Method: POST \item URL: /api/v1/user-nominee \item Expected: HTTP 201 \item Actual: panFirstName not available from PAN verification step \item Duration: 0s \item Docs: - \end{itemize} \paragraph*{Curl} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Request payload} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Request query} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Request headers} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Response headers} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Response body} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \subsection*{SKIPPED: Create default nominee matching applicant PAN name (for FIXINV165 booking check)} \begin{itemize} \item Step: Nominee \item Service: user-services \item Method: POST \item URL: /api/v1/user-nominee \item Expected: HTTP 201 \item Actual: panFirstName not available from PAN verification step \item Duration: 0s \item Docs: - \end{itemize} \paragraph*{Curl} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Request payload} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Request query} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Request headers} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Response headers} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \paragraph*{Response body} \begin{Verbatim}[fontsize=\small] \end{Verbatim} \end{document}