Usually you do not just open an iframe with a banking domain. Instead, you open the iframe from the domain of the external payment provider (adyen, braintree, etc.), and they, in turn, open inside another iframe so that they are only allowed iframe payment providers to communicate with it.
Interestingly, these frames still typically use policies of the same origin.
source share