PaymentInstrument
A single concrete instrument exposed by a gateway provider (e.g. BLIK code, mBank Pay-By-Link, Apple Pay) within a broader PaymentMethod. Pass code as preferredInstrument in cartSelectPaymentMethod to deep-link the gateway straight to this screen.
type PaymentInstrument {
brandImage: Image
code: String!
displayHint: PaymentInstrumentDisplayHint!
displayName: String!
enabled: Boolean!
fee: PaymentMethodFee
provider: PaymentProvider!
type: PaymentInstrumentType!
}
Fields
PaymentInstrument.brandImage ● Image object
Optional brand image (bank logo, wallet icon). Use as tile artwork via brandImage { url(transform: { maxWidth: 64 }) altText }. Null when the gateway does not expose one or the instrument has no brand visual (BLIK code).
PaymentInstrument.code ● String! non-null scalar
Gateway-specific instrument identifier (PayU: "blik"/"mb"/"c", P24: numeric ID string "154"). Pass as preferredInstrument in cartSelectPaymentMethod, ALWAYS together with preferredProvider — codes are scoped to their gateway and are NOT unique across providers within one method (dedupe and select by the (provider, code) pair). Stable per provider — the gateway does not renumber.
PaymentInstrument.displayHint ● PaymentInstrumentDisplayHint! non-null enum
UX rendering hint — how the storefront should render this instrument (prominent button vs branded tile vs dropdown vs radio). Backend-agnostic mapping to visual treatment.
PaymentInstrument.displayName ● String! non-null scalar
Buyer-facing display name (e.g. "BLIK", "mBank", "ING Bank Śląski", "Apple Pay").
PaymentInstrument.enabled ● Boolean! non-null scalar
True when the instrument is currently enabled in the gateway live capabilities. The storefront can gray-out the tile when false instead of hiding it (observability for the merchant).
PaymentInstrument.fee ● PaymentMethodFee object
Surcharge for picking this instrument, ready to render on its tile. Null when no fee applies, when the fee cannot be determined, or on the shop-level query (Query.availablePaymentMethods) — only Cart.availablePaymentMethods carries amounts.
PaymentInstrument.provider ● PaymentProvider! non-null enum
Provider that handles this instrument (UPPERCASE enum). Required for cross-provider dedupe (e.g. a BLIK code offered by both PayU and P24 — distinct instruments despite the same method type).
PaymentInstrument.type ● PaymentInstrumentType! non-null enum
Semantic type classifying the instrument within the method (BLIK code vs bank vs wallet vs card brand). Storefront-facing dispatch for per-instrument UI components.
Member Of
PaymentMethod object