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

# Get the wallet's Stripe login state

> Report whether the wallet is still Link-authenticated.

Whether this wallet is still authenticated with Stripe Link, plus the customer
id and email once they are known. It answers 200 either way, so it is safe to
poll on a cold open to decide whether to resume or restart the flow.


## OpenAPI

````yaml api/openapi.json GET /v1/stripe/status
openapi: 3.1.0
info:
  description: Fiat-to-USDC onramp API. The URL prefix (`/v1`) is the version contract.
  license:
    identifier: LicenseRef-Proprietary
    name: Proprietary
  title: Calm API
  version: v1
servers:
  - description: Production
    url: https://api.calmtreasury.xyz
  - description: Sandbox
    url: https://api.sandbox.calmtreasury.xyz
security: []
paths:
  /v1/stripe/status:
    get:
      summary: Get the wallet's Stripe login state
      description: >-
        Reports whether this wallet is still Link-authenticated and, once the
        customer POST has run, the persisted crypto customer id and the Link
        account email. An un-authenticated wallet is a 200 with `authenticated:
        false`, not a 401 — poll it to re-derive the Stripe session on a cold
        open.
      operationId: getStripeStatus
      parameters:
        - in: query
          name: wallet
          required: true
          schema:
            pattern: ^0x[a-fA-F0-9]{40}$
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  authenticated:
                    type: boolean
                  crypto_customer_id:
                    type: string
                  email:
                    format: email
                    pattern: >-
                      ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                    type: string
                required:
                  - authenticated
                type: object
          description: The wallet's Stripe login state.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: >-
            Bad Request — `error.code` includes: publishable_key_missing,
            validation_error.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Unauthorized — `error.code` includes: invalid_publishable_key.'
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Forbidden — `error.code` includes: origin_not_allowed.'
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: 'Too Many Requests — `error.code` includes: rate_limited.'
      security:
        - publishableKey: []
components:
  schemas:
    Error:
      properties:
        error:
          properties:
            code:
              type: string
            message:
              type: string
          required:
            - code
            - message
          type: object
      required:
        - error
      type: object
  securitySchemes:
    publishableKey:
      description: Publishable key identifying the calling app.
      in: header
      name: x-calm-publishable-key
      type: apiKey

````