---
title: "Start self-billing checkout"
method: POST
path: "/portal/billing/checkout"
tags: ["SelfBilling"]
---

# Start self-billing checkout

`POST /portal/billing/checkout`

## Request

- Base URL: `https://us.api.flexprice.io/v1`
- URL: `https://us.api.flexprice.io/v1/portal/billing/checkout`
- Auth: API key in header `x-api-key`

Saves the billing details and opens the checkout that ends the caller tenant's trial.

## Request body

- SelfBillingCheckoutRequest
  - `address_city` string, required
  - `address_country` string, required
  - `address_line1` string, required
  - `address_line2` string
  - `address_postal_code` string, required
  - `address_state` string
  - `email` string, required
  - `name` string, required
  - `tax_id` string

## Response `200`

OK

- SelfBillingCheckoutResponse
  - `checkout_id` string
  - `status` 'initiated' | 'pending' | 'completed' | 'failed' | 'expired'
  - `tenant_status` 'trialing' | 'active' | 'suspended'
  - `terminal` boolean
  - `url` string

## Other responses

- `400`: Invalid request
- `404`: Self-billing disabled or subscription not found
- `409`: A checkout is already in progress
- `500`: Server error

## Changes

- **2026-10-20** `a24bd13338e3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/flexprice/apis/flexprice-api/changes/portal/billing/checkout/post.md)

---

[API](https://skmtc.dev/flexprice/apis/flexprice-api.md) - [All operations](https://skmtc.dev/flexprice/apis/flexprice-api/llms.txt) - [OpenAPI document](https://skmtc.dev/flexprice/apis/flexprice-api/revisions/84cb4a3af400?raw)
