{"ok":true,"service":"pewang-ussd-api","integration":{"model":"single_fixed_callback","description":"One HTTPS webhook URL for your USSD extension. Implement all menus in server code; the gateway POSTs form data here for every dial session."},"developerPortalUrl":"https://ussd.pewang.company","callback":{"path":"/api/ussd","fullCallbackUrl":"https://pewang.company/api/ussd","methods":{"POST":{"description":"USSD gateway invokes this URL with HTML form fields on each user action.","contentTypes":["application/x-www-form-urlencoded","multipart/form-data"],"body":{"sessionId":"Unique session id (required by this app).","networkCode":"Telco / network code.","serviceCode":"USSD short code, e.g. *657*7778#.","phoneNumber":"Subscriber MSISDN (required by this app).","text":"User input history joined with *; empty on first request. Example: 1 then 1*PIN."}},"GET":{"description":"Returns this JSON specification. Safe for health checks; not used by USSD gateways."}}},"response":{"contentType":"text/plain; charset=utf-8","rules":["Body must start with CON (continue session) or END (close session), followed by a space and the user-visible message.","Production menus: lib/ussd/handler-product.ts (demo: handler-demo.ts; router: handler.ts). Route adds CON/END from continueSession + message."],"examples":["CON Enter your PIN","END You will receive a confirmation shortly."]},"security":{"optional":{"envVar":"USSD_WEBHOOK_SECRET","header":"Authorization: Bearer <USSD_WEBHOOK_SECRET>","note":"When unset, POST is not authenticated beyond TLS and URL secrecy."}},"documentation":{"human":"https://ussd.pewang.company","repositoryFile":"docs/DEVELOPER.md","maintainerHosting":"docs/VERCEL-CLI.md"}}