---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../modules.md) / [clients](../index.md) / DualBackendConfig

# Interface: DualBackendConfig

Defined in: [packages/b2c-tooling-sdk/src/clients/dual-backend-factory.ts:33](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/clients/dual-backend-factory.ts#L33)

Common shape of every dual-backend factory's input.

SCAPI coordinates (shortCode/tenantId) and the scope-flexible auth strategy
are no longer threaded in separately — they are sourced from the instance
via [B2CInstance.scapiClientConfig](../../instance/classes/B2CInstance.md#scapiclientconfig). A backend is "SCAPI-capable" iff
that getter returns a value (shortCode + tenantId present, and a stateless
OAuth flow that can request the required scopes).

`preference` is optional: when omitted it falls back to the instance's own
[B2CInstance.apiBackend](../../instance/classes/B2CInstance.md#apibackend) (default `'auto'`), so callers that already
resolved the instance from config don't have to re-plumb the flag.

## Properties

### instance

> **instance**: [`B2CInstance`](../../instance/classes/B2CInstance.md)

Defined in: [packages/b2c-tooling-sdk/src/clients/dual-backend-factory.ts:35](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/clients/dual-backend-factory.ts#L35)

***

### preference?

> `optional` **preference**: [`ApiBackendPreference`](../type-aliases/ApiBackendPreference.md)

Defined in: [packages/b2c-tooling-sdk/src/clients/dual-backend-factory.ts:34](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/clients/dual-backend-factory.ts#L34)
