---
title: "End free trial"
method: POST
path: "/api/billing/end-free-trial"
---

# End free trial

`POST /api/billing/end-free-trial`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/billing/end-free-trial`
- Auth: HTTP bearer

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Ends your workspace's free trial now and starts the paid plan. Only the workspace owner can end it. This works only for a workspace billed through Wix that's in a free trial. Otherwise it returns 400 with `not_wix_billed` or `not_in_free_trial`.

<Warning>This charges the saved payment method for the first billing cycle right away, with no confirmation step.</Warning>

<Warning>A declined card isn't an error. The response is 200 with `status` set to `payment_declined` or `payment_declined_not_retriable`, and the workspace stays in its free trial. Check `status` before you treat the trial as ended.</Warning>

To fix a declined card, update it with [Create payment method update session](/api-reference/create-payment-method-update-session), then call this again.

The base rate limit is 10 requests per hour per user. See [Rate limits](/developers/references/apps-api/get-started/rate-limits) for the multiplier your plan gets.

## Response `200`

The outcome of the charge. Check `status`.

- FreeTrialEnded: The outcome of ending a free trial.
  - `status` 'ended_successfully' | 'payment_pending' | 'payment_declined' | 'payment_declined_not_retriable' | 'unknown_status', required: `ended_successfully`: the trial is over and the first cycle is paid. `payment_pending`: the charge is still processing. `payment_declined`: the card was declined and the trial continues, so you can retry. `payment_declined_not_retriable`: declined, and retrying won't help until the payment method changes. `unknown_status`: Wix didn't report an outcome.
  - `invoice_id` string, nullable, required: ID of the invoice for the first cycle. `null` when none was issued.

## Other responses

- `400`: The workspace isn't billed through Wix (`not_wix_billed`), isn't in a free trial (`not_in_free_trial`), or Base44 couldn't open a Wix billing session for the workspace owner.
- `401`: Missing or invalid credentials. A read-only token gets this response too.
- `403`: You aren't the workspace owner, or a payment dispute is open on the workspace.
- `409`: Wix doesn't allow ending this trial (`free_trial_end_not_allowed`).
- `429`: Rate limit exceeded. The base rate limit is 10 requests per hour per user. See [Rate limits](/developers/references/apps-api/get-started/rate-limits) for the multiplier your plan gets.

## Changes

> 66 revisions in range; 1 not diffed.

- **2026-10-26** `395a6758864a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adexad/apis/base44-app-management-api/changes/api/billing/end-free-trial/post.md)

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) - [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) - [OpenAPI document](https://skmtc.dev/adexad/apis/base44-app-management-api/revisions/d877a932dc19?raw)
