---
issue: 014
title: "PaymentProvider TypeScript type excludes 'shkeeper' and 'decentralized' causing UI fallthrough for main payment providers"
severity: critical
domain: Payment
status: resolved
resolved: 2026-05-29
fix: "Added 'shkeeper' and 'decentralized' to PaymentProvider union type in types/payment.ts."
labels: [bug, frontend, critical, payment, type-mismatch]
status: open
created: 2026-05-29
source: Doc vs Code Audit 2026-05-29
---

# 🔴 PaymentProvider TypeScript type excludes 'shkeeper' and 'decentralized' causing UI fallthrough for main payment providers

**Severity:** critical
**Domain:** Payment
**Labels:** bug, frontend, critical, payment, type-mismatch

## Description

src/types/payment.ts defines PaymentProvider as 'request.network' | 'test' | 'other'. The two primary production payment providers ('shkeeper' and 'decentralized') are absent from this union type. Frontend code that switches on PaymentProvider falls through to unknown/default state for the majority of production payments.

## Current Behavior

Provider-based conditional rendering, labels, and routing logic silently falls through to unknown state for SHKeeper and DePay payments.

## Expected Behavior

PaymentProvider type should include 'shkeeper' and 'decentralized' variants.

## Affected Files

- `frontend/src/types/payment.ts`

## References

- [Doc vs Code Audit Report](../09%20-%20Audits/Doc%20vs%20Code%20Audit%20Report%20-%202026-05-29.md)
