# Tournaments Implementation Guide

## Briefing

By the end of this implementation guide, users on your platform will be able to find and join real money or free to play tournaments, increasing engagement in your ecosystem. You'll also learn how to submit scores for tournament participants in a robust, seamless fashion.&#x20;

There are many ways to integrate the Tournament Lucra Product, this guide focuses on leaning on the client side Lucra SDK to standup the UI within your application. If you're looking for other approaches, such as headless integrations, see [SDKs & APIs](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis) and [Headless tournaments](https://docs.lucrasports.com/lucra-sdk/tournaments/headless-tournaments)

### Prerequisites

* Your Lucra account must have Tournaments enabled and predefined Games to associate with created Tournaments
* You must have created at least one Tournament and available to join. Read more about Tournament creation [here](https://docs.lucrasports.com/lucra-sdk/tournaments/lucra-owned-tournaments)

{% hint style="info" %}
Tournament creation can be done through the Lucra Console or ask your Lucra representative for assistance
{% endhint %}

* Obtain Lucra Keys for your application, two `apiKey` values, one for `sandbox` environment and another for `production` environment.

{% content-ref url="../readme/whats-included/lucra-api-keys" %}
[lucra-api-keys](https://docs.lucrasports.com/lucra-sdk/readme/whats-included/lucra-api-keys)
{% endcontent-ref %}

## Step by step guide

{% stepper %}
{% step %}

### Install & Initialize the SDK

Install a Lucra client SDK and confirm initialization is successful.

#### Install

{% tabs %}
{% tab title="iOS" %}
{% content-ref url="../sdks-and-apis/client-sdks/ios/1.0.0\_project\_setup" %}
[1.0.0\_project\_setup](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/ios/1.0.0_project_setup)
{% endcontent-ref %}
{% endtab %}

{% tab title="Javascript" %}
{% content-ref url="../sdks-and-apis/client-sdks/javascript-web/1.0\_project\_setup" %}
[1.0\_project\_setup](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/javascript-web/1.0_project_setup)
{% endcontent-ref %}
{% endtab %}

{% tab title="Android" %}
{% content-ref url="../sdks-and-apis/client-sdks/android/1.0.0\_project\_setup" %}
[1.0.0\_project\_setup](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/android/1.0.0_project_setup)
{% endcontent-ref %}
{% endtab %}

{% tab title="React Native" %}
{% content-ref url="../sdks-and-apis/client-sdks/react-native/1.0.0\_project\_setup" %}
[1.0.0\_project\_setup](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/react-native/1.0.0_project_setup)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

#### Initialize the SDK

With the provided `apiKey` you can now initialize the LucraClient SDK on your platform

{% tabs %}
{% tab title="iOS" %}
{% content-ref url="../sdks-and-apis/client-sdks/ios/1.2.0\_initialize\_client" %}
[1.2.0\_initialize\_client](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/ios/1.2.0_initialize_client)
{% endcontent-ref %}
{% endtab %}

{% tab title="Javascript" %}
{% content-ref url="../sdks-and-apis/client-sdks/javascript-web/1.2\_initialize\_client" %}
[1.2\_initialize\_client](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/javascript-web/1.2_initialize_client)
{% endcontent-ref %}
{% endtab %}

{% tab title="Android" %}
{% content-ref url="../sdks-and-apis/client-sdks/android/1.2.0\_initialize\_client" %}
[1.2.0\_initialize\_client](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/android/1.2.0_initialize_client)
{% endcontent-ref %}
{% endtab %}

{% tab title="React Native" %}
{% content-ref url="../sdks-and-apis/client-sdks/react-native/1.2.0\_initialize\_client" %}
[1.2.0\_initialize\_client](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/react-native/1.2.0_initialize_client)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

{% endstep %}

{% step %}

### Apply brand theming

Provide brand colors and images to make the Lucra experience as familiar as your own

{% content-ref url="../readme/whats-included/branding-and-theming" %}
[branding-and-theming](https://docs.lucrasports.com/lucra-sdk/readme/whats-included/branding-and-theming)
{% endcontent-ref %}
{% endstep %}

{% step %}

### Configure your user

{% hint style="info" %}
This is an optional but **highly** **recommended** step.&#x20;
{% endhint %}

When a user logs into Lucra for the first time, they are given a randomly generated name and will have no other identifying properties beyond the phone number they used to two-factor-authenticate into the experience.&#x20;

{% hint style="success" %}
If a user has previously logged into Lucra within a *different Lucra client* product using the same phone number, their information will be merged and can be automatically verified if their account is still in good standing.
{% endhint %}

Upon attempting to join a tournament, or deposit money, they will be prompted for identifying information such as email, age and location so that we can verify they are compliant to proceed.

Supplying the information you have for the current user ahead of their journey through the Lucra SDK can streamline the experience for a number of reasons:<br>

* Pre fill user information such as name, city, state, zip, address and email
* Pre fill and **lock** the phone number used to login
* Predefine their username so that the Lucra account is familiar to your platform's account
* Supply arbitrary [metadata](#how-user-metadata-can-streamline-your-tournaments-implementation) to Lucra users (more on this below!)

{% hint style="warning" %}
To avoid compliance issues, we recommend sending identifying information that is accurate and up to date.
{% endhint %}

Find your client configure user Lucra SDK docs here

{% tabs %}
{% tab title="iOS" %}
{% content-ref url="../sdks-and-apis/client-sdks/ios/1.2.9\_headless\_interactions" %}
[1.2.9\_headless\_interactions](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/ios/1.2.9_headless_interactions)
{% endcontent-ref %}
{% endtab %}

{% tab title="Javascript" %}
{% content-ref url="../sdks-and-apis/client-sdks/javascript-web/1.8\_updating\_users" %}
[1.8\_updating\_users](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/javascript-web/1.8_updating_users)
{% endcontent-ref %}
{% endtab %}

{% tab title="Android" %}
{% content-ref url="../sdks-and-apis/client-sdks/android/1.2.9\_headless\_interactions" %}
[1.2.9\_headless\_interactions](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/android/1.2.9_headless_interactions)
{% endcontent-ref %}
{% endtab %}

{% tab title="React Native" %}
{% content-ref url="../sdks-and-apis/client-sdks/react-native/1.2.9\_headless\_interactions" %}
[1.2.9\_headless\_interactions](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/react-native/1.2.9_headless_interactions)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

#### How user metadata can streamline your Tournaments implementation

At the point where you're ready to [send scores for participants](#send-real-time-scores-for-participants) in specific Tournaments, you'll need a way to identify the participant and the tournament. While you can do this by providing Lucra User IDs and Lucra Tournament IDs, this requires non-trivial binding of your user's with their respective Lucra User IDs, as well as the Tournaments themselves.

This is where user **metadata** comes in. You can simply provide your user's internal ID to their Lucra User's metadata, and send scores with this metadata for our systems to quickly identify who you're referring to. This allows you to proceed without any additional overhead of keeping track of Lucra Users and Lucra Tournaments.

Read more about user linking and score ingestion here

{% content-ref url="user-linking-and-score-ingestion" %}
[user-linking-and-score-ingestion](https://docs.lucrasports.com/lucra-sdk/tournaments/user-linking-and-score-ingestion)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Setup Convert to Credit support

{% hint style="info" %}
This is an optional step, the Lucra SDK will not show Convert to Credit options if not provided
{% endhint %}

Convert to credit functionality allows users to convert their real money earnings into a defined currency of your choosing. An example would be converting $10 for 120 tokens within your ecosystem.&#x20;

Learn more here:

{% content-ref url="../convert-to-credit" %}
[convert-to-credit](https://docs.lucrasports.com/lucra-sdk/convert-to-credit)
{% endcontent-ref %}

Find your platform technical convert to credit docs here:

{% tabs %}
{% tab title="iOS" %}
{% content-ref url="../sdks-and-apis/client-sdks/ios/1.2.5\_convert\_to\_credit" %}
[1.2.5\_convert\_to\_credit](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/ios/1.2.5_convert_to_credit)
{% endcontent-ref %}
{% endtab %}

{% tab title="Javascript" %}
{% content-ref url="../sdks-and-apis/client-sdks/javascript-web/1.7\_convert\_to\_credit" %}
[1.7\_convert\_to\_credit](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/javascript-web/1.7_convert_to_credit)
{% endcontent-ref %}
{% endtab %}

{% tab title="Android" %}
{% content-ref url="../sdks-and-apis/client-sdks/android/1.2.5\_convert\_to\_credit" %}
[1.2.5\_convert\_to\_credit](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/android/1.2.5_convert_to_credit)
{% endcontent-ref %}
{% endtab %}

{% tab title="React Native" %}
{% content-ref url="../sdks-and-apis/client-sdks/react-native/1.2.5\_convert\_to\_credit" %}
[1.2.5\_convert\_to\_credit](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/react-native/1.2.5_convert_to_credit)
{% endcontent-ref %}
{% endtab %}

{% tab title="Server to Server" %}
{% content-ref url="../sdks-and-apis/api-reference/6.0\_convert\_to\_credit\_webhooks" %}
[6.0\_convert\_to\_credit\_webhooks](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/api-reference/6.0_convert_to_credit_webhooks)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Successful [server to server integration](https://docs.lucrasports.com/lucra-sdk/games-you-play-gyp/gyp-sdks) is required for a successful convert to credit implementation
{% endhint %}
{% endstep %}

{% step %}

### Enable Apple Pay, Paypal, Venmo for payments

{% hint style="info" %}
This is an optional step, a default payment processor comes out of the box.
{% endhint %}

{% hint style="info" %}
If Apple Pay enablement is desired for iOS, ReactNative and Javascript, please reach out to Lucra for further assistance
{% endhint %}

Read more here

{% content-ref url="../readme/whats-included/payments" %}
[payments](https://docs.lucrasports.com/lucra-sdk/readme/whats-included/payments)
{% endcontent-ref %}

Find your platform technical payment docs here

{% tabs %}
{% tab title="iOS" %}
{% content-ref url="../sdks-and-apis/client-sdks/ios/1.2.4\_payments" %}
[1.2.4\_payments](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/ios/1.2.4_payments)
{% endcontent-ref %}
{% endtab %}

{% tab title="Javascript" %}
{% hint style="info" %}
Web based Apple Pay requires assistance from the Lucra team, please reach out for more information
{% endhint %}
{% endtab %}

{% tab title="Android" %}
{% content-ref url="../sdks-and-apis/client-sdks/android/1.2.4\_payments" %}
[1.2.4\_payments](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/android/1.2.4_payments)
{% endcontent-ref %}
{% endtab %}

{% tab title="React Native" %}
{% content-ref url="../sdks-and-apis/client-sdks/react-native/1.2.4\_payments" %}
[1.2.4\_payments](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/react-native/1.2.4_payments)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

{% endstep %}

{% step %}

### Guide users to join their first tournament

At this point, the Lucra SDK is ready get your users involved in your available tournaments. Lucra will handle user authentication, user identification, and any compliance forms required for joining your tournaments.

This requires intentional action by your platform to launch the Lucra Tournaments experience within your platform

Find your platform Tournament flows docs here

{% tabs %}
{% tab title="iOS" %}
{% content-ref url="../sdks-and-apis/client-sdks/ios/3.1\_tournaments\_flows" %}
[3.1\_tournaments\_flows](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/ios/3.1_tournaments_flows)
{% endcontent-ref %}
{% endtab %}

{% tab title="Javascript" %}
{% content-ref url="../sdks-and-apis/client-sdks/javascript-web/1.3\_lucraflows" %}
[1.3\_lucraflows](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/javascript-web/1.3_lucraflows)
{% endcontent-ref %}
{% endtab %}

{% tab title="Android" %}
{% content-ref url="../sdks-and-apis/client-sdks/android/3.1\_tournaments\_flows" %}
[3.1\_tournaments\_flows](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/android/3.1_tournaments_flows)
{% endcontent-ref %}
{% endtab %}

{% tab title="React Native" %}
{% content-ref url="../sdks-and-apis/client-sdks/react-native/3.1\_tournaments\_flows" %}
[3.1\_tournaments\_flows](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/react-native/3.1_tournaments_flows)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
If you don't see any available tournaments, see the [Prerequisites section](#prerequisites)
{% endhint %}

{% endstep %}

{% step %}

### Listen for key events

Depending on your integration, you might need to know when users take certain actions. This can be for many reasons, including, but not limited to, the following:

* Know when a user joins a tournament

The Lucra SDKs, APIs and Webhooks allow you to be in tune with much of the user's and matchup's lifecycle.&#x20;

#### Client SDKs&#x20;

Setup client side event listeners with the technical docs here

{% tabs %}
{% tab title="iOS" %}
{% content-ref url="../sdks-and-apis/client-sdks/ios/3.2\_tournaments\_events" %}
[3.2\_tournaments\_events](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/ios/3.2_tournaments_events)
{% endcontent-ref %}
{% endtab %}

{% tab title="Javascript" %}
{% content-ref url="../sdks-and-apis/client-sdks/javascript-web/1.6\_lucra\_event\_listener" %}
[1.6\_lucra\_event\_listener](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/javascript-web/1.6_lucra_event_listener)
{% endcontent-ref %}
{% endtab %}

{% tab title="Android" %}
{% content-ref url="../sdks-and-apis/client-sdks/android/3.2\_tournaments\_events" %}
[3.2\_tournaments\_events](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/android/3.2_tournaments_events)
{% endcontent-ref %}
{% endtab %}

{% tab title="React Native" %}
{% content-ref url="../sdks-and-apis/client-sdks/react-native/3.2\_tournaments\_events" %}
[3.2\_tournaments\_events](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/react-native/3.2_tournaments_events)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

#### Server Webhooks

Setup your backend to receive webhooks here

{% content-ref url="../sdks-and-apis/api-reference/3.1\_tournaments\_webhooks" %}
[3.1\_tournaments\_webhooks](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/api-reference/3.1_tournaments_webhooks)
{% endcontent-ref %}

{% endstep %}

{% step %}

### Send scores for Tournament participants

At this point, you have users that have joined your tournament(s). The Lucra Tournaments product will handle paying out winners upon the completion of this tournament, but first, Lucra needs to know the scores of the participants to correctly rank them.

There are multiple way to send scores for tournaments, regardless of the approach, there are required details you'll need to provide Lucra before sending scores.

1. User participant identifying information
2. Tournament identifying information

We'll discuss how to obtain both of these requirements in the approaches below

***

#### Sending scores with the Metadata API approach (recommended)

Recall the [configure user metadata](#how-user-metadata-can-streamline-your-tournaments-implementation) step above? We have APIs to consume scores given user and tournament identifying information, if you only know the metadata you've identified your users with and the game type of the score they just registered, that's all you need to send to apply it to your user's score in the tournament!&#x20;

Lets walk through the required details in this scenario

1. User participant identifying information
   1. The user's metadata, the user's phone number
2. Tournament identifying information
   1. The tournament's metadata or tournament's gameId&#x20;

{% hint style="info" %}
Lucra User ID and Lucra Tournament IDs can also be supplied as identifiers, albeit, requiring the overhead of binding on your platform ahead of time.
{% endhint %}

{% hint style="info" %}
A common approach is to send scores for your users as soon as you know they scored any type of score for any game you have registered with Lucra. Our APIs are designed to gracefully identify if your users are involved in any open tournaments expecting scores, removing the need for you track what tournaments users are participants of.
{% endhint %}

Read more about user linking and score ingestion below

{% content-ref url="user-linking-and-score-ingestion" %}
[user-linking-and-score-ingestion](https://docs.lucrasports.com/lucra-sdk/tournaments/user-linking-and-score-ingestion)
{% endcontent-ref %}

Read more about tournament metadata creation via API

{% content-ref url="../sdks-and-apis/api-reference/3.0\_tournaments\_rest\_api" %}
[3.0\_tournaments\_rest\_api](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/api-reference/3.0_tournaments_rest_api)
{% endcontent-ref %}

***

#### Sending scores via the Console (Beta)

You can manually set scores for participants via the Lucra Console. Ideal for smaller controlled Tournaments.

Read more here

{% content-ref url="lucra-owned-tournaments" %}
[lucra-owned-tournaments](https://docs.lucrasports.com/lucra-sdk/tournaments/lucra-owned-tournaments)
{% endcontent-ref %}

***

#### Sending scores with Lucra IDs via API

If you have built the binding abstraction to link your users with their respective Lucra IDs, as well as your active Tournaments with Lucra matchup IDs, we have other APIs readily available for you to hit with those IDs.

Read more here

{% content-ref url="../sdks-and-apis/api-reference/3.0\_tournaments\_rest\_api" %}
[3.0\_tournaments\_rest\_api](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/api-reference/3.0_tournaments_rest_api)
{% endcontent-ref %}
{% endstep %}

{% step %}

### Complete your Tournament

Scores have been submitted, the leaderboard is packed, and the gameplay has completed, you now need to complete the tournament so your winners can get paid.

{% hint style="warning" %}
Lucra Tournaments will not automatically complete and send payouts, regardless of the end date specified with the Tournament.
{% endhint %}

This can be done in two ways, with the Lucra Console or via API.

Read more about the Console approach here

{% content-ref url="lucra-owned-tournaments" %}
[lucra-owned-tournaments](https://docs.lucrasports.com/lucra-sdk/tournaments/lucra-owned-tournaments)
{% endcontent-ref %}

Read more about the API approach here

{% content-ref url="../sdks-and-apis/api-reference/3.0\_tournaments\_rest\_api" %}
[3.0\_tournaments\_rest\_api](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/api-reference/3.0_tournaments_rest_api)
{% endcontent-ref %}

{% hint style="info" %}
While real-time scores are ideal for the Lucra leaderboard experience, they are only required to be provided at the time of completing a Tournament
{% endhint %}

{% endstep %}

{% step %}

### Test end-to-end

At this point, testing the full integration will likely be on your to-do list. This is where our `sandbox` environment comes in. This environment allows you to simulate a production environment with test users and money transactions that don't impact anyone's bank account.

Read more here

{% content-ref url="../readme/whats-included/implementation-support/testing" %}
[testing](https://docs.lucrasports.com/lucra-sdk/readme/whats-included/implementation-support/testing)
{% endcontent-ref %}

{% hint style="warning" %}
When testing your Lucra SDK and API integration, be sure to use your provided `sandbox` keys for both client side SDKs and API endpoints.&#x20;
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Tournament Platform Technical Documentation

{% tabs %}
{% tab title="iOS" %}
{% content-ref url="../sdks-and-apis/client-sdks/ios/3.0\_tournaments" %}
[3.0\_tournaments](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/ios/3.0_tournaments)
{% endcontent-ref %}
{% endtab %}

{% tab title="Javascript" %}
{% content-ref url="../sdks-and-apis/client-sdks/javascript-web/0.0\_readme" %}
[0.0\_readme](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/javascript-web/0.0_readme)
{% endcontent-ref %}
{% endtab %}

{% tab title="Android" %}
{% content-ref url="../sdks-and-apis/client-sdks/android/3.0.0\_tournaments" %}
[3.0.0\_tournaments](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/android/3.0.0_tournaments)
{% endcontent-ref %}
{% endtab %}

{% tab title="React Native" %}
{% content-ref url="../sdks-and-apis/client-sdks/react-native/3.0.0\_tournaments" %}
[3.0.0\_tournaments](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/react-native/3.0.0_tournaments)
{% endcontent-ref %}
{% endtab %}

{% tab title="APIs & Webhooks" %}
{% content-ref url="../sdks-and-apis/api-reference/3.0\_tournaments\_rest\_api" %}
[3.0\_tournaments\_rest\_api](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/api-reference/3.0_tournaments_rest_api)
{% endcontent-ref %}

{% content-ref url="../sdks-and-apis/api-reference/3.1\_tournaments\_webhooks" %}
[3.1\_tournaments\_webhooks](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/api-reference/3.1_tournaments_webhooks)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

***

## Headless Tournament Support

This guide focused on the idea that users will find and join tournaments through the Lucra SDK experience, where Lucra handles the various layers of guiding users through authentication, age & location compliance, as well as adding funds when necessary.

Depending on your platform, you may already have concepts of tournaments and would rather have your users join Lucra tournaments through a "headless" fashion.

We support this idea through our headless functionality offered within our Mobile client side SDKs

{% hint style="info" %}
While joining tournaments can be done headlessly, you will still be required to guide your users through the Lucra SDK experience to do the following required actions

* Authenticate
* Add / Withdrawal funds
* Submit identification form for age and location compliance
* Collect demographic information for free to join tournaments
  {% endhint %}

Read more about our mobile client side headless Tournament SDKs

{% tabs %}
{% tab title="iOS" %}
{% content-ref url="../sdks-and-apis/client-sdks/ios/3.3\_tournaments\_headless" %}
[3.3\_tournaments\_headless](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/ios/3.3_tournaments_headless)
{% endcontent-ref %}
{% endtab %}

{% tab title="Android" %}
{% content-ref url="../sdks-and-apis/client-sdks/android/3.3\_tournaments\_headless" %}
[3.3\_tournaments\_headless](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/android/3.3_tournaments_headless)
{% endcontent-ref %}
{% endtab %}

{% tab title="React Native" %}
{% content-ref url="../sdks-and-apis/client-sdks/react-native/3.3\_tournaments\_headless" %}
[3.3\_tournaments\_headless](https://docs.lucrasports.com/lucra-sdk/sdks-and-apis/client-sdks/react-native/3.3_tournaments_headless)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Headless Tournament functionality is only supported on our mobile SDKs
{% endhint %}

***

## Common troubleshooting

### The Lucra SDK says I'm unauthorized after launching a Flow

Be sure to double check your provided `apiKey`(s) and the environment you're pointing to. Each platform (web, mobile, server) have a respective key *per environment*

### Lucra says my account is suspended

Our compliance ruleset will suspend accounts for a number of different reasons due to suspicious activity. If you don't think your account should be suspended, please reach out to Lucra for assistance.

### I can't see the Tournament I created

A tournament may not populate within the Lucra SDK experience for a number of reasons

* It's end date is in the past
* It's location is in a different location than what the user has selected

Double check your tournaments properties to make sure it's upcoming or live, as well as the location it's tied to

### The score I sent isn't applying to the tournament

Scores abide to a strict rule set, the participant must be *expecting* a score, meaning they have an open attempt, and the tournament must not be completed.&#x20;

{% hint style="info" %}
Not finding the answers you're looking for? Reach out to your Lucra representative for further assistance
{% endhint %}
