---
title: "Configuration"
slug: "configuration-1"
updated: 2026-04-27T22:22:50Z
published: 2026-04-27T22:22:50Z
canonical: "ignite.ticketmaster.com/configuration-1"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://ignite.ticketmaster.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

Configure **TMAuthentication** first, then **TMTickets**.

> [!NOTE]
> Important Note
> 
> Many Apps use a single API Key because the App only supports a single Team, Artist, or Venue.
> 
> However, you may want your App to support multiple API keys (for example a Venue App with multiple Home Teams, or an App that covers many Team in the league).
> 
> If so, you must enable ephemeral browsing for login; see [Switching Teams without Logging Out](/v1/docs/authentication-1#multiteam-authentication)

Example code:

**Android**

Also make sure that you observe `TicketsSDKSingleton.sessionExpiredDelegate` so that you can handle `Session Expired` errors (usually by logging out the user).

```kotlin
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Handle session expiration
        lifecycleScope.launch {
            TicketsSDKSingleton.sessionExpiredDelegate.collect {
                TicketsSDKSingleton.logout { onLogout() }
            }
        }
    }

    // Do this wherever you need to start Auth and Tickets SDK
    suspend fun setupAuthAndTicketsSDK() {
        val authentication = TMAuthentication.Builder(
            apiKey = BuildConfig.CONSUMER_KEY,
            clientName = BuildConfig.TEAM_NAME // Team name to be displayed
        )
            .colors(createTMAuthenticationColors(brandingColor))
            .environment(TMXDeploymentEnvironment.Production) // Environment that the SDK will use. Default is Production
            .region(TMXDeploymentRegion.US) // Region that the SDK will use. Default is US
            .build(this)
            .getOrThrow()

        TicketsSDKClient.Builder(
            colors = createTicketsColors(brandingColor) // Optional value to define the colors for the Tickets page
        )
            .authenticationSDKClient(authentication) // Authentication object
            .build(this) // Function that generates a TicketsSDKClient object
            .apply {
                // After creating the TicketsSDKClient object, add it into the TicketsSDKSingleton
                TicketsSDKSingleton.setTicketsSdkClient(this)
            }
    }

    private fun createTMAuthenticationColors(color: Int): TMAuthentication.ColorTheme =
        TMAuthentication.ColorTheme(
            // The Color class is part of the Compose library
            lightColors = lightColorScheme(
                primary = Color(color),
                secondary = Color(color),
                onPrimary = Color.White // Color used for text and icons displayed on top of the primary color.
            ),
            darkColors = darkColorScheme(
                primary = Color(color),
                secondary = Color(color),
                onPrimary = Color.White // Color used for text and icons displayed on top of the primary color.
            )
        )

    private fun createTicketsColors(color: Int): TicketsColorScheme =
        TicketsColorScheme(
            primary = TicketsColor(color.toLong()),
            eventsTopBar = TicketsColor(color.toLong())
        )
}
```

**iOS**

```swift
import Foundation
import TicketmasterAuthentication
import TicketmasterTickets

class Example: NSObject {

    func configure() {
        // build a combination of Settings and Branding
        let tmxServiceSettings = TMAuthentication.TMXSettings(apiKey: "12345",
                                                              region: .US)
        
        let branding = TMAuthentication.Branding(displayName: "My Team",
                                                 backgroundColor: .red,
                                                 theme: .light)
        
        let brandedServiceSettings = TMAuthentication.BrandedServiceSettings(tmxSettings: tmxServiceSettings,
                                                                             branding: branding)
        
        // configure TMAuthentication with Settings and Branding
        print("Authentication SDK Configuring...")
        TMAuthentication.shared.configure(brandedServiceSettings: brandedServiceSettings) { backendsConfigured in
            // your API key may contain configurations for multiple backend services
            // the details are not needed for most common use-cases
            print(" - Authentication SDK Configured: \(backendsConfigured.count)")
            
            // TMTickets inherits it's configuration and branding from TMAuthentication
            print("Tickets SDK Configuring...")
            TMTickets.shared.configure {
                // Tickets is configured, now we are ready to present TMTicketsViewController or TMTicketsView
                print(" - Tickets SDK Configured")
                
            } failure: { error in
                // something went wrong, probably TMAuthentication was not configured correctly
                print(" - Tickets SDK Configuration Error: \(error.localizedDescription)")
            }
            
        } failure: { error in
            // something went wrong, probably the wrong apiKey+region combination
            print(" - Authentication SDK Configuration Error: \(error.localizedDescription)")
        }
    }
}
```

## **Android Color Customization**

> [!NOTE]
> **Android Only:** The color customization API described in this section is Android-specific. For iOS color and branding configuration, see the branding options available on `TMTickets.shared.configure()`.

The Tickets SDK provides two mechanisms for customizing colors on Android: a primary color set during initialization, and a `TMTicketsBrandingColor` API for fine-grained control over three distinct color roles.

### **Setting the Primary Color**

When you initialize `TicketsSDKClient`, the `color()` function sets the main color for the SDK.

### **Using TMTicketsBrandingColor**

`TMTicketsBrandingColor` allows you to customize three color roles independently: branding, ticket, and header.

Call these methods after `build()` on `TicketsSDKClient`, but before calling `TicketsSDKSingleton.getEventsFragment`.

For a complete working example, see the **Android-TicketsDemoApp**, specifically the **TicketsSdkHostActivity** class.

### **Branding Color**

```kotlin
TMTicketsBrandingColor.setBrandingColor(context, colorInt)
```

Sets the main color of the SDK. This color is applied to material button backgrounds and tab backgrounds.

![](https://cdn.document360.io/995f0bfa-740b-4247-b341-fde1e5326a96/Images/Documentation/image(23).png) ![](https://cdn.document360.io/995f0bfa-740b-4247-b341-fde1e5326a96/Images/Documentation/image(24).png)

### **Ticket Color**

```kotlin
TMTicketsBrandingColor.setTicketColor(context, colorInt)
```

Sets the color of the headers in all ticket cards.

![](https://cdn.document360.io/995f0bfa-740b-4247-b341-fde1e5326a96/Images/Documentation/IMG_0304.png)

### **Header Color**

```kotlin
TMTicketsBrandingColor.setHeaderColor(context, colorInt)
```

Sets the color of the header/app bar in the My Tickets screen.

### **Example: Applying All Three Colors**

```kotlin
import com.ticketmaster.tickets.ticketssdk.TicketsSDKClient
import com.ticketmaster.tickets.ticketssdk.TicketsSDKSingleton
import com.ticketmaster.tickets.ticketssdk.TMTicketsBrandingColor
import androidx.core.content.ContextCompat

// Build the SDK client first
val ticketsClient = TicketsSDKClient.Builder(context)
    .apiKey("YOUR_API_KEY")
    // ... other configuration ...
    .build()

// Apply color customization after build(), before getEventsFragment()
TMTicketsBrandingColor.setBrandingColor(context, ContextCompat.getColor(context, R.color.your_brand_color))
TMTicketsBrandingColor.setTicketColor(context, ContextCompat.getColor(context, R.color.your_ticket_color))
TMTicketsBrandingColor.setHeaderColor(context, ContextCompat.getColor(context, R.color.your_header_color))

// Now retrieve the fragment
val eventsFragment = TicketsSDKSingleton.getEventsFragment()
```

> [!NOTE]
> **Note:** Color values must be resolved color integers (e.g., from `ContextCompat.getColor()`), not resource IDs.

---

Next: [Authentication](/v1/docs/authentication-state)
