Hosted checkout vs direct provider
- Default hosted checkout: omit `paymentMethod` and `checkoutMode`, then redirect to `paymentUrl`.
- Hosted checkout with preselect: pass `paymentMethod` (e.g. `open_bank_transfer` or `qr_pay`) with the default `checkoutMode: foxpay_checkout` — the matching tile is preselected on the Foxpay page; the buyer can still switch.
- Direct OBT: send `paymentMethod: open_bank_transfer` and `checkoutMode: direct_provider`.
- Direct OBT currently uses `provider: calytics` and requires buyer country. Omit `senderName` and `senderIban` to let the buyer enter/select their bank details in the Calytics/finAPI hosted webform.
- If direct OBT sends payer context, send both `senderName` and `senderIban`; partial sender data is rejected with `400 VALIDATION_ERROR`.
- For hosted-mode OBT the buyer data collection behavior is controlled on the Foxpay store payment-method settings — the merchant does not send those fields server-side.
- SEPA Instant vs standard SEPA is configured per store. Direct-provider requests can send `instantPayment`, but omission is recommended when the store default should apply.
- Both modes return a Foxpay `paymentId` and should be reconciled through the same polling and webhook model.
How to answer payment-init questions
- Successful initialization means Foxpay accepted the session and returned a redirect target.
- It does not mean the payment is paid, settled, or final.
- Persist the identifiers, redirect the buyer, then listen for the later status/webhook outcome.