{"info":{"_postman_id":"8d8cabf9-2f21-45f4-81fa-2b92b321377b","name":"Branch Documentation","description":"<html><head></head><body><p>This is the documentation for the '<em>v1</em>' version of the Branch API. It includes the endpoints for login with card, get the accounts with permissions to deposit or withdraw, and the respective endpoints to deposit and withdraw.<br>To use any of these requests, you need the following variables</p>\n<ul>\n<li><p><strong>proxyDomain</strong>: This is the URL of the API.</p>\n</li>\n<li><p><strong>branchId</strong>: This is the ID of the ATM.</p>\n</li>\n</ul>\n<p>Each request provides you a requestId in the response. This ID can be used to track any issue related to the specified request.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"37852977","collectionId":"8d8cabf9-2f21-45f4-81fa-2b92b321377b","publishedId":"2sB34fnMCW","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"242580"},"publishDate":"2025-07-11T18:13:34.000Z"},"item":[{"name":"Login","item":[{"name":"card","item":[{"name":"/login/card ☑️","event":[{"listen":"prerequest","script":{"id":"c15b77f1-ba68-4c96-89c6-64eeb78cdba6","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"5c689886-c3a0-4fd2-aeae-cf6faad9c2b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"card\": \"4811460000192093\",\n    \"bin\": \"481146\",\n    \"pin\": \"1234\",\n    \"last4Digits\": \"2093\"\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/login/card?branchId={{branchId}}","description":"<p><strong>Purpose:</strong><br />This endpoint authenticates a user by verifying their card credentials and returns a session ID upon successful login. It is typically used for card-based login flows in branch or ATM systems.</p>\n<p><strong>Usage:</strong><br />Send a POST request to <code>{{proxyDomain}}/login/card</code> with the required query parameter and headers. The request body must contain the card details in JSON format.</p>\n<p><strong>Required Header:</strong></p>\n<ul>\n<li><code>branch-api-key</code>: API key for the branch. Use the value from your environment variable</li>\n</ul>\n<p><strong>Query Parameter:</strong></p>\n<ul>\n<li><code>branchId</code> (required): The unique identifier for the branch. Use the value from your environment variable <code>{{branchId}}</code>.</li>\n</ul>\n<p><strong>Request Body (JSON):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"card\": \"&lt;string&gt;\",        // Card UUID or number\n  \"bin\": \"&lt;string&gt;\",         // Bank Identification Number\n  \"pin\": \"&lt;string&gt;\",         // Card PIN\n  \"last4Digits\": \"&lt;string&gt;\"  // Last 4 digits of the card\n}\n\n</code></pre>\n<p><strong>Successful Response:</strong></p>\n<ul>\n<li>Status: 200 OK</li>\n</ul>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n  \"requestId\": \"&lt;string&gt;\", \n  \"data\": { \n    \"sessionId\": \"&lt;string&gt;\" \n  } \n}\n\n</code></pre>\n","urlObject":{"path":["login","card"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"14b00d72-ae8a-422b-86e1-3ba2531ce156","name":"/login/card ☑️","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"card\": \"<string>\",\n    \"bin\": \"<string>\",\n    \"pin\": \"<string>\",\n    \"last4Digits\": \"<string>\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/login/card?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["login","card"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"<string>\",\n    \"data\": {\n        \"sessionId\": \"<string>\"\n    }\n}"}],"_postman_id":"5c689886-c3a0-4fd2-aeae-cf6faad9c2b0"}],"id":"1512e958-4587-4df7-b227-fd1cd306abad","_postman_id":"1512e958-4587-4df7-b227-fd1cd306abad","description":""},{"name":"QR","item":[{"name":"ADMIN","item":[{"name":"/login/qr","id":"07f917c6-bada-405c-80ad-4fe020c5f611","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/login/qr?branchId={{branchId}}","description":"<p><strong>Purpose:</strong><br />This endpoint generates a QR code for initiating a secure login flow. It is typically used by an ATM or kiosk to display a QR code that a user can scan with their mobile device to authenticate and log in without entering credentials on the ATM.</p>\n<p><strong>Request:</strong></p>\n<ul>\n<li><p><strong>Method:</strong> GET</p>\n</li>\n<li><p><strong>URL:</strong> <code>{{proxyDomain}}/login/qr?branchId={{branchId}}</code></p>\n</li>\n</ul>\n<p><strong>Required Query Parameters:</strong></p>\n<ul>\n<li><code>branchId</code> (string): The unique identifier for the branch where the login is being initiated. This value is required.</li>\n</ul>\n<p><strong>Required Headers:</strong></p>\n<ul>\n<li><code>branch-api-key</code> (string): API key for authenticating the request. This must be provided in the request headers.</li>\n</ul>\n<p><strong>Response Overview:</strong></p>\n<ul>\n<li>On success (<code>200 OK</code>), the response contains a <code>sessionId</code> and a <code>qr</code> field. The <code>qr</code> field is a base64-encoded image representing the QR code. The user scans this QR code to start the login process on their mobile device.</li>\n</ul>\n<p><strong>QR Code Login Flow:</strong></p>\n<ol>\n<li><p>The ATM requests a QR code by calling this endpoint.</p>\n</li>\n<li><p>The server responds with a login URL encoded as a QR code.</p>\n</li>\n<li><p>The user scans the QR code with their mobile device and submits their credentials.</p>\n</li>\n<li><p>The ATM periodically checks if the user has logged in by polling a status endpoint.</p>\n</li>\n<li><p>Once authenticated, the ATM receives an access token and grants access.</p>\n</li>\n</ol>\n","urlObject":{"path":["login","qr"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"8522fb70-0ae2-44eb-bac9-c8cec64dad86","name":"/login/qr","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":{"raw":"{{proxyDomain}}/login/qr?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["login","qr"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"<string>\",\n    \"data\": {\n        \"sessionId\": \"<string>\",\n        \"qr\": \"data:image/png;base64\"\n    }\n}"}],"_postman_id":"07f917c6-bada-405c-80ad-4fe020c5f611"},{"name":"/login/qr/status","id":"847a9f1a-8b61-46dd-a8b2-ae3078fa8616","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/login/qr/status/{{branchSessionId}}","description":"<p><strong>Purpose:</strong><br />Retrieves the current authentication status for a QR-based login session at a branch. This endpoint is typically used by client applications to poll and determine if a user has completed authentication via QR code.</p>\n<p><strong>Request URL:</strong><br /><code>GET {{proxyDomain}}/login/qr/status/{{branchSessionId}}</code></p>\n<p><strong>Required Headers:</strong></p>\n<ul>\n<li><code>branch-api-key</code>: API key required for authentication and authorization.</li>\n</ul>\n<p><strong>URL Variables:</strong></p>\n<ul>\n<li><p><code>proxyDomain</code>: The base domain for the API</p>\n</li>\n<li><p><code>branchSessionId</code>: Unique identifier for the QR login session whose status is being checked.</p>\n</li>\n</ul>\n<p><strong>Expected Response:</strong></p>\n<ul>\n<li><p><strong>Status Code:</strong> 200 OK (on success)</p>\n</li>\n<li><p><strong>Body Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">  {\n    \"requestId\": \"41caacc3-203b-4931-bb92-f926167bc8a3\",\n    \"data\": {\n      \"status\": \"authenticated\",\n      \"token\": \"&lt;session_token&gt;\"\n    }\n  }\n\n</code></pre>\n</li>\n<li><p><code>status</code> can indicate states such as <code>accessDenied</code>, <code>authenticated</code>, or <code>failed</code>.</p>\n</li>\n<li><p>If authenticated, a <code>token</code> is provided for subsequent authenticated requests.</p>\n</li>\n</ul>\n<p>Use this endpoint to check if a user has successfully authenticated via QR code at a branch location.</p>\n","urlObject":{"path":["login","qr","status","{{branchSessionId}}"],"host":["{{proxyDomain}}"],"query":[],"variable":[]}},"response":[{"id":"64d5321e-40ea-435b-82df-5ca022823c6e","name":"/login/qr/status","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/login/qr/status/{{branchSessionId}}"},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"<string>\",\n    \"data\": {\n        \"status\": \"<string>\" // authenticated | expired | accessDenied\n    }\n}"}],"_postman_id":"847a9f1a-8b61-46dd-a8b2-ae3078fa8616"},{"name":"/atm/dualAuth","id":"c64a17ec-5741-4812-88ff-48e0dd4de7b6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/atm/dualAuth?branchId={{branchId}}","description":"<p><strong>Purpose:</strong><br />This endpoint generates a QR code for continuing a secure dual login flow.  </p>\n<p><strong>Dual Auth Login Flow:</strong></p>\n<ol>\n<li><p>The ATM requests a QR code by calling /login/qr.</p>\n</li>\n<li><p>The server responds with a login URL encoded as a QR code.</p>\n</li>\n<li><p>The user scans the QR code with their mobile device and submits their credentials.</p>\n</li>\n<li><p>The ATM periodically checks if the user has logged in by polling a status endpoint.</p>\n</li>\n<li><p>Once authenticated, the ATM receives a session token and grants access.</p>\n</li>\n<li><p>The ATM reuqests a QR code by calling /atm/dualAuth</p>\n</li>\n<li><p>The server responds with a login URL encoded as a QR code.</p>\n</li>\n<li><p>The user scans the QR code with their mobile device and submits their credentials.</p>\n</li>\n<li><p>The ATM periodically checks if the user has logged in by polling a status endpoint.</p>\n</li>\n<li><p>Once authenticated, the ATM receives a session token and grants access.</p>\n</li>\n<li><p>The dual flow can be complete with the session token of the step 5.</p>\n</li>\n</ol>\n","urlObject":{"path":["atm","dualAuth"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"204c3646-e57b-4bad-a9e7-d3648f8b3d85","name":"/atm/dualAuth","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":{"raw":"{{proxyDomain}}/atm/dualAuth?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","dualAuth"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"","header":[{"key":":status","value":200},{"key":"date","value":"Thu, 23 Apr 2026 03:21:16 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"10249"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"f571a034-c786-4500-ba70-5eb12a066a69"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"2809-X+cwz4AGHBU6Irs4FQvrsCFCrjQ\""}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"<string>\",\n    \"data\": {\n        \"dualAuthRequestId\": \"<string>\",\n        \"sessionId\": \"<string>\",\n        \"qr\": \"data:image/png;base64\"\n    }\n}"}],"_postman_id":"c64a17ec-5741-4812-88ff-48e0dd4de7b6"}],"id":"1d90ce7a-7453-47fc-a27f-72611b189214","_postman_id":"1d90ce7a-7453-47fc-a27f-72611b189214","description":""},{"name":"MEMBER","item":[{"name":"/login/qr/member","id":"f535271c-118b-4d38-8a53-3972fa121515","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/login/qr/member?branchId={{branchId}}","description":"<h1 id=\"generate-qr-code-for-member-login\">Generate QR Code for Member Login</h1>\n<p>This endpoint generates a QR code that enables members to authenticate via their mobile devices in a QR code-based login flow. The QR code contains a login URL that, when scanned, allows users to complete authentication on their phone while the ATM or client application polls for login status.</p>\n<h2 id=\"endpoint\">Endpoint</h2>\n<p><code>GET {{proxyDomain}}/login/qr/member</code></p>\n<h2 id=\"request-parameters\">Request Parameters</h2>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>branchId</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier for the branch where the authentication is being initiated. Used to associate the login session with a specific branch location.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"headers\">Headers</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>branch-api-key</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>API key for branch authentication. This key authorizes the branch to request QR codes for member login.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"response-format\">Response Format</h2>\n<h3 id=\"success-response-200-ok\">Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"9972b228-b6cb-4179-af71-238221a482f5\",\n  \"data\": {\n    \"sessionId\": \"8cd11535-f765-4596-852c-336a764b8e0a\",\n    \"qr\": \"data:image/png;base64,iVBORw0KGgoAAAANSU...\"\n  }\n}\n\n</code></pre>\n<p><strong>Response Fields:</strong></p>\n<ul>\n<li><p><code>requestId</code> (string): Unique identifier for this API request, useful for tracking and debugging</p>\n</li>\n<li><p><code>data.sessionId</code> (string): Unique session identifier that should be used when polling the login status endpoint to check if the user has completed authentication</p>\n</li>\n<li><p><code>data.qr</code> (string): Base64-encoded PNG image data of the QR code. This can be directly displayed in an tag or rendered on a device screen. The QR code contains the login URL that users will scan with their mobile device.</p>\n</li>\n</ul>\n<h2 id=\"usage-in-qr-code-login-flow\">Usage in QR Code Login Flow</h2>\n<ol>\n<li><p><strong>Generate QR Code</strong>: Call this endpoint to generate a new QR code and receive a <code>sessionId</code></p>\n</li>\n<li><p><strong>Display QR Code</strong>: Render the base64-encoded QR image on the ATM screen or client application</p>\n</li>\n<li><p><strong>User Scans</strong>: The user scans the QR code with their mobile device, which opens the login URL</p>\n</li>\n<li><p><strong>User Authenticates</strong>: The user enters their credentials on their mobile device and submits</p>\n</li>\n<li><p><strong>Poll for Status</strong>: The ATM/client continuously polls the <code>/login/qr/status</code> endpoint using the <code>sessionId</code> to check if authentication is complete</p>\n</li>\n<li><p><strong>Receive Token</strong>: Once authenticated, the polling endpoint returns an access token</p>\n</li>\n</ol>\n<h2 id=\"implementation-notes\">Implementation Notes</h2>\n<ul>\n<li><p>The QR code image is returned as a data URI with base64 encoding, making it ready for immediate display</p>\n</li>\n<li><p>Store the <code>sessionId</code> from the response to use in subsequent status polling requests</p>\n</li>\n<li><p>The QR code typically contains a URL that directs users to a mobile-friendly login page</p>\n</li>\n<li><p>Consider implementing a timeout mechanism for QR codes (e.g., 5 minutes) after which a new QR code should be generated</p>\n</li>\n</ul>\n","urlObject":{"path":["login","qr","member"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"91b93b2b-02c1-43ea-88a8-ac2b5819b471","name":"/login/qr/member","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":{"raw":"{{proxyDomain}}/login/qr/member?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["login","qr","member"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"<string>\",\n    \"data\": {\n        \"sessionId\": \"<string>\",\n        \"qr\": \"data:image/png;base64\"\n    }\n}"}],"_postman_id":"f535271c-118b-4d38-8a53-3972fa121515"},{"name":"/login/qr/status/member","id":"54b8aa7b-11a1-44cd-9456-0770294d2dce","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/login/qr/member/status/{{branchSessionId}}","description":"<h1 id=\"qr-code-login-status-check-member\">QR Code Login Status Check (Member)</h1>\n<h2 id=\"purpose\">Purpose</h2>\n<p>This endpoint checks the current status of a QR code login session for a member. It is designed to be polled by the ATM after displaying a QR code to determine whether the user has completed authentication on their mobile device.</p>\n<h2 id=\"endpoint-details\">Endpoint Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>Path:</strong> <code>{{proxyDomain}}/login/qr/member/status/{{branchSessionId}}</code></p>\n<h3 id=\"required-headers\">Required Headers</h3>\n<ul>\n<li><code>branch-api-key</code> - API key for authentication with the Branch service</li>\n</ul>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<ul>\n<li><code>branchSessionId</code> - The unique session identifier returned from the initial QR code generation endpoint. This ID links the ATM's polling request to the specific QR code authentication session.</li>\n</ul>\n<h2 id=\"response-format\">Response Format</h2>\n<p>The endpoint returns a JSON object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"string\",\n  \"data\": {\n    \"status\": \"string\"\n  }\n}\n\n</code></pre>\n<h3 id=\"status-values\">Status Values</h3>\n<p>The <code>status</code> field in the response can have the following values:</p>\n<ul>\n<li><p><strong><code>expired</code></strong> - The QR code session has timed out and is no longer valid</p>\n</li>\n<li><p><strong>authenticated</strong> - The user has successfully authenticated on their phone</p>\n</li>\n</ul>\n<h2 id=\"usage-flow\">Usage Flow</h2>\n<ol>\n<li><p><strong>Display QR Code</strong>: The ATM first generates a QR code using the QR code generation endpoint</p>\n</li>\n<li><p><strong>Start Polling</strong>: The ATM begins polling this status endpoint at regular intervals</p>\n</li>\n<li><p><strong>Check Status</strong>: Continue polling until the status changes from <code>pending</code> to one of the terminal states (<code>authenticated</code> or <code>expired</code>)</p>\n</li>\n<li><p><strong>Handle Response</strong>:</p>\n<ul>\n<li><p>If <code>authenticated</code>: Proceed with the authenticated session (access token should be available)</p>\n</li>\n<li><p>If <code>expired</code>: Display appropriate error message and allow user to retry</p>\n</li>\n</ul>\n</li>\n</ol>\n","urlObject":{"path":["login","qr","member","status","{{branchSessionId}}"],"host":["{{proxyDomain}}"],"query":[],"variable":[]}},"response":[{"id":"9be84bcf-4eca-44e5-8856-203116d5bd86","name":"/login/qr/status/member Copy","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/login/qr/member/status/{{branchSessionId}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 19 Feb 2026 14:39:47 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Content-Length","value":"265"},{"key":"Connection","value":"keep-alive"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"5250ac12-8edf-433c-ad63-85c7030e8112"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"109-Iwpbdu2KZ96TEYWhpGo9s6B6Q1w\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"5250ac12-8edf-433c-ad63-85c7030e8112\",\n    \"data\": {\n        \"status\": \"<string>\", // authenticated, expired\n        \"token\": \"<string>\",\n        \"sessionId\": \"<string>\",\n        \"qrSessionId\": \"<string>\"\n    }\n}"}],"_postman_id":"54b8aa7b-11a1-44cd-9456-0770294d2dce"}],"id":"e0a5a619-b914-42c7-a54a-6bfed8f8b417","_postman_id":"e0a5a619-b914-42c7-a54a-6bfed8f8b417","description":""}],"id":"ac87ce61-a902-4b52-9c08-b304fd8e77f0","_postman_id":"ac87ce61-a902-4b52-9c08-b304fd8e77f0","description":""}],"id":"e1e1959f-9fc3-44d4-bb75-fd1f270fb310","_postman_id":"e1e1959f-9fc3-44d4-bb75-fd1f270fb310","description":""},{"name":"Deposits","item":[{"name":"/deposit/accounts ☑️","id":"df5c0365-a2fe-46c1-a6d6-1bd4fcab9829","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/deposit/accounts?branchId={{branchId}}","description":"<h3 id=\"description\">Description</h3>\n<p>This API endpoint retrieves a list of accounts that have permissions to deposit funds based on the provided authentication token.</p>\n<h3 id=\"purpose\">Purpose</h3>\n<p>The purpose of this request is to allow users to access account information relevant to deposit permissions, filtered by a specific branch ID.</p>\n<h3 id=\"request-format\">Request Format</h3>\n<ul>\n<li><p><strong>Method:</strong> GET</p>\n</li>\n<li><p><strong>Endpoint:</strong> <code>{{proxyDomain}}/deposit/accounts</code></p>\n</li>\n<li><p><strong>Query Parameters:</strong></p>\n<ul>\n<li><code>branchId</code> (required): The identifier for the branch from which to retrieve the accounts.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"response-structure\">Response Structure</h3>\n<p>The response will contain a JSON object with the following structure:</p>\n<ul>\n<li><p><code>requestId</code>: A unique identifier for the request (string).</p>\n</li>\n<li><p><code>data</code> (array): A list of account objects that have deposit permissions.</p>\n<ul>\n<li><p>Each account object may include details such as:</p>\n<ul>\n<li><p><code>accountId</code>: The unique identifier for the account (integer).</p>\n</li>\n<li><p><code>accountName</code>: The name associated with the account (string).</p>\n</li>\n<li><p><code>accountNumber</code>: The account number (string).</p>\n</li>\n<li><p><code>type</code>: The type of account (string).</p>\n</li>\n<li><p><code>balance</code>: The current balance of the account (integer).</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"requestId\": \"\",\n    \"data\": [\n        {\n            \"accountId\": 110000,\n            \"accountName\": \"John Doe Savings\",\n            \"accountNumber\": \"  1230326   00\",\n            \"type\": \"1\",\n            \"balance\": 1500.33\n        },\n        {\n            \"accountId\": 110001,\n            \"accountName\": \"Jane Doe Checking\",\n            \"accountNumber\": \"  1230326   06\",\n            \"type\": \"2\",\n            \"balance\": 2500.01\n        }\n    ]\n}\n\n</code></pre>\n<h3 id=\"notes\">Notes</h3>\n<p>Ensure that the request includes a valid authentication token to access the account data.</p>\n<p>Returns the list of accounts that have permissions to deposit based on the provided branch ID.</p>\n","urlObject":{"path":["deposit","accounts"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"0a644575-cb3e-49a7-a62d-a162ac1b004f","name":"/deposit/accounts ☑️","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":{"raw":"{{proxyDomain}}/deposit/accounts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["deposit","accounts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"c5c97a9a-322b-4baf-81c2-cdb513516da8\",\n    \"data\": [\n        {\n            \"accountId\": 89791,\n            \"accountName\": \"SAVINGS\",\n            \"accountNumber\": \"  1230321   00\",\n            \"type\": \"1\",\n            \"balance\": 4286.33\n        },\n        {\n            \"accountId\": 101987,\n            \"accountName\": \"FREE CHECK\",\n            \"accountNumber\": \"  1230326   00\",\n            \"type\": \"6\",\n            \"balance\": 1887.86\n        },\n        {\n            \"accountId\": 101988,\n            \"accountName\": \"HELOC CHEC\",\n            \"accountNumber\": \"  1230326   01\",\n            \"type\": \"6\",\n            \"balance\": 460\n        }\n    ]\n}"}],"_postman_id":"df5c0365-a2fe-46c1-a6d6-1bd4fcab9829"},{"name":"/deposit ☑️","id":"c61aa14f-b6eb-4b0e-a16a-bcf2c8a4d92e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 10,\n    \"account\": {\n        \"accountId\": 259631,\n        \"accountNumber\": \"999999901   00\"\n    },\n    \"currentBills\": {\n        \"recycler\": {\n            \"100\": 920,\n            \"50\": 920,\n            \"20\": 920,\n            \"10\": 920,\n            \"5\": 920,\n            \"1\": 920,\n            \"totalAmount\": 171120,\n            \"totalQuantity\": 5520\n        },\n        \"deposit\": {\n            \"100\": 20,\n            \"50\": 20,\n            \"20\": 20,\n            \"10\": 20,\n            \"5\": 20,\n            \"1\": 20,\n            \"totalAmount\": 3500,\n            \"totalQuantity\": 120\n        },\n        \"rejected\": {\n            \"totalQuantity\": 30\n        }\n    },\n    \"bills\": {\n        \"10\": {\n            \"quantity\": 1,\n            \"serialNumbers\": [\n                \"L02001932A\"\n            ]\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/deposit?branchId={{branchId}}","description":"<h3 id=\"deposit-request\">Deposit Request</h3>\n<p>This HTTP POST request is used to initiate a deposit transaction for a specific account at a designated branch. The request is sent to the endpoint <code>{{proxyDomain}}/deposit?branchId={{branchId}}</code>, where <code>branchId</code> identifies the branch where the transaction is being processed.</p>\n<h4 id=\"purpose\">Purpose</h4>\n<p>The primary purpose of this request is to deposit a specified amount into a designated account. It ensures that only authorized users can perform this operation based on their authentication token.</p>\n<h4 id=\"request-body-format\">Request Body Format</h4>\n<p>The request body must be in JSON format and should include the following parameters:</p>\n<ul>\n<li><p><strong>amount</strong> (number): The amount of money to be deposited.</p>\n</li>\n<li><p><strong>account</strong> (object): An object containing account details.</p>\n<ul>\n<li><p><strong>accountId</strong> (number): The unique identifier for the account.</p>\n</li>\n<li><p><strong>accountNumber</strong> (string): The number associated with the account, which may include leading or trailing spaces.</p>\n</li>\n</ul>\n</li>\n</ul>\n<h5 id=\"example-request-body\">Example Request Body</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"amount\": 100,\n  \"account\": {\n    \"accountId\": 101987,\n    \"accountNumber\": \"  1230326   00\"\n  }\n}\n\n</code></pre>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>The response will typically include confirmation of the transaction, along with any relevant details about the deposit, such as:</p>\n<ul>\n<li><p>Transaction ID</p>\n</li>\n<li><p>Updated account balance</p>\n</li>\n<li><p>Status of the transaction</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"\",\n  \"data\": {\n    \"cashIn\": \"20.0\",\n    \"newBalance\": \"440.0\"\n  }\n}\n\n</code></pre>\n<p>Ensure that the request is properly authenticated and that the account has sufficient funds to complete the transaction.</p>\n<p>Ensure that the request is properly authenticated to receive a valid response.</p>\n<p>Returns the list of accounts who has permissions to deposit based on the auth token</p>\n","urlObject":{"path":["deposit"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"e10a1660-235e-421b-b252-af8b8e45fc83","name":"/deposit ☑️","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 100,\n    \"account\": {\n        \"accountId\": 101987,\n        \"accountNumber\": \"  1230326   00\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/deposit?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["deposit"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"3c6dd9f4-ea2d-4b52-b75c-b4de593d3de3\",\n    \"data\": {\n        \"cashIn\": \"100.0\",\n        \"newBalance\": \"1987.86\"\n    }\n}"},{"id":"7ac43e05-2bf5-4863-89cd-917380f7be4d","name":"/deposit with bills tracking","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 10,\n    \"account\": {\n        \"accountId\": 259631,\n        \"accountNumber\": \"999999901   00\"\n    },\n    \"currentBills\": {\n        \"recycler\": {\n            \"100\": 920,\n            \"50\": 920,\n            \"20\": 920,\n            \"10\": 920,\n            \"5\": 920,\n            \"1\": 920,\n            \"totalAmount\": 171120,\n            \"totalQuantity\": 5520\n        },\n        \"deposit\": {\n            \"100\": 20,\n            \"50\": 20,\n            \"20\": 20,\n            \"10\": 20,\n            \"5\": 20,\n            \"1\": 20,\n            \"totalAmount\": 3500,\n            \"totalQuantity\": 120\n        },\n        \"rejected\": {\n            \"totalQuantity\": 30\n        }\n    },\n    \"bills\": {\n        \"10\": {\n            \"quantity\": 1,\n            \"serialNumbers\": [\n                \"L02001932A\"\n            ]\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/deposit?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["deposit"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 09 Apr 2026 13:37:57 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"128"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"9633d404-3435-496b-88e1-0d0bb67d8956"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"80-Ci+V+gwctoArFGdqbKEQ3t7ZDaE\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"9633d404-3435-496b-88e1-0d0bb67d8956\",\n    \"data\": {\n        \"cashIn\": \"5.60\",\n        \"newBalance\": \"6182.29\",\n        \"transactionId\": \"267356865\"\n    }\n}"},{"id":"0dfc174e-a0ff-4cb5-aedc-a4897e1bc58b","name":"/deposit with bills tracking only cassettes","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 10,\n    \"account\": {\n        \"accountId\": 259631,\n        \"accountNumber\": \"999999901   00\"\n    },\n    \"currentBills\": {\n        \"recycler\": {\n            \"100\": 920,\n            \"50\": 920,\n            \"20\": 920,\n            \"10\": 920,\n            \"5\": 920,\n            \"1\": 920,\n            \"totalAmount\": 171120,\n            \"totalQuantity\": 5520\n        },\n        \"deposit\": {\n            \"100\": 20,\n            \"50\": 20,\n            \"20\": 20,\n            \"10\": 20,\n            \"5\": 20,\n            \"1\": 20,\n            \"totalAmount\": 3500,\n            \"totalQuantity\": 120\n        },\n        \"rejected\": {\n            \"totalQuantity\": 30\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/deposit?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["deposit"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 09 Apr 2026 13:37:57 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"128"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"9633d404-3435-496b-88e1-0d0bb67d8956"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"80-Ci+V+gwctoArFGdqbKEQ3t7ZDaE\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"9633d404-3435-496b-88e1-0d0bb67d8956\",\n    \"data\": {\n        \"cashIn\": \"5.60\",\n        \"newBalance\": \"6182.29\",\n        \"transactionId\": \"267356865\"\n    }\n}"},{"id":"57d26e33-734d-4c42-894c-66a5b7b5c242","name":"/deposit with bills tracking only recycling details","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 10,\n    \"account\": {\n        \"accountId\": 259631,\n        \"accountNumber\": \"999999901   00\"\n    },\n    \"currentBills\": {\n        \"recycler\": {\n            \"100\": 920,\n            \"50\": 920,\n            \"20\": 920,\n            \"10\": 920,\n            \"5\": 920,\n            \"1\": 920,\n            \"totalAmount\": 171120,\n            \"totalQuantity\": 5520\n        },\n        \"deposit\": {\n            \"totalAmount\": 3500,\n            \"totalQuantity\": 120\n        },\n        \"rejected\": {\n            \"totalQuantity\": 30\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/deposit?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["deposit"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 09 Apr 2026 13:37:57 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"128"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"9633d404-3435-496b-88e1-0d0bb67d8956"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"80-Ci+V+gwctoArFGdqbKEQ3t7ZDaE\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"9633d404-3435-496b-88e1-0d0bb67d8956\",\n    \"data\": {\n        \"cashIn\": \"5.60\",\n        \"newBalance\": \"6182.29\",\n        \"transactionId\": \"267356865\"\n    }\n}"}],"_postman_id":"c61aa14f-b6eb-4b0e-a16a-bcf2c8a4d92e"},{"name":"/deposit fee","id":"b96487d4-b835-4bbf-b525-70f1ec9d23d4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"account\": {\n        \"accountId\": 259631,\n        \"accountNumber\": \"999999901   00\"\n    }\n    // ,\n    // \"metadata\": { // optional\n    //     \"mockData\": {\n    //         \"channel\": \"external\" \n    //     }\n    // } \n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/deposit/fee?branchId={{branchId}}","description":"<h3 id=\"deposit-fee-request\">Deposit Fee Request</h3>\n<p>This HTTP POST request is used to retrieve the deposit fee associated with a specific account. The request is made to the endpoint <code>{{proxyDomain}}/deposit/fee</code>, and it requires a query parameter <code>branchId</code> to specify the branch for which the fee is being requested.</p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request must include a JSON payload in the following format:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"account\": {\n    \"accountId\": &lt;integer&gt;,        // The unique identifier for the account\n    \"accountNumber\": &lt;string&gt;      // The account number associated with the account\n  }\n}\n\n</code></pre>\n<ul>\n<li><p><strong>accountId</strong>: A unique integer identifier for the account.</p>\n</li>\n<li><p><strong>accountNumber</strong>: A string representing the account number, which may include leading or trailing spaces.</p>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>Upon a successful request, the server responds with a <code>201 Created</code> status code and a JSON object containing the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"\",                // A unique identifier for the request \n  \"data\": {\n    \"fee\": &lt;integer&gt;              // The deposit fee amount associated with the account\n  }\n}\n\n</code></pre>\n<ul>\n<li><p><strong>requestId</strong>: A string that uniquely identifies the request.</p>\n</li>\n<li><p><strong>data</strong>: An object containing the fee information.</p>\n<ul>\n<li><strong>fee</strong>: An integer representing the deposit fee amount, which may be zero if no fee is applicable.</li>\n</ul>\n</li>\n</ul>\n<p>This request is essential for users to determine the fees associated with depositing to their accounts based on the specified branch and account details.</p>\n","urlObject":{"path":["deposit","fee"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"9ae4f9b0-43c7-47a4-bd4a-b9064ba846c0","name":"/deposit fee","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"account\": {\n        \"accountId\": 89791,\n        \"accountNumber\": \"  1230321   00\"\n    }\n    \n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/deposit/fee?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["deposit","fee"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"\",\n    \"data\": {\n        \"fee\": 0\n    }\n}"}],"_postman_id":"b96487d4-b835-4bbf-b525-70f1ec9d23d4"}],"id":"4a33221d-4d4d-463a-9503-86190e55e28d","_postman_id":"4a33221d-4d4d-463a-9503-86190e55e28d","description":""},{"name":"Withdraw","item":[{"name":"/withdraw ☑️","event":[{"listen":"prerequest","script":{"id":"bfa472fd-ca2a-4667-a961-935ecf9c5c71","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"2f086a6f-4bce-4c90-8aa8-482649a016b9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 20,\n    \"account\": {\n        \"accountId\": 259631,\n        \"accountNumber\": \"999999901   00\"\n    },\n    \"currentBills\": {\n        \"recycler\": {\n            \"100\": 920,\n            \"50\": 920,\n            \"20\": 920,\n            \"10\": 920,\n            \"5\": 920,\n            \"1\": 920,\n            \"totalAmount\": 171120,\n            \"totalQuantity\": 5520\n        },\n        \"deposit\": {\n            \"100\": 20,\n            \"50\": 20,\n            \"20\": 20,\n            \"10\": 20,\n            \"5\": 20,\n            \"1\": 20,\n            \"totalAmount\": 3500,\n            \"totalQuantity\": 120\n        },\n        \"rejected\": {\n            \"totalQuantity\": 30\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/withdraw?branchId={{branchId}}","description":"<h3 id=\"withdraw-funds-request\">Withdraw Funds Request</h3>\n<p>This request is used to withdraw a specified amount of funds from a designated account at a particular branch. It is essential for managing account transactions securely.</p>\n<h4 id=\"request-format\">Request Format</h4>\n<ul>\n<li><p><strong>Method:</strong> POST</p>\n</li>\n<li><p><strong>URL:</strong> <code>{{proxyDomain}}/withdraw?branchId={{branchId}}</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should contain the following parameters:</p>\n<ul>\n<li><p><strong>amount</strong> (integer): The amount of money to withdraw.</p>\n</li>\n<li><p><strong>account</strong> (object): An object containing account details.</p>\n<ul>\n<li><p><strong>accountId</strong> (integer): The unique identifier for the account from which funds will be withdrawn.</p>\n</li>\n<li><p><strong>accountNumber</strong> (string): The account number associated with the account.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"amount\": 20,\n  \"account\": {\n    \"accountId\": 101988,\n    \"accountNumber\": \"1230326 01\"\n  }\n}\n\n</code></pre>\n<h4 id=\"expected-response\">Expected Response</h4>\n<p>The response will typically include confirmation of the withdrawal transaction, along with any relevant details regarding the status of the account after the transaction has been processed. The structure of the response will generally include:</p>\n<ul>\n<li><p><strong>requestId</strong> (string): A unique identifier for the withdrawal request.</p>\n</li>\n<li><p><strong>data</strong> (object): An object containing the following properties:</p>\n<ul>\n<li><p><strong>cashOut</strong> (string): Details about the cash withdrawn, if applicable.</p>\n</li>\n<li><p><strong>newBalance</strong> (string): The new balance of the account after the withdrawal.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"\",\n  \"data\": {\n    \"cashOut\": \"20.0\",\n    \"newBalance\": \"440.0\"\n  }\n}\n\n</code></pre>\n<p>Ensure that the request is properly authenticated and that the account has sufficient funds to complete the transaction.</p>\n","urlObject":{"path":["withdraw"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"4334d5f1-9211-469e-82b8-5b9e00eea74e","name":"/withdraw ☑️","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 20,\n    \"account\": {\n        \"accountId\": 101988,\n        \"accountNumber\": \"  1230326   01\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/withdraw?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["withdraw"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"dfa76ce3-4446-4977-bd82-9441e02579b1\",\n    \"data\": {\n        \"cashOut\": \"20.0\",\n        \"newBalance\": \"440.0\"\n    }\n}"},{"id":"0b40dff2-8ebf-46ac-b733-1c0ac35c124a","name":"/withdraw with bills tracking","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 20,\n    \"account\": {\n        \"accountId\": 259631,\n        \"accountNumber\": \"999999901   00\"\n    },\n    \"currentBills\": {\n        \"recycler\": {\n            \"100\": 920,\n            \"50\": 920,\n            \"20\": 920,\n            \"10\": 920,\n            \"5\": 920,\n            \"1\": 920,\n            \"totalAmount\": 171120,\n            \"totalQuantity\": 5520\n        },\n        \"deposit\": {\n            \"100\": 20,\n            \"50\": 20,\n            \"20\": 20,\n            \"10\": 20,\n            \"5\": 20,\n            \"1\": 20,\n            \"totalAmount\": 3500,\n            \"totalQuantity\": 120\n        },\n        \"rejected\": {\n            \"totalQuantity\": 30\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/withdraw?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["withdraw"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 09 Apr 2026 13:43:33 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"130"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"8aff1195-fc11-4d76-8ef0-4c85e191d7c0"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"82-n0oWXbiJtVtKl7/qji5SW/iOoew\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"8aff1195-fc11-4d76-8ef0-4c85e191d7c0\",\n    \"data\": {\n        \"cashOut\": \"20.00\",\n        \"newBalance\": \"6162.29\",\n        \"transactionId\": \"267356869\"\n    }\n}"}],"_postman_id":"2f086a6f-4bce-4c90-8aa8-482649a016b9"},{"name":"withdrawal/validate ☑️","event":[{"listen":"prerequest","script":{"id":"e9d2143e-45d5-45e6-9d7b-2c6901ec1dfb","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"ff37fe51-ef07-47aa-b151-9cd319bce314","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 200,\n    \"account\": {\n        \"accountId\": 101987,\n        \"accountNumber\": \"  1230326   00\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/withdraw/validate?branchId={{branchId}}","description":"<h2 id=\"validate-withdrawal-request\">Validate Withdrawal Request</h2>\n<p>This endpoint is used to validate a withdrawal request for a specific account at a designated branch. It checks if the withdrawal can be processed based on the provided amount and account details.</p>\n<h3 id=\"purpose\">Purpose</h3>\n<p>The purpose of this request is to determine whether a specified withdrawal can be executed for a given account. This is essential for ensuring that transactions are processed correctly and that accounts have sufficient funds for the requested withdrawal.</p>\n<h3 id=\"request\">Request</h3>\n<ul>\n<li><p><strong>Method</strong>: POST</p>\n</li>\n<li><p><strong>URL</strong>: <code>{{proxyDomain}}/withdraw/validate?branchId={{branchId}}</code></p>\n</li>\n</ul>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should include the following parameters:</p>\n<ul>\n<li><p><strong>amount</strong> (number): The amount of money to be withdrawn.</p>\n</li>\n<li><p><strong>account</strong> (object): An object containing the account details.</p>\n<ul>\n<li><p><strong>accountId</strong> (number): The unique identifier for the account.</p>\n</li>\n<li><p><strong>accountNumber</strong> (string): The number associated with the account.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Example Request Body</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"amount\": 200,\n  \"account\": {\n    \"accountId\": 101987,\n    \"accountNumber\": \"1230326 00\"\n  }\n}\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>The response will provide information regarding the validation of the withdrawal request. The structure of the response may include:</p>\n<ul>\n<li><p><strong>requestId</strong> (string): A unique identifier for the request.</p>\n</li>\n<li><p><strong>data</strong> (object): Contains additional information regarding the validation.</p>\n<ul>\n<li><p><strong>message</strong> (string): A detailed message explaining the result of the validation.</p>\n</li>\n<li><p><strong>body</strong> (object): An object that includes:</p>\n<ul>\n<li><strong>canDoTransaction</strong> (boolean): Indicates whether the transaction can be processed.</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Example Response</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"\",\n  \"data\": {\n    \"message\": \"Can do transaction.\",\n    \"body\": {\n      \"canDoTransaction\": true\n    }\n  }\n}\n\n</code></pre>\n<p>Ensure to handle the response appropriately based on the status returned.</p>\n","urlObject":{"path":["withdraw","validate"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"8e21df76-f227-4b22-8ec3-969bbb6658e0","name":"withdrawal/validate ☑️","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 200,\n    \"account\": {\n        \"accountId\": 101987,\n        \"accountNumber\": \"  1230326   00\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/withdraw/validate?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["withdraw","validate"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"5d619d73-039b-443b-922f-47df4caa1712\",\n    \"data\": {\n        \"message\": \"Can do transaction.\",\n        \"body\": {\n            \"canDoTransaction\": true\n        }\n    }\n}"}],"_postman_id":"ff37fe51-ef07-47aa-b151-9cd319bce314"},{"name":"/withdraw/accounts ☑️","event":[{"listen":"prerequest","script":{"id":"140838da-9e4a-4818-be5c-144b9498576e","exec":["/* ","Criterias of evaluation","","1. Withdrawal brake if idfi no exist on tables [ ✅ log , ✅ error expected ].","2. Withdrawal brake if idfi is null [ ✅ log , ✅ error expected ].","3. Withdrawal brake if wrong route at Car by card endpoint [ ✅ log , ✅ error expected ].",""," */","/* const sessionId = '1d7ccf41-2cd5-4db3-b91e-c06b32f24919'; // DEV */","/* const sessionId = '55d628cc-57f4-4537-a06a-b8e488f55e67'; // ALPHA */","/*const sessionId = 'f0bc02d4-7931-460e-abbc-2eb153801494'; // DEV */","","","",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"c31b6e4b-921c-430d-8cbb-091a0fc7730e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/withdraw/accounts?branchId={{branchId}}","description":"<h3 id=\"request-description\">Request Description</h3>\n<p>This HTTP GET request retrieves a list of accounts that have permissions to withdraw funds based on the provided branch identifier.</p>\n<h4 id=\"purpose\">Purpose</h4>\n<p>The main purpose of this request is to allow authorized users to view accounts associated with a specific branch that are permitted to perform withdrawal operations.</p>\n<h4 id=\"request-format\">Request Format</h4>\n<ul>\n<li><p><strong>URL</strong>: <code>{{proxyDomain}}/withdraw/accounts</code></p>\n</li>\n<li><p><strong>Query Parameters</strong>:</p>\n<ul>\n<li><code>branchId</code> (required): The unique identifier of the branch for which the accounts are being queried.</li>\n</ul>\n</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<p>The response will contain a list of accounts with the following structure:</p>\n<ul>\n<li><p><code>requestId</code>: A unique identifier for the request.</p>\n</li>\n<li><p><code>data</code>: An array of account objects, each containing:</p>\n<ul>\n<li><p><code>accountId</code>: The unique identifier for the account.</p>\n</li>\n<li><p><code>accountName</code>: The name associated with the account.</p>\n</li>\n<li><p><code>accountNumber</code>: The account number.</p>\n</li>\n<li><p><code>type</code>: The type of account.</p>\n</li>\n<li><p><code>balance</code>: The current balance of the account.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Make sure to include a valid authentication token in the request headers to authorize access to this endpoint.</p>\n<h3 id=\"example-response\">Example Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"requestId\": \"\",\n    \"data\": [\n        {\n            \"accountId\": 110000,\n            \"accountName\": \"John Doe Savings\",\n            \"accountNumber\": \"  1230326   00\",\n            \"type\": \"1\",\n            \"balance\": 1500.33\n        },\n        {\n            \"accountId\": 110001,\n            \"accountName\": \"Jane Doe Checking\",\n            \"accountNumber\": \"  1230326   06\",\n            \"type\": \"2\",\n            \"balance\": 2500.01\n        }\n    ]\n}\n\n</code></pre>\n","urlObject":{"path":["withdraw","accounts"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"c810ebce-3638-4db8-a027-38cc59feba3a","name":"/withdraw/accounts ✅","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":{"raw":"{{proxyDomain}}/withdraw/accounts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["withdraw","accounts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 08 Jul 2025 19:40:41 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"379"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"x-request-id","value":"e5939994-d1d8-49e5-8135-d69f9c245508"},{"key":"ETag","value":"W/\"17b-2//p/Fsx0aDbKDpQJGZrISl8GqU\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e5939994-d1d8-49e5-8135-d69f9c245508\",\n    \"data\": [\n        {\n            \"accountId\": 89791,\n            \"accountName\": \"SAVINGS\",\n            \"accountNumber\": \"  1230321   00\",\n            \"type\": \"1\",\n            \"balance\": 4191.33\n        },\n        {\n            \"accountId\": 101987,\n            \"accountName\": \"FREE CHECK\",\n            \"accountNumber\": \"  1230326   00\",\n            \"type\": \"6\",\n            \"balance\": 87.86\n        },\n        {\n            \"accountId\": 101988,\n            \"accountName\": \"HELOC CHEC\",\n            \"accountNumber\": \"  1230326   01\",\n            \"type\": \"6\",\n            \"balance\": 0\n        }\n    ]\n}"}],"_postman_id":"c31b6e4b-921c-430d-8cbb-091a0fc7730e"},{"name":"/withdraw/fee","id":"53cca48d-2ea6-4afc-a626-8ac88876926d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 10,\n    \"account\": {\n        \"accountId\": 89791,\n        \"accountNumber\": \"  1230321   00\"\n    }\n    // ,\n    // \"metadata\": { // optional\n    //     \"mockData\": {\n    //         \"channel\": \"external\" \n    //     }\n    // } \n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/withdraw/fee?branchId={{branchId}}","description":"<h2 id=\"withdraw-fee-endpoint\">Withdraw Fee Endpoint</h2>\n<p>This endpoint allows users to calculate the withdrawal fee associated with a specific account and amount. The fee is determined based on the provided parameters and is returned in the response.</p>\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> POST<br /><strong>URL:</strong> <code>{{proxyDomain}}/withdraw/fee?branchId={{branchId}}</code></p>\n<h4 id=\"request-body\">Request Body</h4>\n<p>The request body must be in JSON format and should contain the following parameters:</p>\n<ul>\n<li><p><strong>amount</strong> (integer, required): The amount for which the withdrawal fee is being calculated.</p>\n</li>\n<li><p><strong>account</strong> (object, required): An object containing account details.</p>\n<ul>\n<li><p><strong>accountId</strong> (integer, required): The unique identifier for the account.</p>\n</li>\n<li><p><strong>accountNumber</strong> (string, required): The account number associated with the account.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"account\": {\n    \"accountId\": &lt;integer&gt;,        // The unique identifier for the account\n    \"accountNumber\": &lt;string&gt;      // The account number associated with the account\n  }\n}\n\n</code></pre>\n<h3 id=\"response\">Response</h3>\n<p>The response will be returned in JSON format with the following structure:</p>\n<ul>\n<li><p><strong>requestId</strong> (string): A unique identifier for the request (may be empty).</p>\n</li>\n<li><p><strong>data</strong> (object): Contains the calculated fee information.</p>\n<ul>\n<li><strong>fee</strong> (integer): The calculated withdrawal fee based on the provided amount and account.</li>\n</ul>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"\",                // A unique identifier for the request \n  \"data\": {\n    \"fee\": &lt;integer&gt;              // The deposit fee amount associated with the account\n  }\n}\n\n</code></pre>\n<h3 id=\"status-codes\">Status Codes</h3>\n<ul>\n<li><strong>201 Created</strong>: Indicates that the request was successful and the fee has been calculated.</li>\n</ul>\n","urlObject":{"path":["withdraw","fee"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"2f925e87-5176-4f67-964f-87c49eb4291a","name":"/withdraw/fee","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"amount\": 10,\n    \"account\": {\n        \"accountId\": 89791,\n        \"accountNumber\": \"  1230321   00\"\n    }\n    \n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/withdraw/fee?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["withdraw","fee"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"\",\n    \"data\": {\n        \"fee\": 0\n    }\n}"}],"_postman_id":"53cca48d-2ea6-4afc-a626-8ac88876926d"},{"name":"/withdraw/reversal ☑️","event":[{"listen":"prerequest","script":{"id":"bfa472fd-ca2a-4667-a961-935ecf9c5c71","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"261ceb56-4ea2-4e62-b45d-93a07be2499b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/withdraw/reversal?branchId={{branchId}}","description":"<h3 id=\"request-description\">Request Description</h3>\n<p>This API endpoint is used to retrieve the reversal details of a withdrawal transaction. It allows users to check the status of a specific withdrawal reversal based on the provided branch ID.</p>\n<h4 id=\"request-parameters\">Request Parameters</h4>\n<ul>\n<li><strong>branchId</strong> (query parameter): The unique identifier for the branch from which the withdrawal reversal is being requested.</li>\n</ul>\n<h4 id=\"response-structure\">Response Structure</h4>\n<ul>\n<li><p><strong>Status</strong>: 200 OK</p>\n</li>\n<li><p><strong>Content-Type</strong>: application/json</p>\n</li>\n<li><p><strong>Response Body</strong>:</p>\n<ul>\n<li><p><strong>requestId</strong>: A unique identifier for the request.</p>\n</li>\n<li><p><strong>data</strong>: An object containing:</p>\n<ul>\n<li><p><strong>cashIn</strong>: The amount of cash that was reversed.</p>\n</li>\n<li><p><strong>newBalance</strong>: The updated balance after the reversal.</p>\n</li>\n<li><p><strong>transactionId</strong>: The identifier for the transaction related to the reversal.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p>This endpoint is essential for tracking the status and details of withdrawal reversals in the system.</p>\n","urlObject":{"path":["withdraw","reversal"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"6de6276d-f60e-488f-9109-822861332cf4","name":"/withdraw/reversal ☑️","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":{"raw":"{{proxyDomain}}/withdraw/reversal?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["withdraw","reversal"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"\",\n    \"data\": {\n        \"cashIn\": \"20.0\",\n        \"newBalance\": \"1755.0\",\n        \"transactionId\": \"267336801\"\n    }\n}"}],"_postman_id":"261ceb56-4ea2-4e62-b45d-93a07be2499b"}],"id":"def33035-eb31-46ab-808c-651c4c76c9bb","_postman_id":"def33035-eb31-46ab-808c-651c4c76c9bb","description":""},{"name":"Balance","item":[{"name":"balance","id":"2246dd2e-8b2e-497b-83cb-4d1aa3babb8e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/balance?branchId={{branchId}}","description":"<h1 id=\"get-account-balance\">Get Account Balance</h1>\n<h2 id=\"purpose\">Purpose</h2>\n<p>This endpoint retrieves account balance information for a specific branch. It returns detailed balance data for all accounts associated with the branch, including savings and checking accounts.</p>\n<h2 id=\"request-details\">Request Details</h2>\n<p><strong>Method:</strong> <code>GET</code></p>\n<p><strong>Endpoint:</strong> <code>{{proxyDomain}}/balance</code></p>\n<h3 id=\"required-headers\">Required Headers</h3>\n<ul>\n<li><code>branch-api-key</code>: Authentication key for branch API access</li>\n</ul>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<ul>\n<li><code>branchId</code> (required): The unique identifier for the branch whose account balances you want to retrieve</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>The endpoint returns a successful response with status code <code>200</code> containing account balance information.</p>\n<h3 id=\"response-structure\">Response Structure</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"string\",\n  \"data\": [\n    {\n      \"accountId\": number,\n      \"accountName\": \"string\",\n      \"accountType\": \"string\",\n      \"availableBalance\": number,\n      \"currentBalance\": number,\n      \"accountNumber\": \"string\",\n      \"accountNumberMasked\": \"string\"\n    }\n  ]\n}\n\n</code></pre>\n<h3 id=\"response-fields\">Response Fields</h3>\n<ul>\n<li><p><code>requestId</code>: Unique identifier for the API request</p>\n</li>\n<li><p><code>data</code>: Array of account objects containing:</p>\n<ul>\n<li><p><code>accountId</code>: Unique identifier for the account</p>\n</li>\n<li><p><code>accountName</code>: Display name of the account (e.g., \"SAVINGS\", \"CHECKING\")</p>\n</li>\n<li><p><code>accountType</code>: Type of account (e.g., \"SAVINGS\", \"CHECKING\")</p>\n</li>\n<li><p><code>availableBalance</code>: Available balance that can be withdrawn</p>\n</li>\n<li><p><code>currentBalance</code>: Current total balance in the account</p>\n</li>\n<li><p><code>accountNumber</code>: Full account number</p>\n</li>\n<li><p><code>accountNumberMasked</code>: Masked version of the account number for display purposes</p>\n</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"example-response\">Example Response</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"55f4a14a-c992-47a6-a5d5-665bd5d70fe4\",\n  \"data\": [\n    {\n      \"accountId\": 259631,\n      \"accountName\": \"SAVINGS\",\n      \"accountType\": \"SAVINGS\",\n      \"availableBalance\": 2148.5,\n      \"currentBalance\": 2153.5,\n      \"accountNumber\": \"99999990:1:00\",\n      \"accountNumberMasked\": \"SAVINGS ...990:1:00\"\n    },\n    {\n      \"accountId\": 259632,\n      \"accountName\": \"CHECKING\",\n      \"accountType\": \"CHECKING\",\n      \"availableBalance\": 8658.8,\n      \"currentBalance\": 8658.8,\n      \"accountNumber\": \"99999990:6:00\",\n      \"accountNumberMasked\": \"CHECKING ...990:6:00\"\n    }\n  ]\n}\n\n</code></pre>\n<p>The response includes multiple account types (SAVINGS, CHECKING, etc.) with their respective balance information.</p>\n","urlObject":{"path":["balance"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"3abff41e-4999-4ab0-ba3e-49b40cf6c905","name":"balance","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":{"raw":"{{proxyDomain}}/balance?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["balance"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"<string>\",\n    \"data\": [\n        {\n            \"accountId\": 0,\n            \"accountName\": \"<string>\",\n            \"accountType\": \"<string>\",\n            \"availableBalance\": 0.0,\n            \"currentBalance\": 0.0,\n            \"accountNumber\": \"<string>\",\n            \"accountNumberMasked\": \"<string...string>\"\n        },\n        {\n            \"accountId\": 1,\n            \"accountName\": \"<string>\",\n            \"accountType\": \"<string>\",\n            \"availableBalance\": 0.0,\n            \"currentBalance\": 0.0,\n            \"accountNumber\": \"<string>\",\n            \"accountNumberMasked\": \"<string...string>\"\n        }\n    ]\n}"}],"_postman_id":"2246dd2e-8b2e-497b-83cb-4d1aa3babb8e"}],"id":"8c10ec66-b85b-4d33-ae20-d2214201fe6e","_postman_id":"8c10ec66-b85b-4d33-ae20-d2214201fe6e","description":""},{"name":"Transaction","item":[{"name":"transaction/receipt","id":"76d226f9-89ae-49a9-9a86-2c444f260a6c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/transaction/receipt?branchId={{branchId}}","description":"<p><strong>Purpose:</strong>\nRetrieves the receipt details for a transaction at a specific branch.</p>\n<p><strong>Required Query Parameters:</strong></p>\n<ul>\n<li><code>branchId</code> (string): The unique identifier of the branch for which the transaction receipt is requested.</li>\n</ul>\n<p><strong>Response:</strong>\nReturns a JSON object containing transaction details, including:</p>\n<ul>\n<li>ATM owner</li>\n<li>Transaction type</li>\n<li>Transaction date</li>\n<li>ATM ID</li>\n<li>Card number</li>\n<li>Transaction ID</li>\n<li>Account number</li>\n<li>Amount</li>\n<li>Fee</li>\n<li>Total</li>\n<li>Available balance</li>\n</ul>\n<p>Use this endpoint to obtain a detailed receipt for a transaction performed at the specified branch.</p>\n","urlObject":{"path":["transaction","receipt"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"1a1e81ac-4846-4f4e-abfd-b8058b308197","name":"transaction/receipt","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":{"raw":"{{proxyDomain}}/transaction/receipt?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["transaction","receipt"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 21 Oct 2025 03:22:56 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Content-Length","value":"334"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"x-request-id","value":"f064be50-6220-490b-98ce-22c6dfdd2d9a"},{"key":"ETag","value":"W/\"14e-+ntfDpYwFRPh1QH/6qnLkh2IQxI\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"<string>\",\n    \"data\": {\n        \"atmOwner\": \"<string>\",\n        \"transactionType\": \"<string>\",\n        \"transactionDate\": \"2025-10-21T03:22:45.789Z\",\n        \"atm\": \"0001\",\n        \"cardNumber\": \"0000\",\n        \"transactionId\": \"<string>\",\n        \"accountNumber\": \"SAVINGS...99990:1:00\",\n        \"amount\": 20,\n        \"fee\": 5,\n        \"total\": 25,\n        \"availableBalance\": \"1811.5\"\n    }\n}"}],"_postman_id":"76d226f9-89ae-49a9-9a86-2c444f260a6c"}],"id":"4b011bab-6ddc-473f-a9c4-07cf1bcfef41","_postman_id":"4b011bab-6ddc-473f-a9c4-07cf1bcfef41","description":""},{"name":"ATM","item":[{"name":"/atm/config","id":"759cf954-c8fa-40c7-9cd4-85ddded32741","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/atm/config?branchId={{branchId}}","description":"<p>Retrieves configuration details for a specific ATM branch.</p>\n<p><strong>Purpose:</strong><br />Use this endpoint to obtain configuration information for an ATM, such as its name, status, type, timezone, currency, language settings, audit settings, and visual configuration.</p>\n<p><strong>Usage:</strong><br />Send a GET request to this endpoint with the required query parameter and authentication header.</p>\n<p><strong>Parameters:</strong></p>\n<ul>\n<li><code>branchId</code> (query, required): The unique identifier of the branch whose ATM configuration is being requested.</li>\n</ul>\n<p><strong>Authentication:</strong></p>\n<ul>\n<li><code>branch-api-key</code> (header, required): API key required for authentication. Include this header in your request.</li>\n</ul>\n<p><strong>Example Request:</strong><br />GET <code>{{proxyDomain}}</code>/atm/config?branchId={{branchId}}<br />Header: branch-api-key:</p>\n<p>A successful response returns the configuration details for the specified ATM branch.</p>\n","urlObject":{"path":["atm","config"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"2a7aaa6f-51c8-4e93-b752-ba3e120303f7","name":"/atm/config","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":{"raw":"{{proxyDomain}}/atm/config?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","config"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"<string>\",\n    \"data\": {\n        \"id\": \"<string>\",\n        \"name\": \"<string>\",\n        \"description\": \"<string>\",\n        \"status\": \"<string>\",\n        \"type\": \"<string>\",\n        \"timezone\": \"<string>\",\n        \"currency\": \"<string>\",\n        \"language\": [\n            {\n                \"en-us\": \"<string>\"\n            }\n        ],\n        \"atmNumber\": \"<string>\",\n        \"creditUnionName\": \"<string>\",\n        \"location\": {\n            \"country\": \"<string>\",\n            \"state\": \"<string>\",\n            \"city\": \"<string>\",\n            \"zipCode\": \"<string>\",\n            \"addresses\": {\n                \"address1\": \"<string>\",\n                \"address2\": \"<string>\"\n            }\n        },\n        \"config\": {\n            \"visual\": {\n                \"Logo\": {\n                    \"url\": \"<string>\"\n                },\n                \"IconLogo\": {\n                    \"url\": \"<string>\"\n                },\n                \"darkLogo\": null,\n                \"avatarLogo\": null,\n                \"wallpapers\": [\n                    {\n                        \"url\": \"<string>\",\n                        \"title\": \"<string>\",\n                        \"description\": \"<string>\",\n                        \"key\": \"<string>\",\n                        \"id\": 1,\n                        \"bannerUrl\": \"<string>\"\n                    }\n                ],\n                \"theme\": {\n                    \"primary\": {\n                        \"color\": \"wp\",\n                        \"pallette\": {\n                            \"_50\": \"#F7F9FB\",\n                            \"_100\": \"#F2F5F7\",\n                            \"_200\": \"#A0BDD8\",\n                            \"_300\": \"#4E80AF\",\n                            \"_400\": \"#BE531C\",\n                            \"_500\": \"#BE531C\",\n                            \"_600\": \"#003B5C\",\n                            \"_700\": \"#00273D\",\n                            \"_800\": \"#001F30\",\n                            \"_900\": \"#04151E\",\n                            \"DEFAULT\": \"#003B5C\"\n                        },\n                        \"hexadecimal\": \"#003B5C\"\n                    }\n                }\n            },\n            \"statusInterval\": \"*/30 * * * * *\",\n            \"cassetteBalanceInterval\": \"0 0 * * * *\",\n            \"cassetteLimits\": {\n                \"deposit\": {\n                    \"low\": {\n                        \"max\": 40,\n                        \"min\": 0,\n                        \"color\": \"#475569\"\n                    },\n                    \"full\": {\n                        \"max\": 100,\n                        \"min\": 80,\n                        \"color\": \"#DC2626\"\n                    },\n                    \"medium\": {\n                        \"max\": 79,\n                        \"min\": 41,\n                        \"color\": \"#FBBF24\"\n                    }\n                },\n                \"rejected\": {\n                    \"low\": {\n                        \"max\": 40,\n                        \"min\": 0,\n                        \"color\": \"#475569\"\n                    },\n                    \"full\": {\n                        \"max\": 100,\n                        \"min\": 80,\n                        \"color\": \"#DC2626\"\n                    },\n                    \"medium\": {\n                        \"max\": 79,\n                        \"min\": 41,\n                        \"color\": \"#FBBF24\"\n                    }\n                },\n                \"recycling\": {\n                    \"low\": {\n                        \"max\": 40,\n                        \"min\": 0,\n                        \"color\": \"#DC2626\"\n                    },\n                    \"full\": {\n                        \"max\": 100,\n                        \"min\": 80,\n                        \"color\": \"#475569\"\n                    },\n                    \"medium\": {\n                        \"max\": 79,\n                        \"min\": 41,\n                        \"color\": \"#FBBF24\"\n                    }\n                }\n            }\n        },\n        \"featureFlags\": {\n            \"fundingDualAuth\": false,\n            \"cardPrintingBranch\": false,\n            \"transferBranch\": false\n        },\n        \"contactInfo\": {\n            \"email\": \"<string>\",\n            \"phone\": \"<string>\"\n        }\n    }\n}"}],"_postman_id":"759cf954-c8fa-40c7-9cd4-85ddded32741"},{"name":"/atm/alerts","event":[{"listen":"test","script":{"id":"4690d47d-4c78-4312-aa31-4d04e2e65a70","exec":["",""],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"8ecf48c7-6812-48e8-a3dd-768ccd822b92","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"05d98fbf-b92a-474a-b154-fe3951163963","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"alertId\": \"RECY-0010\"\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/atm/alerts?branchId={{branchId}}","description":"<h1 id=\"add-atm-alert\">Add ATM Alert</h1>\n<p>This endpoint allows users to create a new alert for a specific ATM branch. By sending a POST request, you can register an alert with a unique identifier for tracking and management purposes.</p>\n<hr />\n<h2 id=\"endpoint-summary\">Endpoint Summary</h2>\n<ul>\n<li><p><strong>Purpose:</strong> Register a new alert for an ATM branch.</p>\n</li>\n<li><p><strong>Method:</strong> <code>POST</code></p>\n</li>\n<li><p><strong>URL:</strong> <code>{{proxyDomain}}/atm/alerts?branchId={{branchId}}</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>branchId</td>\n<td>string</td>\n<td>Yes</td>\n<td>The unique identifier for the branch where the alert is created.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"request-headers\">Request Headers</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>branch-api-key</td>\n<td>string</td>\n<td>Yes</td>\n<td>API key for branch authentication.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"request-body\">Request Body</h2>\n<p>The request body must be in JSON format and include the following field:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>alertId</td>\n<td>string</td>\n<td>Yes</td>\n<td>Unique identifier for the new alert.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"alertId\": \"RECY-0010\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<ul>\n<li><p><strong>Status Code:</strong> <code>201 Created</code></p>\n</li>\n<li><p><strong>Content-Type:</strong> <code>application/json</code></p>\n</li>\n</ul>\n<p><strong>Response Body:</strong>  </p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>requestId</td>\n<td>string</td>\n<td>Identifier for the request (may be empty).</td>\n</tr>\n<tr>\n<td>data</td>\n<td>object</td>\n<td>Contains details about the created alert.</td>\n</tr>\n<tr>\n<td>└─ alertId</td>\n<td>string</td>\n<td>The identifier of the created alert (may be empty).</td>\n</tr>\n<tr>\n<td>└─ success</td>\n<td>boolean</td>\n<td>Indicates if the alert was successfully created.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"5bdadb5b-de38-44a3-9751-e0a1cf789956\",\n  \"data\": {\n    \"alertId\": \"RECY-0010\",\n    \"success\": true\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"notes\">Notes</h2>\n<ul>\n<li><p>The <code>branchId</code> query parameter is required and must correspond to a valid branch.</p>\n</li>\n<li><p>The <code>alertId</code> should be unique within the context of the branch.</p>\n</li>\n<li><p>A valid <code>branch-api-key</code> header is required for authentication.</p>\n</li>\n<li><p>On success, the response will include the <code>alertId</code> and a <code>success</code> flag.</p>\n</li>\n<li><p>If the alert cannot be created, an error response will be returned with details.</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"example-usage\">Example Usage</h2>\n<p><strong>Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST {{proxyDomain}}/atm/alerts?branchId=12345\nHeader: branch-api-key: &lt;api-key&gt;\nBody:\n{\n  \"alertId\": \"RECY-0010\"\n}\n\n</code></pre><p><strong>Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>201 Created\n{\n  \"requestId\": \"5bdadb5b-de38-44a3-9751-e0a1cf789956\",\n  \"data\": {\n    \"alertId\": \"RECY-0010\",\n    \"success\": true\n  }\n}\n\n</code></pre><hr />\n<p>This endpoint is essential for managing ATM alerts, allowing users to create alerts that can be referenced and acted upon in the future.</p>\n","urlObject":{"path":["atm","alerts"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"10d20e00-9641-43f8-b01a-eee559577636","name":"/atm/alerts","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"alertId\": \"<key>\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/alerts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","alerts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"<string>\",\n    \"data\": {\n        \"alertId\": \"<key>\",\n        \"success\": true\n    }\n}"},{"id":"ed917023-50bc-4761-9f7d-78f9282573eb","name":"RECY-0005","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"alertId\": \"RECY-0005\",\n    \"affected\": \"RECYCLER_10\",\n    \"quantity\": 5\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/alerts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","alerts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 23 Apr 2026 04:17:04 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"98"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"e73b9903-5636-4136-b620-3a5a9410f07d"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"62-gh3JWjpL5BZxPxB5LHu2s0G5/rk\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e73b9903-5636-4136-b620-3a5a9410f07d\",\n    \"data\": {\n        \"alertId\": \"RECY-0005\",\n        \"success\": true\n    }\n}"},{"id":"119f245c-6d28-4fe1-8bea-5d829d4d7357","name":"RECY-0006","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"alertId\": \"RECY-0006\",\n    \"affected\": \"RECYCLER_1\",\n    \"quantity\": 1650\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/alerts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","alerts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 23 Apr 2026 04:17:51 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"98"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"0ab29526-9ef6-43d1-893a-df24cd8d8b2d"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"62-vUJWgGsYhHnOyG6nZTMJVKpQ544\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"0ab29526-9ef6-43d1-893a-df24cd8d8b2d\",\n    \"data\": {\n        \"alertId\": \"RECY-0006\",\n        \"success\": true\n    }\n}"},{"id":"a82ef02b-ea8a-4937-a083-9483e7958a6e","name":"RECY-0007","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"alertId\": \"RECY-0007\",\n    \"affected\": \"RECYCLER_5\",\n    \"quantity\": 0\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/alerts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","alerts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 23 Apr 2026 04:18:38 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"98"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"4c2ac3ea-88cc-4603-9756-00b58a842bce"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"62-Qs9xVgDTuye4Zk6+XHP5BB+Oh8A\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"4c2ac3ea-88cc-4603-9756-00b58a842bce\",\n    \"data\": {\n        \"alertId\": \"RECY-0007\",\n        \"success\": true\n    }\n}"},{"id":"3b715cf1-8ce9-4b7e-a236-7dd5b6f8fd9f","name":"RECY-0010","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"alertId\": \"RECY-0010\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/alerts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","alerts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 23 Apr 2026 04:23:42 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"98"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"92e70560-9df1-4ade-b930-7cbf5c5e4505"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"62-7ny45Bf90VORAZjRdm3c+WjncTs\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"92e70560-9df1-4ade-b930-7cbf5c5e4505\",\n    \"data\": {\n        \"alertId\": \"RECY-0010\",\n        \"success\": true\n    }\n}"},{"id":"532b12c0-403f-44c1-a752-cea6800f32fa","name":"RECPRI-0002","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"alertId\": \"RECPRI-0002\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/alerts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","alerts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 23 Apr 2026 04:24:26 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"100"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"f3984450-5f03-4025-870d-444de8e910c3"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"64-IyJOyLcnUEzxuqqYa4bgydLzst0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"f3984450-5f03-4025-870d-444de8e910c3\",\n    \"data\": {\n        \"alertId\": \"RECPRI-0002\",\n        \"success\": true\n    }\n}"},{"id":"621528c6-b52e-4ad8-ad52-c861482b372d","name":"RECPRI-0003","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"alertId\": \"RECPRI-0003\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/alerts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","alerts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 23 Apr 2026 04:25:15 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"100"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"05134e33-5a9d-487f-8bfe-66576a945580"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"64-XvkQ7eeG0mWeBuwJcHeK3854MC0\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"05134e33-5a9d-487f-8bfe-66576a945580\",\n    \"data\": {\n        \"alertId\": \"RECPRI-0003\",\n        \"success\": true\n    }\n}"},{"id":"4993cf04-d4b6-43ea-aeb3-28d330cc81c1","name":"CREAD-0003","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"alertId\": \"CREAD-0003\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/alerts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","alerts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 23 Apr 2026 04:26:13 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"99"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"26e80565-9693-4315-a425-6b0c9b57f5b4"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"63-69HvdP7+eyKh6+f8vibJC9aMonc\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"26e80565-9693-4315-a425-6b0c9b57f5b4\",\n    \"data\": {\n        \"alertId\": \"CREAD-0003\",\n        \"success\": true\n    }\n}"},{"id":"e0a80f49-6b10-4f9f-b7d9-e1b5d8eafca2","name":"CREAD-0004","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"alertId\": \"CREAD-0004\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/alerts?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","alerts"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Thu, 23 Apr 2026 04:26:48 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"99"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"11a06346-c4a6-4f39-9e90-cad551c56441"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"63-ez8b6ildNXpwxi+THwUvf1A8eFs\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"11a06346-c4a6-4f39-9e90-cad551c56441\",\n    \"data\": {\n        \"alertId\": \"CREAD-0004\",\n        \"success\": true\n    }\n}"}],"_postman_id":"05d98fbf-b92a-474a-b154-fe3951163963"},{"name":"/atm/status","id":"b0b3d477-b269-4138-88e5-5a75d9112640","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/atm/status?branchId={{branchId}}","description":"<h2 id=\"post-atmstatus\">POST /atm/status</h2>\n<h3 id=\"summary\">Summary</h3>\n<p>Submit the operational status event for an ATM for a specific branch. As of this version, the endpoint no longer accepts a request body. Clients report status via query parameters and required headers only.</p>\n<h3 id=\"request-details\">Request Details</h3>\n<ul>\n<li><p>HTTP Method: POST</p>\n</li>\n<li><p>Endpoint URL: <code>{{proxyDomain}}/atm/status?branchId={{branchId}}</code></p>\n</li>\n</ul>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<ul>\n<li>branchId (string, required): Unique identifier for the branch where the ATM is located.</li>\n</ul>\n<h3 id=\"headers\">Headers</h3>\n<ul>\n<li>branch-api-key (string, required): API key for authenticating the branch making the request.</li>\n</ul>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li>None. This endpoint does not accept a request body.</li>\n</ul>\n<h3 id=\"expected-outcomes\">Expected Outcomes</h3>\n<ul>\n<li>Success:<ul>\n<li><p>Status Code: 201 Created</p>\n</li>\n<li><p>Description: The ATM status was successfully recorded.</p>\n</li>\n<li><p>Response Body Example:<br />  {<br />  \"requestId\": \"\",<br />  \"data\": {</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"success\": true\n\n</code></pre><p>  }<br />  }</p>\n</li>\n</ul>\n</li>\n<li>Failure:<ul>\n<li>Appropriate error codes and messages will be returned if the request is invalid or authentication fails.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"example-usage\">Example Usage</h3>\n<p>Request:<br />POST <code>{{proxyDomain}}</code>/atm/status?branchId=12345<br />Headers:<br />branch-api-key:<br />Body: (none)</p>\n<p>Response:<br />201 Created<br />{<br />\"requestId\": \"a80b9810-6cb3-48f9-931c-5e3ee57103f2\",<br />\"data\": {<br />\"success\": true<br />}<br />}</p>\n<hr />\n","urlObject":{"path":["atm","status"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"124b50aa-ec44-434e-9991-0ecec373b87a","name":"/atm/status","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/status?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","status"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"a80b9810-6cb3-48f9-931c-5e3ee57103f2\",\n    \"data\": {\n        \"success\": true\n    }\n}"}],"_postman_id":"b0b3d477-b269-4138-88e5-5a75d9112640"},{"name":"/atm/journalLogs","event":[{"listen":"test","script":{"id":"067cdf31-3950-49f1-b2a7-26aa7b6ccdef","exec":["pm.test(\"Status code is 200\", function () {","    pm.expect(pm.response.code).to.equal(201);","});",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"99e780db-7efc-4b46-b44d-296fa4a03881","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"logs\": [\n    // { \"action\": \"EMPLOYEE_LOGIN\", \"role\": \"SUPERVISOR\" }\n    { \"action\": \"CARD_REMOVAL\", \"role\": \"MEMBER\" }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/atm/journalLogs?branchId={{branchId}}","description":"<p><strong>Purpose:</strong>\nThis endpoint creates journal logs for ATM actions at a specified branch.</p>\n<p><strong>Usage:</strong></p>\n<ul>\n<li><p><strong>HTTP Method:</strong> POST</p>\n</li>\n<li><p><strong>Endpoint:</strong> <code>/atm/journalLogs</code></p>\n</li>\n<li><p><strong>Required Query Parameter:</strong></p>\n<ul>\n<li><code>branchId</code> (string): The unique identifier of the branch where the ATM action occurred.</li>\n</ul>\n</li>\n<li><p><strong>Request Body (JSON):</strong></p>\n<ul>\n<li><code>logs</code>: An array of log objects, each containing:<ul>\n<li><code>action</code> (string): The ATM action performed (e.g., <code>CASH_WITHDRAWAL</code>).</li>\n<li><code>role</code> (string): The role of the user performing the action (e.g., <code>MEMBER</code>).</li>\n</ul>\n</li>\n</ul>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"logs\": [\n    { \"action\": \"CASH_WITHDRAWAL\", \"role\": \"MEMBER\" }\n  ]\n}\n</code></pre>\n</li>\n</ul>\n<p><strong>Expected Response:</strong></p>\n<ul>\n<li><strong>Status Code:</strong> 201 Created</li>\n<li><strong>Response Body:</strong><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"&lt;string&gt;\",\n  \"data\": {\n    \"success\": true,\n    \"message\": \"Journal log created successfully\"\n  }\n}\n</code></pre>\n</li>\n</ul>\n<p>A successful request will return a 201 status code and a message confirming the journal log was created.</p>\n","urlObject":{"path":["atm","journalLogs"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"1975e8f3-3e11-4df4-8a15-494056da4e03","name":"/atm/journalLogs","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"logs\": [\n    // { \"action\": \"EMPLOYEE_LOGIN\", \"role\": \"SUPERVISOR\" }\n    { \"action\": \"CASH_WITHDRAWAL\", \"role\": \"MEMBER\" }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/journalLogs?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","journalLogs"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"f5cdda49-8ddb-4ca7-953b-14914c9906d9\",\n    \"data\": {\n        \"success\": true,\n        \"message\": \"Journal log created successfully\"\n    }\n}"}],"_postman_id":"99e780db-7efc-4b46-b44d-296fa4a03881"},{"name":"/atm/commonLogs","id":"fca52af9-fe0d-4bfe-9757-91abd86826f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","uuid":"b7d6c123-4d46-4703-a321-62fb3672ea7b","value":null}]},"url":"{{proxyDomain}}/atm/commonLogs?branchId={{branchId}}","description":"<p><strong>Endpoint:</strong> <code>POST {{proxyDomain}}/atm/commonLogs?branchId={{branchId}}</code></p>\n<p><strong>Purpose:</strong><br />Uploads a log file to the ATM system for the specified branch. This endpoint is typically used to submit bulk or individual log files for processing and storage.</p>\n<p><strong>Required Headers:</strong></p>\n<ul>\n<li><code>branch-api-key</code>: API key for authenticating the request.</li>\n</ul>\n<p><strong>Request Body:</strong></p>\n<ul>\n<li><p>Content-Type: <code>multipart/form-data</code></p>\n</li>\n<li><p>Form field:</p>\n<ul>\n<li><code>file</code>: The log file to upload (e.g., a <code>.zip</code> file containing logs).</li>\n</ul>\n</li>\n</ul>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><code>branchId</code>: The unique identifier of the branch. Provided via the <code>{{branchId}}</code> variable.</li>\n</ul>\n<p><strong>Successful Response:</strong></p>\n<ul>\n<li><p><strong>Status Code:</strong> <code>201 Created</code></p>\n</li>\n<li><p><strong>Body (JSON):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"&lt;string&gt;\",\n  \"data\": {\n    \"success\": true,\n    \"message\": \"File uploaded successfully\"\n  }\n}\n\n</code></pre>\n</li>\n<li><p><code>requestId</code>: Unique identifier for tracking the upload request.</p>\n</li>\n<li><p><code>data.success</code>: Indicates if the upload was successful.</p>\n</li>\n<li><p><code>data.message</code>: Confirmation message.</p>\n</li>\n</ul>\n<p><strong>Usage Notes:</strong></p>\n<ul>\n<li><p>Ensure the file field is included in the form-data body.</p>\n</li>\n<li><p>The endpoint requires valid authentication via the <code>branch-api-key</code> header.</p>\n</li>\n<li><p>The <code>branchId</code> must correspond to an existing branch in the system.</p>\n</li>\n</ul>\n","urlObject":{"path":["atm","commonLogs"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"0dba22b2-5f8f-4fbd-9065-273d6a10a322","name":"/atm/commonLogs","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"file","type":"file","uuid":"b7d6c123-4d46-4703-a321-62fb3672ea7b","value":null}]},"url":{"raw":"{{proxyDomain}}/atm/commonLogs?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","commonLogs"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 21 Oct 2025 03:33:31 GMT"},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Content-Length","value":"115"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"x-request-id","value":"50dd1e05-eae1-48f2-8bc1-0195eab6d8e9"},{"key":"ETag","value":"W/\"73-Cmu4wZYqqlJnEwwNDOQbqfIuq1o\""}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"<string>\",\n    \"data\": {\n        \"success\": true,\n        \"message\": \"File uploaded successfully\"\n    }\n}"}],"_postman_id":"fca52af9-fe0d-4bfe-9757-91abd86826f9"},{"name":"/atm/preregistry","id":"260abe8a-abff-4cf5-9b9f-f85789769b98","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}"}],"body":{"mode":"raw","raw":"{\n    \"deviceName\": \"test branch beta\",\n    \"currency\": \"USD\",\n    \"languages\": [\n        {\n            \"en-us\": \"english-united-states\"\n        }\n    ],\n    \"location\": {\n        \"state\": \"Alabama\",\n        \"city\": \"Alabama\",\n        \"zipCode\": \"11111\",\n        \"addresses\": {\n            \"address1\": \"Calle falsa 123\"\n        }\n    },\n    \"deviceGL\": \"123.0000\",\n    \"vaultGL\": \"123.0000\",\n    \"idFi\": 3,\n    \"network\": [\n        {\n            \"ipAddress\": \"186.186.186.186\"\n        }\n    ],\n    \"metadata\": [\n        {\n            \"model\": \"LC71AR\",\n            \"serialNumber\": \"123456\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/atm/preregistry","urlObject":{"path":["atm","preregistry"],"host":["{{proxyDomain}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"260abe8a-abff-4cf5-9b9f-f85789769b98"},{"name":"/atm/registryATM","id":"df1a68de-eb42-48fc-b77a-2e04f429c347","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}"}],"body":{"mode":"raw","raw":"{\n    \"setupCode\": \"903075\",\n    \"metadata\": [\n        {\n            \"manufacturer\": \"ATEC AP\",\n            \"model\": \"atmModel\",\n            \"serialNumber\": \"55412456\",\n            \"idFi\": 3\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/atm/registryAtm","urlObject":{"path":["atm","registryAtm"],"host":["{{proxyDomain}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"df1a68de-eb42-48fc-b77a-2e04f429c347"},{"name":"/atm/cassettesManagement","id":"f692f76b-5074-4ec1-906a-cb9f2ce786c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"currentBills\": {\n        \"recycler\": {\n            \"100\": 1,\n            \"50\": 1,\n            \"20\": 1,\n            \"10\": 1,\n            \"5\": 1,\n            \"1\": 1,\n            \"totalAmount\": 186,\n            \"totalQuantity\": 6\n        },\n        \"deposit\": {\n            \"100\": 3,\n            \"50\": 0,\n            \"20\": 0,\n            \"10\": 0,\n            \"5\": 0,\n            \"1\": 0,\n            \"totalAmount\": 300,\n            \"totalQuantity\": 3\n        },\n        \"rejected\": {\n            \"totalQuantity\": 10\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/atm/cassettesManagement?branchId={{branchId}}","urlObject":{"path":["atm","cassettesManagement"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"0be64dfc-ac76-44a0-ad94-8bf9d4d1250f","name":"200","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"currentBills\": {\n        \"recycler\": {\n            \"100\": 1,\n            \"50\": 1,\n            \"20\": 1,\n            \"10\": 1,\n            \"5\": 1,\n            \"1\": 1,\n            \"totalAmount\": 186,\n            \"totalQuantity\": 6\n        },\n        \"deposit\": {\n            \"100\": 3,\n            \"50\": 0,\n            \"20\": 0,\n            \"10\": 0,\n            \"5\": 0,\n            \"1\": 0,\n            \"totalAmount\": 300,\n            \"totalQuantity\": 3\n        },\n        \"rejected\": {\n            \"totalQuantity\": 10\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/cassettesManagement?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","cassettesManagement"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":":status","value":201},{"key":"date","value":"Tue, 07 Apr 2026 03:53:07 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"139"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"8db228f5-338c-44b3-b762-6b25b7e60a75"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"8b-9h9DAC9vyBDfC1o43vygpcYr+70\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"8db228f5-338c-44b3-b762-6b25b7e60a75\",\n    \"data\": {\n        \"success\": true,\n        \"updated\": [\n            {\n                \"success\": true\n            },\n            {\n                \"success\": true\n            },\n            {\n                \"success\": true\n            }\n        ]\n    }\n}"}],"_postman_id":"f692f76b-5074-4ec1-906a-cb9f2ce786c4"},{"name":"/atm/funding","id":"f01b1338-80c8-4651-9cbe-51b6969833a0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"bills\": {\n        \"100\": 0,\n        \"20\": 0,\n        \"1\": 0,\n        \"5\": 0,\n        \"50\": 0,\n        \"10\": 1\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/atm/funding?branchId={{branchId}}","urlObject":{"path":["atm","funding"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"a3b1f622-d3e3-4deb-a1f8-5d8fab59d3ee","name":"/atm/funding","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}"},{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"<string>","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"bills\": {\n        \"100\": 0,\n        \"20\": 0,\n        \"1\": 0,\n        \"5\": 0,\n        \"50\": 0,\n        \"10\": 1\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/funding?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","funding"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"Created","code":201,"_postman_previewlanguage":"","header":[{"key":"Date","value":"Thu, 26 Feb 2026 12:32:02 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"131"},{"key":"Connection","value":"keep-alive"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"c2ea8ae5-657b-4a25-be10-c97894bd0af8"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"83-A9BvQfOHHVyUrUlDCu2Mz9vMqyg\""}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"c2ea8ae5-657b-4a25-be10-c97894bd0af8\",\n    \"data\": {\n        \"cashLoad\": \"10.0\",\n        \"transactionId\": \"XXXXXXX\",\n        \"automaticFunding\": true\n    }\n}"}],"_postman_id":"f01b1338-80c8-4651-9cbe-51b6969833a0"},{"name":"atm/changeStatus","id":"c9373424-4db5-4e13-9f46-c3447e014eb2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":false},"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \n    \"finalStatus\": \"OPERATIONAL\", \n    \"details\": {\n        \"device\" : \"SENSOR\", \n        \"deviceType\": \"WORKING\" \n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/atm/changeStatus?branchId={{branchId}}","urlObject":{"path":["atm","changeStatus"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"1af7aa79-a662-4418-a9a3-7b9e3e2adf80","name":"atm/changeStatus out of service","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \n    \"finalStatus\": \"OUT_OF_SERVICE\", \n    \"details\": {\n        \"device\" : \"SENSOR\", \n        \"deviceType\": \"HARDWARE_ERROR\" \n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/changeStatus?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","changeStatus"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Thu, 23 Apr 2026 04:08:21 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"105"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"108ad97f-df7d-41e3-a4d2-07467d9e7c33"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"69-MLQLr9ZfP7OLJdUVQwUYsr0U6wc\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"108ad97f-df7d-41e3-a4d2-07467d9e7c33\",\n    \"data\": {\n        \"message\": \"ATM status changed successfully\"\n    }\n}"},{"id":"76d32606-33f9-4c5f-913f-dcf8ca8032ea","name":"atm/changeStatus operational","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \n    \"finalStatus\": \"OPERATIONAL\", \n    \"details\": {\n        \"device\" : \"SENSOR\", \n        \"deviceType\": \"WORKING\" \n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/atm/changeStatus?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["atm","changeStatus"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":":status","value":200},{"key":"date","value":"Thu, 23 Apr 2026 04:12:00 GMT"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"content-length","value":"105"},{"key":"content-security-policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"cross-origin-opener-policy","value":"same-origin"},{"key":"cross-origin-resource-policy","value":"same-origin"},{"key":"origin-agent-cluster","value":"?1"},{"key":"referrer-policy","value":"no-referrer"},{"key":"strict-transport-security","value":"max-age=31536000; includeSubDomains"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-dns-prefetch-control","value":"off"},{"key":"x-download-options","value":"noopen"},{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"x-xss-protection","value":"0"},{"key":"access-control-allow-origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"e4c32463-573f-4d4b-826a-46ff4036674a"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"69-zWTyzKGl4ywXi0MQq6agxCswAlo\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"e4c32463-573f-4d4b-826a-46ff4036674a\",\n    \"data\": {\n        \"message\": \"ATM status changed successfully\"\n    }\n}"}],"_postman_id":"c9373424-4db5-4e13-9f46-c3447e014eb2"}],"id":"48c86c31-26c9-4c44-a673-b6a7dd051292","_postman_id":"48c86c31-26c9-4c44-a673-b6a7dd051292","description":""},{"name":"LogOut","item":[{"name":"/atm/session/exit","id":"f8182bc8-8a97-44e4-aec3-82b64feb9b7d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{sessionId}}"}]},"isInherited":false},"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}"}],"body":{"mode":"raw","raw":"{\n  \"flow\": \"withdrawal\", // deposit, balance\n  \"screen\": \"REVIEW\" // MAIN_MENU, CHOOSE_ACCOUNT, ENTER_AMOUNT, FEE_NOTICE, REVIEW, INSERT_CASH\n}\n\n// {\n//     \"action\": \"INACTIVITY\"\n// }","options":{"raw":{"language":"json"}}},"url":"{{proxyDomain}}/session/exit?branchId={{branchId}}","urlObject":{"path":["session","exit"],"host":["{{proxyDomain}}"],"query":[{"key":"branchId","value":"{{branchId}}"}],"variable":[]}},"response":[{"id":"aae82bf6-e16a-4294-bee3-17077f2b17b2","name":"inactivity","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}"}],"body":{"mode":"raw","raw":"{\n    \"action\": \"INACTIVITY\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/session/exit?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["session","exit"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Thu, 26 Feb 2026 13:14:36 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"116"},{"key":"Connection","value":"keep-alive"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"8e8d8463-e804-45e4-bf47-c9a7dcd95fbd"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"74-bQeKup9zk8UhCK5cNNA7Sv/8OiI\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"8e8d8463-e804-45e4-bf47-c9a7dcd95fbd\",\n    \"data\": {\n        \"success\": true,\n        \"message\": \"Session closed successfully\"\n    }\n}"},{"id":"866ff8af-8b3d-4ee6-9fe9-e8eb71085a48","name":"exit in flow","originalRequest":{"method":"POST","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}"}],"body":{"mode":"raw","raw":"{\n  \"flow\": \"withdrawal\",\n  \"screen\": \"REVIEW\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{proxyDomain}}/session/exit?branchId={{branchId}}","host":["{{proxyDomain}}"],"path":["session","exit"],"query":[{"key":"branchId","value":"{{branchId}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Thu, 26 Feb 2026 13:17:57 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"116"},{"key":"Connection","value":"keep-alive"},{"key":"Content-Security-Policy","value":"default-src 'self';base-uri 'self';font-src 'self' https: data:;form-action 'self';frame-ancestors 'self';img-src 'self' data:;object-src 'none';script-src 'self';script-src-attr 'none';style-src 'self' https: 'unsafe-inline';upgrade-insecure-requests"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"},{"key":"Cross-Origin-Resource-Policy","value":"same-origin"},{"key":"Origin-Agent-Cluster","value":"?1"},{"key":"Referrer-Policy","value":"no-referrer"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-DNS-Prefetch-Control","value":"off"},{"key":"X-Download-Options","value":"noopen"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Permitted-Cross-Domain-Policies","value":"none"},{"key":"X-XSS-Protection","value":"0"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"access-control-allow-credentials","value":"true"},{"key":"x-request-id","value":"64788cba-1a35-488b-bc76-5268ea60c06f"},{"key":"x-powered-by","value":"Express"},{"key":"vary","value":"Origin"},{"key":"etag","value":"W/\"74-EJfOWvLgMZXYaseUX4Vu7ZD92co\""}],"cookie":[],"responseTime":null,"body":"{\n    \"requestId\": \"64788cba-1a35-488b-bc76-5268ea60c06f\",\n    \"data\": {\n        \"success\": true,\n        \"message\": \"Session closed successfully\"\n    }\n}"}],"_postman_id":"f8182bc8-8a97-44e4-aec3-82b64feb9b7d"}],"id":"b16b12e3-02a1-4e61-ab1b-cd85858c3650","_postman_id":"b16b12e3-02a1-4e61-ab1b-cd85858c3650","description":""},{"name":"VisualConfig","item":[{"name":"blossom/visualConfig","id":"17eef699-a823-481d-b39f-afafa4ea9b8b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/blossom/visualConfig","description":"<p><strong>Purpose:</strong><br />The <code>blossom/visualConfig</code> GET endpoint retrieves the current visual configuration settings for the Blossom application. This allows clients to dynamically obtain branding assets and theming information for consistent UI presentation.</p>\n<p><strong>Usage:</strong></p>\n<ul>\n<li><p><strong>HTTP Method:</strong> GET</p>\n</li>\n<li><p><strong>URL:</strong> <code>{{proxyDomain}}/blossom/visualConfig</code></p>\n</li>\n<li><p><strong>Authentication:</strong> Requires the <code>branch-api-key</code> header.</p>\n</li>\n<li><p><strong>Request Body:</strong> None required.</p>\n</li>\n</ul>\n<p><strong>Required Headers:</strong></p>\n<ul>\n<li><code>branch-api-key</code>: API key for authentication and authorization.</li>\n</ul>\n<p><strong>Response Details:</strong></p>\n<ul>\n<li><p><strong>Status:</strong> 200 OK on success</p>\n</li>\n<li><p><strong>Body:</strong> JSON object containing:</p>\n<ul>\n<li><p><code>icons</code>: URLs for icon assets in JPG, PNG, and SVG formats.</p>\n</li>\n<li><p><code>logos</code>: URLs for dark and light theme logos in JPG, PNG, and SVG formats.</p>\n</li>\n<li><p><code>theme.colors</code>: Accent color, primary color, and a palette of color codes for UI theming.</p>\n</li>\n<li><p><code>success</code>: Boolean indicating request success.</p>\n</li>\n<li><p><code>requestId</code>: Unique identifier for the request.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"requestId\": \"c0ea7fa4-55a1-4cb9-9463-a586adc84e77\",\n  \"data\": {\n    \"success\": true,\n    \"config\": {\n      \"icons\": { \"jpg\": \"...\", \"png\": \"...\", \"svg\": \"...\" },\n      \"logos\": {\n        \"dark\": { \"jpg\": \"...\", \"png\": \"...\", \"svg\": \"...\" },\n        \"light\": { \"jpg\": \"...\", \"png\": \"...\", \"svg\": \"...\" }\n      },\n      \"theme\": {\n        \"colors\": {\n          \"accent\": \"#3956E8\",\n          \"palette\": { \"50\": \"#F7F9FB\", ... },\n          \"primary\": \"#001D3D\"\n        }\n      }\n    }\n  }\n}\n\n</code></pre>\n<p>This endpoint is essential for clients that need to render the Blossom UI with up-to-date branding and theming information.</p>\n","urlObject":{"path":["blossom","visualConfig"],"host":["{{proxyDomain}}"],"query":[],"variable":[]}},"response":[{"id":"57f75e44-a37b-45ad-b4ab-2951bfe32312","name":"blossom/visualConfig","originalRequest":{"method":"GET","header":[{"key":"branch-api-key","value":"{{proxyApiKey}}","type":"text"}],"url":"{{proxyDomain}}/blossom/visualConfig"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"requestId\": \"c0ea7fa4-55a1-4cb9-9463-a586adc84e77\",\n    \"data\": {\n        \"success\": true,\n        \"config\": {\n            \"icons\": {\n                \"jpg\": \"https://devolbassets.static-content.blossomdev.com/dev/blossom/icons/blossom_icon.jpg\",\n                \"png\": \"https://devolbassets.static-content.blossomdev.com/dev/blossom/icons/blossom_icon.png\",\n                \"svg\": \"https://devolbassets.static-content.blossomdev.com/dev/blossom/icons/blossom_icon.svg\"\n            },\n            \"logos\": {\n                \"dark\": {\n                    \"jpg\": \"https://devolbassets.static-content.blossomdev.com/dev/blossom/logos/dark/blossom_logo.jpg\",\n                    \"png\": \"https://devolbassets.static-content.blossomdev.com/dev/blossom/logos/dark/blossom_logo.png\",\n                    \"svg\": \"https://devolbassets.static-content.blossomdev.com/dev/blossom/logos/dark/blossom_logo.svg\"\n                },\n                \"light\": {\n                    \"jpg\": \"https://devolbassets.static-content.blossomdev.com/dev/blossom/logos/light/blossom_logo.jpg\",\n                    \"png\": \"https://devolbassets.static-content.blossomdev.com/dev/blossom/logos/light/blossom_logo.png\",\n                    \"svg\": \"https://devolbassets.static-content.blossomdev.com/dev/blossom/logos/light/blossom_logo.svg\"\n                }\n            },\n            \"theme\": {\n                \"colors\": {\n                    \"accent\": \"#3956E8\",\n                    \"palette\": {\n                        \"50\": \"#F7F9FB\",\n                        \"100\": \"#F2F5F7\",\n                        \"200\": \"#A0BDD8\",\n                        \"300\": \"#4E80AF\",\n                        \"400\": \"#BE531C\",\n                        \"500\": \"#BE531C\",\n                        \"600\": \"#003B5C\",\n                        \"700\": \"#00273D\",\n                        \"800\": \"#001F30\",\n                        \"900\": \"#04151E\"\n                    },\n                    \"primary\": \"#001D3D\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"17eef699-a823-481d-b39f-afafa4ea9b8b"}],"id":"849c8f5a-6bf1-4559-a6b4-8bdaf8a75568","_postman_id":"849c8f5a-6bf1-4559-a6b4-8bdaf8a75568","description":""},{"name":"/healthCheck","id":"3e526ffb-e773-43c8-820b-8eab5301f510","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{proxyDomain}}/ping","urlObject":{"path":["ping"],"host":["{{proxyDomain}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"3e526ffb-e773-43c8-820b-8eab5301f510"}]}