> For the complete documentation index, see [llms.txt](https://docs.tebex.io/developers/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tebex.io/developers/headless-api/creating-a-basket.md).

# Creating a Basket

Depending on the type of Tebex store you are integrating, additional parameters may be necessary before the basket can be successfully created.

## Authorizing Baskets

For most stores, the user must authorize their account before checkout is completed. This is done via the **/auth** endpoint where we will return the authentication options available for your store.&#x20;

Provide a `returnUrl` , and after successful authentication the user will be directed back to your site.

{% openapi src="/files/X1niLsQ1ey5yLrTYmMs5" path="/accounts/{token}/baskets/{basketIdent}/auth?returnUrl={returnUrl}" method="get" %}
[headless-api.yaml](https://924803319-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaRz9HUAxrYuZsSDWhYnu%2Fuploads%2F7Z5I0T5QbbgoGzyObgml%2Fheadless-api.yaml?alt=media\&token=62e71089-ed13-428f-828e-d0f3eeee20b9)
{% endopenapi %}

## Minecraft and Overwolf Stores

You must provide the `username` parameter as part of the basket creation request so that the basket is attributed to the correct user:

{% hint style="warning" %}
If you are creating a basket on your **backend server**, you will need to provide us the `ip_address` of the customer.

Currently we are unable to support IPv6 addresses being provided in the `ip_address` property. While we work on enabling IPv6 support, please provide an IPv4 address for the customer.<br>

If you are creating a basket from the user's **browser**, we will automatically determine the IP from the requesting device.
{% endhint %}

```javascript
{
  "complete_url": "https://example.tebex.io/thank-you",
  "cancel_url": "https://tebex.io/",
  "custom": {
    "foo": "bar"
  },
  "complete_auto_redirect": true,
  "username": "TebexDev",
}
```

The `Basket` which is returned will include the `username_id` which may be required for certain endpoints.&#x20;

You should save the **username\_id** as part of the user's session for use later.

## Universal Stores

No `username` is required, but depending on your package **Deliverables** you may need to provide `variable_data` so that the package is attributed to the correct user. See [**Adding Packages**](/developers/headless-api/adding-packages.md)**.**

{% openapi src="/files/X1niLsQ1ey5yLrTYmMs5" path="/accounts/{token}/baskets" method="post" %}
[headless-api.yaml](https://924803319-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaRz9HUAxrYuZsSDWhYnu%2Fuploads%2F7Z5I0T5QbbgoGzyObgml%2Fheadless-api.yaml?alt=media\&token=62e71089-ed13-428f-828e-d0f3eeee20b9)
{% endopenapi %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.tebex.io/developers/headless-api/creating-a-basket.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
