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

# Create Signup Grant Setup Intent

> Open a Stripe SetupIntent so the user can verify a card and claim the $20 signup grant.

Stripe runs Radar / CVC / AVS / 3DS checks during SetupIntent confirmation;
on success Stripe fires ``setup_intent.succeeded`` which the webhook handler
turns into an atomic ``claim_signup_grant`` call + Croesus credit
(idempotency_key ``signup:<user_id>``, matching the retired auth-hook path
so double-claims via either path are impossible).



## OpenAPI

````yaml /api-reference/openapi.json post /api/v2/external/billing/signup-grant/setup-intent
openapi: 3.1.0
info:
  title: Lyceum Cloud Execution API
  version: 0.1.0
servers: []
security: []
paths:
  /api/v2/external/billing/signup-grant/setup-intent:
    post:
      tags:
        - Billing
      summary: Create Signup Grant Setup Intent
      description: >-
        Open a Stripe SetupIntent so the user can verify a card and claim the
        $20 signup grant.


        Stripe runs Radar / CVC / AVS / 3DS checks during SetupIntent
        confirmation;

        on success Stripe fires ``setup_intent.succeeded`` which the webhook
        handler

        turns into an atomic ``claim_signup_grant`` call + Croesus credit

        (idempotency_key ``signup:<user_id>``, matching the retired auth-hook
        path

        so double-claims via either path are impossible).
      operationId: >-
        create_signup_grant_setup_intent_api_v2_external_billing_signup_grant_setup_intent_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignupGrantSetupIntentResponse'
components:
  schemas:
    SignupGrantSetupIntentResponse:
      properties:
        client_secret:
          type: string
          title: Client Secret
        stripe_customer_id:
          type: string
          title: Stripe Customer Id
      type: object
      required:
        - client_secret
        - stripe_customer_id
      title: SignupGrantSetupIntentResponse

````