PaymentSettlementV2
is the newer version. It supports payer and payee amounts that differ, and
refunds that span multiple parties. You don’t choose which contract to use: the
messageType of a transaction tells you which contract settles it:
PaymentSettlementV2: settles transactions with themessageTypePAYMENT_SETTLEMENT_CONTRACT_V2_0_PAYMENT_INTENTPaymentSettlement: settles transactions with themessageTypePAYMENT_SETTLEMENT_CONTRACT_V1_0_PAYMENT_INTENT
Permit2 for
token transfers. When you sign the Permit2 typed data for a transaction, the
spender is the address of the contract that matches its messageType on the
blockchain you’re using.