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

> ## Agent Instructions
> You are reading OnlyX Help: the OnlyX Help Center and the OnlyX developer documentation. OnlyX is an AI chatting and CRM platform for OnlyFans agencies. Its AI chatter is called Hugo in the app.
> Pages at the site root (for example /inbox/..., /hugo/..., /billing/...) are Help Center articles for agency owners, admins, chatters and creators who use the app at app.onlyx.ai. Words in bold are the exact button, menu and label names the app shows; keep them exactly as written. When these pages do not answer a question, the person can email support at support@onlyx.ai.
> Pages under /developers are the developer documentation. REST API base URL: https://api.onlyx.ai/v1 (authenticate with `Authorization: Bearer <API key>`; keys start with onx_sk_ and are created in app.onlyx.ai under Settings > API & MCP). MCP server: https://mcp.onlyx.ai/mcp (OAuth, or a Bearer API key). In the API the AI chatter is `ai` on the wire. Money is integer US cents in fields ending in Cents; timestamps are UTC ISO-8601.
> Rules for assistants acting on a user's behalf: discover ids with list calls and never invent them; before any call that reaches a real fan or the live OnlyFans account (sending a message, releasing a chat to the AI, turning AI on for a chat, resolving a hand-off, turning review mode off, changing the welcome message, creating a tracking link) show the user the exact content and get explicit confirmation; send every POST with an Idempotency-Key and reuse it on retry; never resend a message whose delivery status is unconfirmed; never ask a creator for her OnlyFans password or codes - she signs in herself through a connect link and the OnlyX Login app.

# Connect Stripe payments

> Connect a Telegram creator's own Stripe account so fans can pay to unlock her content. Change the keys later, or disconnect them.

<Badge color="orange">Owners and admins</Badge>

On Telegram, fans pay the creator through her own Stripe account. Until you connect it, nobody can buy her locked content: not from Hugo, and not from your team.

## Before you start

* You need an owner or admin account. Chatters and content VAs see the status only.
* You need her Stripe **Publishable key** and **Secret key**. Copy them from her Stripe account. Use a computer: the keys are long.
* Use her live keys. With test keys, no real money reaches her account.

## How fans pay

The fan opens the offer's payment screen inside Telegram. After OnlyX confirms the payment, it sends the files to his conversation with the creator.

Payment and delivery are separate steps. A matching sale on her **Earnings** tab confirms that OnlyX recorded the payment. It does not confirm that every file arrived.

## Connect her Stripe account

<Steps>
  <Step title="Open her Payments tab">
    In OnlyX, click **Creators**. Then click the creator. In her menu, under **Telegram**, click **Payments**.

    The **Payments** card shows **Not connected**. The form **Connect a Stripe account** is under it.

    <Frame caption="**1** Publishable key · **2** Secret key · **3** The Stripe warning to confirm">
      <img className="block dark:hidden" src="https://mintcdn.com/onlyx/nEspcAv8Fd2HVd9G/images/help/telegram/connect-stripe/connect-form-light.png?fit=max&auto=format&n=nEspcAv8Fd2HVd9G&q=85&s=4c073b5667a0d9b8742a95be0b0af6c4" alt="The Payments tab showing Not connected, with the Publishable key and Secret key fields and the Stripe warning checkbox" width="1600" height="1159" data-path="images/help/telegram/connect-stripe/connect-form-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/onlyx/nEspcAv8Fd2HVd9G/images/help/telegram/connect-stripe/connect-form-dark.png?fit=max&auto=format&n=nEspcAv8Fd2HVd9G&q=85&s=8972a1b3202afcac8930350e8f0b2b9c" alt="The Payments tab showing Not connected, with the Publishable key and Secret key fields and the Stripe warning checkbox" width="1600" height="1159" data-path="images/help/telegram/connect-stripe/connect-form-dark.png" />
    </Frame>
  </Step>

  <Step title="Paste the publishable key">
    In the **Publishable key** field, paste her publishable key. It starts with `pk_`.
  </Step>

  <Step title="Paste the secret key">
    In the **Secret key** field, paste her secret key. It starts with `sk_`. OnlyX saves it once and never shows it again.

    You can leave **Webhook secret** empty. See [Payment confirmation](#payment-confirmation).
  </Step>

  <Step title="Confirm the Stripe warning">
    Read the text next to the checkbox. Then select the checkbox. The text says:

    "Stripe’s own terms do not allow adult content. Connecting your Stripe account here is your decision and your risk — Stripe can hold the money or close the account at any time."
  </Step>

  <Step title="Save the keys">
    Click **Save**. OnlyX checks her secret key with Stripe before it saves the keys. It does not check the publishable key, so copy both keys from the same Stripe account.

    When the check passes, "Payment account saved" appears. The form is empty again.
  </Step>

  <Step title="Check the result">
    The badge on the **Payments** card shows **Connected · live**. Her Stripe account ID shows under the text.

    On her **Overview**, the setup step **Payments connected** is done.

    <Frame caption="**1** Connected · live · **2** Disconnect">
      <img className="block dark:hidden" src="https://mintcdn.com/onlyx/nEspcAv8Fd2HVd9G/images/help/telegram/connect-stripe/connected-light.png?fit=max&auto=format&n=nEspcAv8Fd2HVd9G&q=85&s=07b98a726d3adf1eaa30fec18e1a8088" alt="The Payments tab showing Connected · live with her Stripe account ID, the Disconnect button, and the Replace the keys form" width="1600" height="1204" data-path="images/help/telegram/connect-stripe/connected-light.png" />

      <img className="hidden dark:block" src="https://mintcdn.com/onlyx/nEspcAv8Fd2HVd9G/images/help/telegram/connect-stripe/connected-dark.png?fit=max&auto=format&n=nEspcAv8Fd2HVd9G&q=85&s=e77d63fc37f9e1451b3eef8b3e19f4b1" alt="The Payments tab showing Connected · live with her Stripe account ID, the Disconnect button, and the Replace the keys form" width="1600" height="1204" data-path="images/help/telegram/connect-stripe/connected-dark.png" />
    </Frame>
  </Step>
</Steps>

If the badge shows **Connected · test mode**, you saved test keys. No real money reaches her account. Replace them with her live keys.

<span id="instant-unlocks" />

## Payment confirmation

OnlyX can confirm payments without **Webhook secret**. The payment screen checks the result with Stripe. OnlyX also checks unfinished payments and retries incomplete deliveries in the background.

The **Payments** card may still say the unlock arrives when the fan comes back to the conversation. That wording is out of date. Returning to the conversation is not required to confirm the payment.

Ask the fan to look for his files in the conversation with the creator. If he paid but cannot find them, see [A Telegram fan paid but cannot open the content](/telegram/paid-content-not-unlocked).

**Webhook secret** lets Stripe send payment updates to OnlyX. The **Payments** tab does not show the address needed to set this up. For help, email [support@onlyx.ai](mailto:support@onlyx.ai). Do not email keys or secrets.

Payment confirmation does not promise that the files arrive at once.

## Change the keys

Once she is connected, the form is called **Replace the keys**.

<Steps>
  <Step title="Paste the publishable key again">
    On her **Payments** tab, in the **Publishable key** field, paste her publishable key. It is needed on every save.
  </Step>

  <Step title="Keep or change the secret key">
    To keep the saved secret key, leave **Secret key** empty. The field shows "Keeping the saved key".

    To move her to another Stripe account, paste that account's secret key. Payments after that go to the new account.
  </Step>

  <Step title="Confirm the warning and save">
    Select the checkbox again. You must confirm it on every save. Then click **Save**.
  </Step>
</Steps>

## Disconnect her Stripe account

<Steps>
  <Step title="Start the disconnect">
    On her **Payments** tab, click **Disconnect**.

    The window "Disconnect this payment account?" opens.
  </Step>

  <Step title="Confirm">
    Read the window. Then click **Disconnect**. To keep the account, click **Keep it**.

    "Payment account disconnected" appears. The badge shows **Not connected**, and the setup step **Payments connected** is no longer done.
  </Step>
</Steps>

<Warning>
  After you disconnect, no fan can start a new payment until new keys are saved. A fan who already has a pay page open can still pay on it. Money already paid is not affected, and nothing is refunded.
</Warning>

## If something goes wrong

<AccordionGroup>
  <Accordion title="&#x22;Could not save the keys&#x22;">
    The message under it says why. "Stripe would not accept that key" means Stripe refused the key. Check that you copied each key in full, from the same Stripe account. Nothing was saved, and the keys that were saved before still work.

    The keys you pasted stay in the form, so you can fix them.
  </Accordion>

  <Accordion title="Save is greyed out">
    Fill in **Publishable key** and select the checkbox. The first time, **Secret key** is needed too.
  </Accordion>

  <Accordion title="The badge shows Connected · test mode">
    You saved test keys. Replace them with her live keys. See [Change the keys](#change-the-keys).
  </Accordion>

  <Accordion title="A red message shows on the Payments card">
    This shows the last time Stripe refused keys being saved here. Check the keys and save ones Stripe accepts.
  </Accordion>

  <Accordion title="&#x22;Only an owner can change the payment account.&#x22;">
    Chatters and content VAs see this in place of the form. Ask an owner or an admin: admins can change it too.
  </Accordion>

  <Accordion title="A new creator's Payments tab already shows Connected">
    OnlyX can connect one Stripe account for all the Telegram creators of an agency. If it did this for your agency, a new Telegram creator starts connected to that account. To use her own Stripe account instead, save her keys on her **Payments** tab.
  </Accordion>

  <Accordion title="&#x22;Could not read payments&#x22;">
    OnlyX could not read her payment account. Reload the page. If the message comes back, email [support@onlyx.ai](mailto:support@onlyx.ai).
  </Accordion>
</AccordionGroup>

## What's next

<Columns cols={2}>
  <Card title="Upload media for a Telegram creator" icon="images" href="/telegram/upload-media" horizontal />

  <Card title="A Telegram fan paid but cannot open the content" icon="circle-help" href="/telegram/paid-content-not-unlocked" horizontal />
</Columns>
