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

# Create checkout experience

> Create an empty checkout experience. It has no shipping methods and is not
live until the store's checkout tree routes shoppers to it; add methods with
`POST /stores/{storeId}/checkout-experiences/{checkoutExperienceId}/shipping-methods`.

Requires the [`checkout_write`](/docs/api-reference/scopes) scope.




## OpenAPI

````yaml /api-schema/openapi.yaml post /stores/{storeId}/checkout-experiences
openapi: 3.1.0
info:
  contact:
    email: engineering-admin@getredo.com
    name: Redo Engineering
  description: |
    ## Endpoints

    Endpoints are authenticated using the Bearer authorization scheme, using the
    REDO_API_SECRET.

    ```txt
    GET /v2.2/resource HTTP/1.1
    Authorization: Bearer 77bb7598b7a972475cc7c7e171ec33af
    Host: api.getredo.com
    ```

    ## Webhooks

    Webhooks are authenticated using the Bearer authorization scheme, using
    a secret supplied by the subscriber.

    ```txt
    POST /events HTTP/1.1
    Authorization: Bearer subscriberauth123
    Host: subscriber.example.com
    ```

    Webhook events are delivered in order for each individual subject (e.g.
    return).

    If the response is not a 2xx status code, the event will be retried multiple
    times before discarding it.
  title: Redo API
  version: 2.2.1
servers:
  - url: https://api.getredo.com/v2.2
security: []
tags:
  - description: >-
      Group several products under one product shoppers buy, so a returned
      bundle can be broken back into the products it contains.
    name: Bundles
  - name: Checkout Buttons
  - description: >-
      Manage the shipping methods shown at checkout. A checkout experience is a
      named group of shipping methods; the store's checkout tree decides which
      shoppers see which experience.
    name: Checkout Experiences
  - name: Coverage Info
  - name: Coverage Products
  - name: Custom Events
  - name: Customer Portal
  - name: Customer Subscriptions
  - name: Customers
  - name: Inbound Shipments
  - name: Inventory Items
  - name: Inventory Levels
  - name: Invoices
  - name: Merchant Admin
  - name: Orders
  - name: Products
  - name: Returns
  - description: >-
      Push orders into Redo from a commerce platform Redo does not support
      directly, so shoppers can return them.
    name: Returns Custom Integration
  - name: Storefront
  - name: Webhooks
paths:
  /stores/{storeId}/checkout-experiences:
    summary: Checkout Experiences
    parameters:
      - $ref: '#/components/parameters/store-id.param'
    post:
      tags:
        - Checkout Experiences
      summary: Create checkout experience
      description: >
        Create an empty checkout experience. It has no shipping methods and is
        not

        live until the store's checkout tree routes shoppers to it; add methods
        with

        `POST
        /stores/{storeId}/checkout-experiences/{checkoutExperienceId}/shipping-methods`.


        Requires the [`checkout_write`](/docs/api-reference/scopes) scope.
      operationId: Checkout experience create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/checkout-experience-create-request.schema'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/checkout-experience-write-response.schema'
              examples:
                created:
                  summary: The new experience's ID
                  value:
                    checkoutExperienceId: 66b2f1c9e4b0a1d2c3f4a5d1
          description: Created
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/error.schema'
              examples:
                blank_name:
                  summary: A blank name
                  value:
                    type: com.getredo.api:checkout/invalid-request
                    title: Invalid checkout configuration
                    detail: A checkout experience name cannot be blank.
          description: >-
            Invalid request body or a blank name. Returned with type
            `com.getredo.api:checkout/invalid-request`.
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/error.schema'
          description: Error
      security:
        - Bearer: []
components:
  parameters:
    store-id.param:
      description: Store ID
      in: path
      name: storeId
      required: true
      schema:
        example: 64e5a8a1af49a89df37e4ee7
        type: string
  schemas:
    checkout-experience-create-request.schema:
      properties:
        name:
          description: >-
            Merchant-facing name for the new checkout experience. Must not be
            blank.
          example: Free shipping test
          type: string
      required:
        - name
      title: Checkout experience create request
      type: object
    checkout-experience-write-response.schema:
      properties:
        checkoutExperienceId:
          description: >-
            The checkout experience that was written. Read it back with `GET
            /stores/{storeId}/checkout-experiences/{checkoutExperienceId}`.
          example: 66b2f1c9e4b0a1d2c3f4a5b6
          type: string
      required:
        - checkoutExperienceId
      title: Checkout experience write result
      type: object
    error.schema:
      description: >-
        Problem details. See [RFC 7807 Section
        3](https://datatracker.ietf.org/doc/html/rfc7807#section-3).
      properties:
        detail:
          description: Human-readable description of the problem.
          title: Detail
          type: string
        instance:
          description: A URI reference that identifies this problem.
          format: uri-reference
          type: string
        title:
          description: Human-readable summary of the problem type.
          title: Title
          type: string
        type:
          default: about:blank
          description: A URI reference that identifies the problem type.
          format: uri-reference
          type: string
      title: Problem details
      type: object
  securitySchemes:
    Bearer:
      scheme: bearer
      type: http

````