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

# Roller

## Overview

> [card] [Pre-built tooling](#pre-built-tooling)

> [card] [Pre-built integrations](#pre-built-integrations)

> [card] [Access requirements](#access-requirements)

> [card] [Setup guide](#setup-guide)

> [card] [Useful links](#useful-links)

> [card] [API gotchas](#api-gotchas)

## Pre-built tooling

> [accordion] ✅ Authorization
>
> | Tools | Status |
> | - | - |
> | Pre-built authorization (OAuth) | ✅ |
> | Credentials auto-refresh | ✅ |
> | Pre-built authorization UI | ✅ |
> | Custom authorization UI | ✅ |
> | Expired credentials detection | ✅ |

> [accordion] ✅ Read & write data
>
> | Tools | Status |
> | - | - |
> | Pre-built integrations | 🚫 (time to contribute: \<48h) |
> | API unification | ✅ |
> | 2-way sync | ✅ |
> | Webhooks from Nango on data modifications | ✅ |
> | Real-time webhooks from 3rd-party API | 🚫 (time to contribute: \<48h) |
> | Proxy requests | ✅ |

> [accordion] ✅ Observability & data quality
>
> | Tools | Status |
> | - | - |
> | HTTP request logging | ✅ |
> | End-to-end type safety | ✅ |
> | Data runtime validation | ✅ |
> | OpenTelemetry export | ✅ |
> | Slack alerts on errors | ✅ |
> | Integration status API | ✅ |

> [accordion] ✅ Customization
>
> | Tools | Status |
> | - | - |
> | Create or customize use-cases | ✅ |
> | Pre-configured pagination | 🚫 (time to contribute: \<48h) |
> | Pre-configured rate-limit handling | 🚫 (time to contribute: \<48h) |
> | Per-customer configurations | ✅ |

*No pre-built syncs or tools available yet.*

> [!TIP]
>
> Not seeing the integration you need? [Build your own](https://nango.dev/docs/guides/functions/functions-guide.md) independently.

> [!TIP]
>
> Roller uses the **OAuth 2.0 Client Credentials** flow via **Nango Connect UI** (no end‑user login).

This page documents how to connect to **Roller** using **Nango Connect UI** with the **OAuth 2.0 Client Credentials** grant.

> **Why this page?** Roller is a machine‑to‑machine integration (no end‑user login). Following the Connect UI pattern keeps it consistent with other CC integrations.

## Setup guide

1. **Create API credentials in Roller**
   * Obtain a **Client ID** and **Client Secret** for your Roller account (these may be scoped per venue/account depending on your setup).

2. **Create a Connect Session on your backend**
   * Your server should create a short‑lived **Connect Session** and return its token to the frontend.
   * Use your preferred backend language; follow the standard Connect Session flow used by other CC integrations.

3. **Launch Connect UI in your frontend**
   * Instantiate the Nango Frontend SDK with the session token and open the UI. The user will select **Roller** and enter **Client ID / Client Secret**.

```js theme={null}
import Nango from '@nangohq/frontend';

// 1) Fetch a session token from your backend
const connectSessionToken = await fetch('/api/connect-session').then(r => r.text());

// 2) Open Connect UI
const nango = new Nango({ connectSessionToken });
await nango.openConnectUI({ sessionToken: connectSessionToken });
// The Connect UI handles collecting Client ID/Secret and creating the connection
```

4. **Use the connection in your backend**
   * Call Roller endpoints through your backend using Nango’s Proxy. Re‑use the connection you created in step 3.

***

## Useful links

* **Auth0 (Client Credentials) — example**: /integrations/all/auth0-cc
* **Frontend SDK (Connect UI API)**: /reference/sdks/frontend
* **Quickstart: Embed in your app (connect session token)**: /guides/primitives/auth
* **Authorize in your app (default UI)**: /guides/api-authorization/authorize-in-your-app-default-ui
* **Proxy requests** (server-side calls through Nango): /guides/proxy-requests

***

## API gotchas

* **Client Credentials (no end‑user login):** there is no consent screen; the UI only collects **Client ID/Secret**.
* **Credential scope:** if your Roller credentials are scoped (e.g., per venue), create separate connections per scope.
* **Timestamps:** many APIs return timestamps in **UTC**; format for your users’ locale/timezone in the client.

***

## Troubleshooting

* **401/403 when calling Roller:** double‑check the Client ID/Secret entered during Connect UI and that you’re using the intended connection ID.
* **Multiple accounts/instances:** create one connection per account/instance so credentials don’t conflict.

***

## Going further

* Use metadata on the connection (or your own mapping) to track which venue/tenant a given connection refers to.
* Add prefill values to Connect UI if you already know the Client ID (leaving only the secret for the user to paste).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.