The returning-customer surface: a loading/error/refresh state machine over
the HOST's saved-method endpoints. PayFanout persists nothing, so both
fetchers hit the host's own backend (which calls
PaymentService.listSavedPaymentMethods / deleteSavedPaymentMethod with the
pspCustomerId it maps to its user) — the hook holds nothing beyond
component state. Methods are opaque tokens plus display facts; card data
never appears. Needs no ; SSR-safe (fetching starts in
an effect); refresh/remove identities are stable across renders.
The returning-customer surface: a loading/error/refresh state machine over the HOST's saved-method endpoints. PayFanout persists nothing, so both fetchers hit the host's own backend (which calls PaymentService.listSavedPaymentMethods / deleteSavedPaymentMethod with the pspCustomerId it maps to its user) — the hook holds nothing beyond component state. Methods are opaque tokens plus display facts; card data never appears. Needs no; SSR-safe (fetching starts in
an effect); refresh/remove identities are stable across renders.