--- issue: "016" title: "createProviderPaymentIntent always routes to request-network regardless of provider — SHKeeper checkout broken" severity: critical domain: payment labels: [frontend, bug] status: open created: 2026-05-29 source: Doc vs Code Audit 2026-05-29 --- # 🔴 createProviderPaymentIntent always routes to request-network regardless of provider — SHKeeper checkout broken **Severity:** critical **Domain:** payment **Labels:** frontend, bug ## Description `frontend/src/actions/payment.ts` — `getProviderIntentEndpoint()` ignores its `provider` argument and always returns `endpoints.payments.requestNetwork.intents` (`/payment/request-network/intents`). If any UI component passes `provider='shkeeper'` to `createProviderPaymentIntent()`, the intent creation silently POSTs to the Request Network endpoint instead of `/payment/shkeeper/intents`. The SHKeeper intents endpoint is defined in `axios.ts` but is never reached by this factory. ## Current Behavior A SHKeeper checkout call to `createProviderPaymentIntent('shkeeper', ...)` POSTs to `/payment/request-network/intents`. The RN endpoint creates a Request Network intent, not a SHKeeper intent. The payment provider is silently misrouted. ## Expected Behavior `getProviderIntentEndpoint('shkeeper')` should return `endpoints.payments.shkeeper.intents`. The function should switch on the provider argument. ## Affected Files - `frontend/src/actions/payment.ts` — `getProviderIntentEndpoint()` function (~line 444) ## References - [Doc vs Code Audit Report](../09%20-%20Audits/Doc%20vs%20Code%20Audit%20Report%20-%202026-05-29.md) — Finding M38 - Related: [[ISSUE-017-payment-provider-type-missing-values]]