---
title: "A Checkout Session's outcome, read from Stripe"
method: GET
path: "/projects/v1/{project_id}/stripe/checkout-sessions/{checkout_session_id}"
tags: ["Projects"]
---

# A Checkout Session's outcome, read from Stripe

`GET /projects/v1/{project_id}/stripe/checkout-sessions/{checkout_session_id}`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/projects/v1/{project_id}/stripe/checkout-sessions/{checkout_session_id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `SIGN-IN-WITH-X`
  - HTTP bearer
  - HTTP bearer

Reads the session from Stripe on the connected account and returns its curated outcome: status (open, complete, expired), payment_status (paid, unpaid, no_payment_required), mode, customer_id, subscription_id, payment_intent_id, amount_total, currency, customer_email, client_reference_id, metadata (your keys only). Use it on the success page; a SEPA debit reads unpaid until it clears, then stripe_checkout_completed arrives. A session another project created is 403; an id unknown within this project's sessions is 404 STRIPE_CHECKOUT_SESSION_NOT_FOUND. Never lifecycle-gated.

## Path parameters

- `project_id` string, required: Run402 project ID. Public IDs are not UUIDs.
- `checkout_session_id` string, required

## Headers

- `SIGN-IN-WITH-X` string, required

## Response `200`

The outcome.

- StripeCheckoutSessionOutcome
  - `checkout_session_id` string, required
  - `status` string, nullable, required: open, complete, expired.
  - `payment_status` string, nullable, required: paid, unpaid, no_payment_required.
  - `mode` string, nullable
  - `customer_id` string, nullable
  - `subscription_id` string, nullable
  - `payment_intent_id` string, nullable
  - `amount_total` integer, nullable: Minor units.
  - `currency` string, nullable
  - `customer_email` string, nullable
  - `client_reference_id` string, nullable
  - `metadata` object, required: Your keys only; the run402_ stamps are stripped.
  - `created_at` string, date-time, nullable
  - `expires_at` string, date-time, nullable

## Other responses

- `403`: Another project's session, or not authorized.
- `404`: STRIPE_CHECKOUT_SESSION_NOT_FOUND.
- `503`: STRIPE_CONNECT_UNAVAILABLE.

---

[API](https://skmtc.dev/run402/apis/run402-api.md) · [All operations](https://skmtc.dev/run402/apis/run402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/run402/apis/run402-api/revisions/893607557f50?raw)
