OptionalbillingOptionalcaptureOnly honored if getCapabilities().supportsManualCapture.
OptionalcountryThe MERCHANT side: needed for merchant-account resolution (Paysafe).
Never consulted for rail eligibility — that reads customerCountry.
OptionalcustomerPSP customer id (from createCustomer) this payment belongs to. Required when savePaymentMethod is true.
OptionalcustomerThe CUSTOMER's country (ISO 3166-1 alpha-2), when the host knows it —
an explicit country selector, account data, delivery country. Screening
uses it to skip a PSP whose requested rails declare countries excluding
the customer (Bacs outside the UK); ABSENT means country-restricted rails
are not screened at all, so omitting it never hides a PSP. Deliberately
distinct from billingDetails.address.country: a billing address is not
a bank-account country — a French billing address can pay a German IBAN
over SEPA — so that field is never read as a screening signal.
OptionalidOptional host-app internal id. PayFanout does not persist it — adapters stamp it into PSP metadata (key "payfanout_id") so it round-trips via webhooks and retrievePayment. Defaults to the PSP session id when omitted.
OptionalmetadataOptionalpaymentRestrict what the session accepts.
OptionalreceiptReceipt/notification email, where the PSP sends receipts (Stripe).
OptionalreturnRequired by some 3DS / redirect completions.
OptionalsaveVault the instrument at the PSP during this checkout (with the customer's consent — the host renders the "save my card" checkbox). The resulting token arrives on PaymentInfo.savedPaymentMethodToken. Only honored if getCapabilities().supportsSavedPaymentMethods.
OptionalscaSCA/3DS tuning — request a challenge or an exemption where supported.
OptionalshippingNeeded for wallets and fraud scoring. Never card data.
OptionalstatementWhat shows on the customer's bank statement. PSP rules apply (length, charset) — adapters validate what they can and surface PSP rejections.
OptionalwebhookPer-session webhook registration (Paysafe requires this at session/payment init). Adapters that register webhooks globally (Stripe) ignore it.
For AVS / 3DS data quality — optional, never card data.