{"info":{"_postman_id":"46ac01ab-eaa6-4492-9bc1-6d7ebd365a28","name":"Slot API","description":"<html><head></head><body><p>Postman collection for the Slot backend API.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"56381141","collectionId":"46ac01ab-eaa6-4492-9bc1-6d7ebd365a28","publishedId":"2sBY4HUjBq","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-07-04T09:55:54.000Z"},"item":[{"name":"Auth","item":[{"name":"Register user","id":"7fb20431-a549-4c9d-a131-5f6965b75c14","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Test User\",\n  \"email\": \"test@example.com\",\n  \"password\": \"Password123!\",\n  \"password_confirmation\": \"Password123!\"\n}"},"url":"localhost:8000/api/auth/register","description":"<p>Create a new user account and receive a Sanctum token.</p>\n","urlObject":{"port":"8000","path":["api","auth","register"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"f35c9861-f697-4f3e-a346-540c7ac94627","name":"Register user success response","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Test User\",\n  \"email\": \"test@example.com\",\n  \"password\": \"Password123!\",\n  \"password_confirmation\": \"Password123!\"\n}"},"url":"localhost:8000/api/auth/register"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 08:46:11 GMT"},{"key":"Vary","value":"Origin"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"timestamp\": \"2026-07-04T08:46:11+00:00\",\n    \"message\": \"Resource created successfully.\",\n    \"data\": {\n        \"user\": {\n            \"id\": 1,\n            \"name\": \"Test User\",\n            \"email\": \"test@example.com\",\n            \"balance\": 1000\n        },\n        \"token\": \"1|OTKk9Cskdnco81M4xNww4FOjzmtsDcxGkUX9mFkK79ea9fa2\"\n    }\n}"},{"id":"b24e5409-7b22-4d75-997d-bb3110ba656e","name":"Duplicated email response","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Test User\",\n  \"email\": \"test@example.com\",\n  \"password\": \"Password123!\",\n  \"password_confirmation\": \"Password123!\"\n}"},"url":"localhost:8000/api/auth/register"},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 09:04:03 GMT"},{"key":"Vary","value":"Origin"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The email has already been taken.\",\n    \"errors\": {\n        \"email\": [\n            \"The email has already been taken.\"\n        ]\n    }\n}"}],"_postman_id":"7fb20431-a549-4c9d-a131-5f6965b75c14"},{"name":"Login","event":[{"listen":"test","script":{"id":"631a8fac-867e-47b8-8134-5b521e0d33f5","exec":["var json = pm.response.json();","if (json && json.data && json.data.token) {","  pm.collectionVariables.set('accessToken', json.data.token);","}"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"60e6b21f-6a34-4551-a521-58682b618812","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"test@example.com\",\n  \"password\": \"Password123!\"\n}"},"url":"localhost:8000/api/auth/login","description":"<p>Authenticate and receive a Sanctum token.</p>\n","urlObject":{"port":"8000","path":["api","auth","login"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"3cf61a0d-a363-42c4-be9b-4a8bfa16b009","name":"Login Success Response","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"test@example.com\",\n  \"password\": \"Password123!\"\n}"},"url":"localhost:8000/api/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 08:47:13 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"timestamp\": \"2026-07-04T08:47:13+00:00\",\n    \"data\": {\n        \"user\": {\n            \"id\": 1,\n            \"name\": \"Test User\",\n            \"email\": \"test@example.com\",\n            \"balance\": 1000\n        },\n        \"token\": \"2|vC6yxjaDhZwsVTD7VlgdGu3o15clFdUnAE5NT38H4d2f33c2\"\n    }\n}"},{"id":"2707d852-f8aa-4f05-a9f1-07746712af82","name":"Invalid credentials response","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"email\": \"testone@example.com\",\n  \"password\": \"Password123!\"\n}"},"url":"localhost:8000/api/auth/login"},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 09:01:27 GMT"},{"key":"Vary","value":"Origin"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Invalid credentials.\",\n    \"errors\": {\n        \"email\": [\n            \"Invalid credentials.\"\n        ]\n    }\n}"}],"_postman_id":"60e6b21f-6a34-4551-a521-58682b618812"},{"name":"Get current user","id":"90dcc9e7-b10d-4ef5-8fe0-f8b647b311a5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/api/auth/me","description":"<p>Get the authenticated user profile.</p>\n","urlObject":{"port":"8000","path":["api","auth","me"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"4a9dddc8-4938-4f80-bdc3-500bfaf1ed78","name":"Get current user success response","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"localhost:8000/api/auth/me"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 08:48:04 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"timestamp\": \"2026-07-04T08:48:04+00:00\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Test User\",\n        \"email\": \"test@example.com\",\n        \"balance\": 1000,\n        \"total_wagered\": 0,\n        \"total_won\": 0\n    }\n}"}],"_postman_id":"90dcc9e7-b10d-4ef5-8fe0-f8b647b311a5"},{"name":"Logout","id":"7b06c4e7-94d0-433a-a7d3-8f6559cad215","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"url":"localhost:8000/api/auth/logout","description":"<p>Revoke the current access token.</p>\n","urlObject":{"port":"8000","path":["api","auth","logout"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"6de0d57f-a4a5-49e3-a10f-475f807650a6","name":"Logout success response","originalRequest":{"method":"POST","header":[],"url":"localhost:8000/api/auth/logout"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 08:55:29 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"timestamp\": \"2026-07-04T08:55:29+00:00\",\n    \"message\": \"Logged out successfully.\"\n}"}],"_postman_id":"7b06c4e7-94d0-433a-a7d3-8f6559cad215"},{"name":"Get authenticated user details","id":"9c0e1460-050a-4fe6-b9e5-a8ce56260291","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"localhost:8000/api/user","description":"<p>Get user balance and stats.</p>\n","urlObject":{"port":"8000","path":["api","user"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"5fc9b14d-2d6c-4fed-824a-c58e305fc846","name":"Get authenticated user details success response","originalRequest":{"method":"GET","header":[],"url":"localhost:8000/api/user"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 08:48:49 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1,\n    \"name\": \"Test User\",\n    \"email\": \"test@example.com\",\n    \"balance\": 1000,\n    \"total_wagered\": 0,\n    \"total_won\": 0,\n    \"email_verified_at\": null,\n    \"created_at\": \"2026-07-04T08:46:10.000000Z\",\n    \"updated_at\": \"2026-07-04T08:46:10.000000Z\"\n}"}],"_postman_id":"9c0e1460-050a-4fe6-b9e5-a8ce56260291"}],"id":"0a4bdb40-dd24-44a0-bc26-b81061fca7c2","_postman_id":"0a4bdb40-dd24-44a0-bc26-b81061fca7c2","description":""},{"name":"Slot","item":[{"name":"Spin","id":"8e984975-b64f-4afa-afe8-79dfa144f49d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"bet_amount\": 80\n}"},"url":"localhost:8000/api/slot/spin","description":"<p>Spin the slot game with one of the supported bet amounts: 80, 160, 320, 480, 800.</p>\n","urlObject":{"port":"8000","path":["api","slot","spin"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1ca04ebc-e646-47d4-8951-6163be460529","name":"Spin success response","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"bet_amount\": 80\n}"},"url":"localhost:8000/api/slot/spin"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 08:49:30 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"timestamp\": \"2026-07-04T08:49:30+00:00\",\n    \"data\": {\n        \"spin_id\": 1,\n        \"reel_stops\": [\n            22,\n            47,\n            5,\n            1,\n            39\n        ],\n        \"grid\": [\n            [\n                8,\n                8,\n                7,\n                7\n            ],\n            [\n                0,\n                1,\n                2,\n                10\n            ],\n            [\n                10,\n                10,\n                10,\n                9\n            ],\n            [\n                10,\n                10,\n                10,\n                10\n            ],\n            [\n                4,\n                4,\n                3,\n                3\n            ]\n        ],\n        \"wins\": [],\n        \"win_amount\": 0,\n        \"bet_amount\": 80,\n        \"balance\": 920,\n        \"is_free_spin\": false,\n        \"free_spins_awarded\": 0,\n        \"free_spins_remaining\": 0,\n        \"is_retrigger\": false,\n        \"cumulative_win\": 0,\n        \"is_final_spin\": false,\n        \"spin_multiplier\": 1,\n        \"total_multiplier\": 1\n    }\n}"},{"id":"df1c61ab-0beb-44ec-8a7f-0a72bd2135a5","name":"Insufficient balance response","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"bet_amount\": 800\n}"},"url":"localhost:8000/api/slot/spin"},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 09:05:35 GMT"},{"key":"Vary","value":"Origin"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": false,\n    \"error\": {\n        \"code\": \"ERR_INSUFFICIENT_FUNDS\",\n        \"message\": \"Insufficient balance to place this bet.\",\n        \"details\": {\n            \"required_amount\": 800,\n            \"current_balance\": 120,\n            \"shortfall\": 680\n        }\n    },\n    \"timestamp\": \"2026-07-04T09:05:35+00:00\"\n}"}],"_postman_id":"8e984975-b64f-4afa-afe8-79dfa144f49d"},{"name":"Get balance","id":"669271de-22a9-4944-bb15-016d01f3302d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"localhost:8000/api/slot/balance","description":"<p>Get the current user balance.</p>\n","urlObject":{"port":"8000","path":["api","slot","balance"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"1e80c09e-885e-4685-9346-5b99ff6ea6aa","name":"Get balance success response","originalRequest":{"method":"GET","header":[],"url":"localhost:8000/api/slot/balance"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 09:06:15 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"timestamp\": \"2026-07-04T09:06:15+00:00\",\n    \"data\": {\n        \"balance\": 120\n    }\n}"}],"_postman_id":"669271de-22a9-4944-bb15-016d01f3302d"},{"name":"Get session state","id":"0a7cdd5e-b427-4b95-ad59-4eaef4ceb181","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"localhost:8000/api/slot/session-state","description":"<p>Retrieve current free-spin session and recovery state.</p>\n","urlObject":{"port":"8000","path":["api","slot","session-state"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"bbd3a4f8-74e6-4863-bd43-c77fac5ae156","name":"Get session state success response","originalRequest":{"method":"GET","header":[],"url":"localhost:8000/api/slot/session-state"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 09:06:37 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"timestamp\": \"2026-07-04T09:06:37+00:00\",\n    \"data\": {\n        \"user_id\": 2,\n        \"balance\": 120,\n        \"free_spin_session\": {\n            \"has_active_session\": false,\n            \"message\": \"No active free spin session found\"\n        },\n        \"has_active_game_session\": false,\n        \"recovery\": {\n            \"required\": false,\n            \"message\": \"No active free spin session. Ready for regular play.\",\n            \"actions\": {\n                \"proceed_normal\": \"Continue with regular slot game\"\n            }\n        },\n        \"wallet_mode\": \"local\",\n        \"is_seamless_mode\": false\n    }\n}"}],"_postman_id":"0a7cdd5e-b427-4b95-ad59-4eaef4ceb181"},{"name":"Get reel strips","id":"ced0cff2-80a1-4c43-98e0-64d05fa707c6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:8000/api/slot/reels","description":"<p>Get public reel strip data.</p>\n","urlObject":{"port":"8000","path":["api","slot","reels"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"318e7d1a-f8ec-4662-afb6-ab19bd088c35","name":"Get reel strips success response","originalRequest":{"method":"GET","header":[],"url":"localhost:8000/api/slot/reels"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 09:07:06 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"timestamp\": \"2026-07-04T09:07:06+00:00\",\n    \"data\": {\n        \"strips\": [\n            [\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                9,\n                9,\n                9,\n                9,\n                1,\n                9,\n                9,\n                9,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                6,\n                6,\n                6,\n                5,\n                5,\n                5,\n                4,\n                4,\n                4,\n                3,\n                3,\n                3,\n                0,\n                0,\n                0,\n                1,\n                10,\n                9,\n                8,\n                7,\n                6,\n                5,\n                4,\n                3,\n                0,\n                0,\n                0\n            ],\n            [\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                9,\n                9,\n                9,\n                9,\n                1,\n                9,\n                9,\n                9,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                6,\n                6,\n                6,\n                5,\n                5,\n                5,\n                4,\n                4,\n                4,\n                3,\n                3,\n                3,\n                0,\n                0,\n                0,\n                0,\n                1,\n                2,\n                10,\n                9,\n                8,\n                7,\n                6,\n                5,\n                4,\n                3\n            ],\n            [\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                9,\n                9,\n                9,\n                9,\n                1,\n                9,\n                9,\n                9,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                6,\n                6,\n                6,\n                5,\n                5,\n                5,\n                4,\n                4,\n                4,\n                3,\n                3,\n                3,\n                0,\n                0,\n                0,\n                0,\n                1,\n                2,\n                10,\n                9,\n                8,\n                7,\n                6,\n                5,\n                4,\n                3\n            ],\n            [\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                9,\n                9,\n                9,\n                9,\n                1,\n                9,\n                9,\n                9,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                6,\n                6,\n                6,\n                5,\n                5,\n                5,\n                4,\n                4,\n                4,\n                3,\n                3,\n                3,\n                0,\n                0,\n                0,\n                0,\n                1,\n                2,\n                10,\n                9,\n                8,\n                7,\n                6,\n                5,\n                4,\n                3\n            ],\n            [\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                10,\n                9,\n                9,\n                9,\n                9,\n                1,\n                9,\n                9,\n                9,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                8,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                7,\n                6,\n                6,\n                6,\n                5,\n                5,\n                5,\n                4,\n                4,\n                4,\n                3,\n                3,\n                3,\n                0,\n                0,\n                0,\n                1,\n                10,\n                9,\n                8,\n                7,\n                6,\n                5,\n                4,\n                3,\n                0,\n                0,\n                0\n            ]\n        ]\n    }\n}"}],"_postman_id":"ced0cff2-80a1-4c43-98e0-64d05fa707c6"}],"id":"1e6c0424-1596-415c-853c-537554ae1bab","_postman_id":"1e6c0424-1596-415c-853c-537554ae1bab","description":""},{"name":"Webhook","item":[{"name":"Get webhook config","id":"cc429364-1a41-4548-9064-831f107aa195","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"localhost:8000/api/webhook/config","description":"<p>Retrieve webhook configuration details for operator integration.</p>\n","urlObject":{"port":"8000","path":["api","webhook","config"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"296795ec-78dc-45e4-b321-786b587bba2f","name":"Get webhook config response","originalRequest":{"method":"GET","header":[],"url":"localhost:8000/api/webhook/config"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 08:53:27 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"timestamp\": \"2026-07-04T08:53:27+00:00\",\n    \"data\": {\n        \"webhook_endpoint\": \"http://localhost:8000/api/webhook/operator\",\n        \"supported_events\": [\n            \"transaction_confirmation\",\n            \"balance_update\",\n            \"session_update\"\n        ],\n        \"signature_required\": true,\n        \"signature_header\": \"X-Signature\",\n        \"signature_algorithm\": \"sha256\",\n        \"timeout\": 10,\n        \"retry_policy\": {\n            \"attempts\": 3,\n            \"delay_ms\": 100\n        }\n    }\n}"}],"_postman_id":"cc429364-1a41-4548-9064-831f107aa195"},{"name":"Test webhook","id":"dc4fdf34-740b-4ce1-9c9b-1ff61750bbef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"test_id\": \"postman-test\"\n}"},"url":"localhost:8000/api/webhook/test","description":"<p>Send a sample webhook test payload.</p>\n","urlObject":{"port":"8000","path":["api","webhook","test"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"bad30da2-07ba-477f-b95f-53d9e1844c06","name":"Test webhook response","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"test_id\": \"postman-test\"\n}"},"url":"localhost:8000/api/webhook/test"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 08:54:04 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"timestamp\": \"2026-07-04T08:54:04+00:00\",\n    \"data\": {\n        \"type\": \"test\",\n        \"timestamp\": \"2026-07-04T08:54:04+00:00\",\n        \"message\": \"Webhook connectivity test successful\",\n        \"test_id\": \"postman-test\",\n        \"received_headers\": {\n            \"content-length\": [\n                \"31\"\n            ],\n            \"connection\": [\n                \"keep-alive\"\n            ],\n            \"accept-encoding\": [\n                \"gzip, deflate, br\"\n            ],\n            \"postman-token\": [\n                \"763a3f9e-1d3b-4f1e-ae3a-773a4d73a05c\"\n            ],\n            \"cache-control\": [\n                \"no-cache\"\n            ],\n            \"accept\": [\n                \"*/*\"\n            ],\n            \"user-agent\": [\n                \"PostmanRuntime/7.49.1\"\n            ],\n            \"content-type\": [\n                \"application/json\"\n            ],\n            \"host\": [\n                \"localhost:8000\"\n            ]\n        },\n        \"received_ip\": \"172.22.0.1\",\n        \"received_at\": \"2026-07-04T08:54:04+00:00\"\n    }\n}"}],"_postman_id":"dc4fdf34-740b-4ce1-9c9b-1ff61750bbef"},{"name":"Operator webhook","id":"a9013511-6e0f-41d9-a5bb-70cc012395fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"type\": \"transaction_confirmation\",\n  \"event\": \"balance_update\",\n  \"user_id\": 1,\n  \"amount\": 100,\n  \"timestamp\": \"2026-07-04T00:00:00Z\"\n}"},"url":"localhost:8000/api/webhook/operator","description":"<p>Operator webhook callback endpoint.</p>\n","urlObject":{"port":"8000","path":["api","webhook","operator"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"25ca8e32-444e-4aaf-b92a-52d084689514","name":"IP not authorized","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"type\": \"transaction_confirmation\",\n  \"event\": \"balance_update\",\n  \"user_id\": 1,\n  \"amount\": 100,\n  \"timestamp\": \"2026-07-04T00:00:00Z\"\n}"},"url":"localhost:8000/api/webhook/operator"},"status":"Forbidden","code":403,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Vary","value":"Origin"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 08:54:41 GMT"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"IP address not authorized\",\n    \"exception\": \"Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\HttpException\",\n    \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php\",\n    \"line\": 1440,\n    \"trace\": [\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php\",\n            \"line\": 67,\n            \"function\": \"abort\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Application\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/app/Http/Controllers/WebhookController.php\",\n            \"line\": 49,\n            \"function\": \"abort\"\n        },\n        {\n            \"file\": \"/var/www/html/app/Http/Controllers/WebhookController.php\",\n            \"line\": 22,\n            \"function\": \"validateIpAddress\",\n            \"class\": \"App\\\\Http\\\\Controllers\\\\WebhookController\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php\",\n            \"line\": 46,\n            \"function\": \"handle\",\n            \"class\": \"App\\\\Http\\\\Controllers\\\\WebhookController\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php\",\n            \"line\": 275,\n            \"function\": \"dispatch\",\n            \"class\": \"Illuminate\\\\Routing\\\\ControllerDispatcher\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php\",\n            \"line\": 215,\n            \"function\": \"runController\",\n            \"class\": \"Illuminate\\\\Routing\\\\Route\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 822,\n            \"function\": \"run\",\n            \"class\": \"Illuminate\\\\Routing\\\\Route\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 180,\n            \"function\": \"Illuminate\\\\Routing\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php\",\n            \"line\": 52,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Routing\\\\Middleware\\\\SubstituteBindings\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 137,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 821,\n            \"function\": \"then\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 800,\n            \"function\": \"runRouteWithinStack\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 764,\n            \"function\": \"runRoute\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 753,\n            \"function\": \"dispatchToRoute\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php\",\n            \"line\": 200,\n            \"function\": \"dispatch\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 180,\n            \"function\": \"Illuminate\\\\Foundation\\\\Http\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Kernel\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php\",\n            \"line\": 21,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php\",\n            \"line\": 31,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TransformsRequest\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\ConvertEmptyStringsToNull\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php\",\n            \"line\": 21,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php\",\n            \"line\": 51,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TransformsRequest\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TrimStrings\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php\",\n            \"line\": 27,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\ValidatePostSize\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php\",\n            \"line\": 109,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\PreventRequestsDuringMaintenance\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php\",\n            \"line\": 74,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\HandleCors\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php\",\n            \"line\": 58,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\TrustProxies\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php\",\n            \"line\": 22,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\InvokeDeferredCallbacks\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php\",\n            \"line\": 28,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\ValidatePathEncoding\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 137,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php\",\n            \"line\": 175,\n            \"function\": \"then\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php\",\n            \"line\": 144,\n            \"function\": \"sendRequestThroughRouter\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Kernel\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php\",\n            \"line\": 1220,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Kernel\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/public/index.php\",\n            \"line\": 20,\n            \"function\": \"handleRequest\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Application\",\n            \"type\": \"->\"\n        }\n    ]\n}"},{"id":"906f409a-7b7f-4d9c-9cdd-76f0c1b2c68a","name":"Missing signature header","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"type\": \"transaction_confirmation\",\n  \"event\": \"balance_update\",\n  \"user_id\": 1,\n  \"amount\": 100,\n  \"timestamp\": \"2026-07-04T00:00:00Z\"\n}"},"url":"localhost:8000/api/webhook/operator"},"status":"Bad Request","code":400,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.30.3"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Date","value":"Sat, 04 Jul 2026 09:15:44 GMT"},{"key":"Vary","value":"Origin"},{"key":"X-Frame-Options","value":"SAMEORIGIN"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"strict-origin-when-cross-origin"},{"key":"Permissions-Policy","value":"geolocation=(), microphone=(), camera=()"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Missing signature header\",\n    \"exception\": \"Symfony\\\\Component\\\\HttpKernel\\\\Exception\\\\HttpException\",\n    \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php\",\n    \"line\": 1440,\n    \"trace\": [\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php\",\n            \"line\": 67,\n            \"function\": \"abort\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Application\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/app/Http/Controllers/WebhookController.php\",\n            \"line\": 62,\n            \"function\": \"abort\"\n        },\n        {\n            \"file\": \"/var/www/html/app/Http/Controllers/WebhookController.php\",\n            \"line\": 26,\n            \"function\": \"validateSignature\",\n            \"class\": \"App\\\\Http\\\\Controllers\\\\WebhookController\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php\",\n            \"line\": 46,\n            \"function\": \"handle\",\n            \"class\": \"App\\\\Http\\\\Controllers\\\\WebhookController\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php\",\n            \"line\": 275,\n            \"function\": \"dispatch\",\n            \"class\": \"Illuminate\\\\Routing\\\\ControllerDispatcher\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php\",\n            \"line\": 215,\n            \"function\": \"runController\",\n            \"class\": \"Illuminate\\\\Routing\\\\Route\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 822,\n            \"function\": \"run\",\n            \"class\": \"Illuminate\\\\Routing\\\\Route\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 180,\n            \"function\": \"Illuminate\\\\Routing\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php\",\n            \"line\": 52,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Routing\\\\Middleware\\\\SubstituteBindings\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 137,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 821,\n            \"function\": \"then\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 800,\n            \"function\": \"runRouteWithinStack\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 764,\n            \"function\": \"runRoute\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php\",\n            \"line\": 753,\n            \"function\": \"dispatchToRoute\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php\",\n            \"line\": 200,\n            \"function\": \"dispatch\",\n            \"class\": \"Illuminate\\\\Routing\\\\Router\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 180,\n            \"function\": \"Illuminate\\\\Foundation\\\\Http\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Kernel\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php\",\n            \"line\": 21,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php\",\n            \"line\": 31,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TransformsRequest\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\ConvertEmptyStringsToNull\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php\",\n            \"line\": 21,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php\",\n            \"line\": 51,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TransformsRequest\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\TrimStrings\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php\",\n            \"line\": 27,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\ValidatePostSize\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php\",\n            \"line\": 109,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\PreventRequestsDuringMaintenance\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php\",\n            \"line\": 74,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\HandleCors\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php\",\n            \"line\": 58,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\TrustProxies\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/InvokeDeferredCallbacks.php\",\n            \"line\": 22,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Middleware\\\\InvokeDeferredCallbacks\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePathEncoding.php\",\n            \"line\": 28,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 219,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Http\\\\Middleware\\\\ValidatePathEncoding\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php\",\n            \"line\": 137,\n            \"function\": \"Illuminate\\\\Pipeline\\\\{closure}\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php\",\n            \"line\": 175,\n            \"function\": \"then\",\n            \"class\": \"Illuminate\\\\Pipeline\\\\Pipeline\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php\",\n            \"line\": 144,\n            \"function\": \"sendRequestThroughRouter\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Kernel\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Application.php\",\n            \"line\": 1220,\n            \"function\": \"handle\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Http\\\\Kernel\",\n            \"type\": \"->\"\n        },\n        {\n            \"file\": \"/var/www/html/public/index.php\",\n            \"line\": 20,\n            \"function\": \"handleRequest\",\n            \"class\": \"Illuminate\\\\Foundation\\\\Application\",\n            \"type\": \"->\"\n        }\n    ]\n}"}],"_postman_id":"a9013511-6e0f-41d9-a5bb-70cc012395fe"}],"id":"fb348641-6292-417f-9c53-8d2d0ad50d26","_postman_id":"fb348641-6292-417f-9c53-8d2d0ad50d26","description":""}],"variable":[{"key":"baseUrl","value":"http://localhost:8000/api","type":"string"},{"key":"accessToken","value":"","type":"string"}]}