Payment details are differentiated by their type. Some payment types like TYPE_CARD
contain additional details like the card brand, or the last 4 digits of the card number. Details for those payment
types are represented by a type-specific subclass of this class. Other payment types have no additional information
so their details are represented by an object of this base type.
Payment details contain information about the method and credentials for a payment before any attempt to authorize or
capture a payment amount. Some of that information may be relevant to the payer and is appropriate to present on an
order confirmation or order history page, as well as in an order confirmation email. Other information may only be
important for auditing or fraud check purposes and need not be presented to the payer.