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

# Controlar el cobro

> Defina si una instancia está en prueba o en cobro

**`PATCH /api/instance/billing/:instance`**

Define el modo de cobro de una instancia. Úselo para saltar la prueba y cobrar desde ya. El cambio es de una sola vía: una vez en cobro, la instancia no vuelve a prueba. Autentique con el **TokenAccount** de su cuenta, el mismo que usa para crear y administrar instancias.

## Modos de cobro

| `billingMode` | Qué hace                                                                                                                        |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `trial`       | Modo por defecto de una instancia nueva. La instancia recibe los días de prueba de su contrato a partir de la primera conexión. |
| `billable`    | Cobra la instancia desde ya, sin días gratis. Útil para un cliente que ya probó antes y está volviendo.                         |

<Warning>
  El cambio a `billable` es definitivo. Una instancia en cobro no puede volver a `trial`, la API responde 400.
</Warning>

## Ejemplo

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PATCH "https://ryzeapi.cloud/api/instance/billing/mi-instancia" \
    -H "token: $Token_Account" \
    -H "Content-Type: application/json" \
    -d '{"billingMode": "billable"}'
  ```

  ```javascript JavaScript theme={null}
  await fetch("https://ryzeapi.cloud/api/instance/billing/mi-instancia", {
    method: "PATCH",
    headers: {
      "token": process.env.Token_Account,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ billingMode: "billable" })
  });
  ```

  ```python Python theme={null}
  import os, requests

  requests.patch(
      "https://ryzeapi.cloud/api/instance/billing/mi-instancia",
      headers={
          "token": os.environ["Token_Account"],
          "Content-Type": "application/json"
      },
      json={"billingMode": "billable"}
  )
  ```
</CodeGroup>

## Respuesta de éxito

```json 200 OK theme={null}
{
  "billingMode": "billable"
}
```

La respuesta confirma el modo que quedó vigente en la instancia.

## Path parameters

<ParamField path="instance" type="string" required>
  Nombre de la instancia.
</ParamField>

## Headers

<ParamField header="token" type="string" required>
  Su TokenAccount, el mismo que usa para crear y administrar instancias.
</ParamField>

## Body

<ParamField body="billingMode" type="string" required>
  Uno de `trial` o `billable`. Una vez `billable`, la instancia no puede volver a `trial`.
</ParamField>

## Qué ocurre en cada cambio

<AccordionGroup>
  <Accordion title="A billable" icon="circle-dollar-to-slot">
    La instancia pasa a cobrarse a partir de ahora. Si ya está conectada, el monto comprometido del ciclo empieza a contar en este momento y va hasta la renovación, aunque usted elimine la instancia antes.
  </Accordion>

  <Accordion title="A trial" icon="hourglass-start">
    Solo vale mientras la instancia aún no entró en cobro. Una instancia que ya es `billable` no vuelve a prueba, la API responde 400. La prueba sigue las reglas de su contrato y el historial del número.
  </Accordion>
</AccordionGroup>

## Errores

| HTTP | `error`                                         | Cuándo                                                    |
| :--: | ----------------------------------------------- | --------------------------------------------------------- |
|  400 | `billingMode obrigatorio`                       | El cuerpo no incluyó el campo `billingMode`.              |
|  400 | `billingMode invalido (trial\|billable)`        | Valor fuera de los dos aceptados.                         |
|  400 | `instancia billable nao pode voltar para trial` | La instancia ya está en cobro y no puede volver a prueba. |
|  401 | `Invalid token`                                 | Token ausente o inválido.                                 |
|  403 | `Instance does not belong to your account`      | La instancia no es suya.                                  |
|  404 | `instance not found`                            | El nombre no existe.                                      |

## Siguiente

<CardGroup cols={2}>
  <Card title="Cómo funciona el cobro" icon="calculator" href="/es/enterprise/how-billing-works">
    Entienda el crédito, la prueba y la medición por día.
  </Card>

  <Card title="Webhooks Enterprise" icon="webhook" href="/es/enterprise/webhooks">
    Reaccione a cada cambio de estado por evento.
  </Card>
</CardGroup>
