---
title: "Confirm Stripe Checkout and sync tier to Supabase"
method: POST
path: "/billing/confirm-checkout-session"
tags: ["billing"]
---

# Confirm Stripe Checkout and sync tier to Supabase

`POST /billing/confirm-checkout-session`

Client-side recovery for tier upgrades: Stripe redirects with session_id
before webhooks may have updated Supabase.

## Request body

- ConfirmCheckoutSessionRequest
  - `session_id` string, required — Stripe Checkout Session id (cs_...)

## Response `200`

Verifies a completed Checkout Session with Stripe and updates the current user's tier in Supabase. Use when webhooks are delayed or misconfigured (e.g. staging).

- ConfirmCheckoutSessionResponse
  - `tier` string, required
  - `synced` boolean
  - `subscription_id` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/memara/apis/memara-api.md) · [All operations](https://skmtc.net/memara/apis/memara-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/memara/memara-api/versions/4dc7c4418845/schema)
