PayFanout API reference
    Preparing search index...

    Interface PaymentMethodCapability

    interface PaymentMethodCapability {
        countries?: string[];
        currencies?: string[];
        flow: "embedded" | "redirect" | "popup" | "voucher_code" | "qr_code";
        supported: boolean;
        type:
            | "card"
            | "apple_pay"
            | "google_pay"
            | "paypal"
            | "ideal"
            | "sepa_debit"
            | "ach"
            | "bacs_debit"
            | "pad"
            | "interac_etransfer"
            | "skrill"
            | "neteller"
            | "paysafecard"
            | "paysafecash"
            | "bank_redirect_generic"
            | "voucher_generic"
            | "other";
    }
    Index
    countries?: string[]

    Hard per-method CUSTOMER-country constraint (ISO 3166-1 alpha-2, uppercase) — a rail only customers in specific countries can pay with (Bacs needs a UK bank account, Interac a Canadian one). ABSENT or empty means unrestricted. Screening consults it only when the session states customerCountry; with no country stated the rail passes — a best-effort pre-filter, never an eligibility guarantee, because the true constraint is the bank account the customer brings. Declare only what the provider documents as a country (or a short closed list); a zone rail (SEPA) stays undeclared — encoding the zone's membership would screen out valid payments the day it drifts.

    currencies?: string[]

    Hard per-method currency constraint (ISO 4217, uppercase) — a rail that settles in one currency only (SEPA in EUR, Bacs in GBP). ABSENT means unrestricted; the PSP-wide AdapterCapabilities.supportedCurrencies still applies on top. Declared rather than guarded privately so the router can pre-screen: a currency-ineligible rail must be skipped in favour of an eligible PSP, not attempted and rejected at the PSP.

    flow: "embedded" | "redirect" | "popup" | "voucher_code" | "qr_code"
    supported: boolean
    type:
        | "card"
        | "apple_pay"
        | "google_pay"
        | "paypal"
        | "ideal"
        | "sepa_debit"
        | "ach"
        | "bacs_debit"
        | "pad"
        | "interac_etransfer"
        | "skrill"
        | "neteller"
        | "paysafecard"
        | "paysafecash"
        | "bank_redirect_generic"
        | "voucher_generic"
        | "other"