Тот самый случай где как раз уместнее просто jsonb.
Для каждой системы будут нужны свои данные, это всё равно у вас будет фабрика в коде для обработки и валидации требований конкретной системы. А поиск по этому json напротив является исключением, а не частой ситуацией.
То есть payment_data: id, user_id, payment_system (enum), data jsonb
В users default_payment FK на payment_data
PS: по моему опыту, лучше сразу предположите что в будущем возможно деление платежа в настраиваемых пользователем пропорциях на несколько кошельков. С задачей такой встречался несколько раз, во всех случаях через несколько лет приходили к задаче "нужно дать возможность пользователю настроить выплаты на несколько кошельков".