What the named carriers can produce a label for, **for the calling organization**. Integration capability, not merchant configuration β a carrier reports a RETURN_* type only once its request builder emits a return request. Callers quoting a return should join this against their rates by carrier name and drop the rest; labelCreate refuses an unsupported combination anyway, so filtering here is about not offering a dead end. Organization-scoped, so **do not cache globally** β a carrier's capability can depend on which integration that organization's account uses.
Carrier.name values from the federated graph. Matched with the same normalization label dispatch uses, so this cannot disagree with what labelCreate does. Unrecognised names come back empty rather than dropped, so callers can tell "unsupported" from "not asked about".
Query.
carrierLabelCapabilities
What the named carriers can produce a label for, **for the calling organization**. Integration capability, not merchant configuration β a carrier reports a
RETURN_*type only once its request builder emits a return request. Callers quoting a return should join this against their rates by carrier name and drop the rest;labelCreaterefuses an unsupported combination anyway, so filtering here is about not offering a dead end. Organization-scoped, so **do not cache globally** β a carrier's capability can depend on which integration that organization's account uses.Arguments
carrierNames
[String!]!
Required
Carrier.namevalues from the federated graph. Matched with the same normalization label dispatch uses, so this cannot disagree with whatlabelCreatedoes. Unrecognised names come back empty rather than dropped, so callers can tell "unsupported" from "not asked about".Returns:
[CarrierLabelCapability!]!
type Query { carrierLabelCapabilities(carrierNames: [String!]!): [CarrierLabelCapability!]! }