Slash Checkout Session API

The Checkout Session API from Slash — 2 operation(s) for checkout session.

Operations 4

GET /checkout-session Get checkout session #
POST /checkout-session Create checkout session #
GET /checkout-session/{checkoutSessionId} Get checkout session by checkout session id #
PATCH /checkout-session/{checkoutSessionId} Update checkout session by checkout session id #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/joinslash-com:joinslash-com-checkout-session-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

joinslash-com-checkout-session-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Slash Public Checkout Session API
  description: API description
  version: 0.0.1
  contact: {}
servers:
- url: https://api.slash.com
  description: production
security:
- api_key: []
- partner_api_key: []
- bearer: []
- developer_application: []
tags:
- name: Checkout Session
paths:
  /checkout-session:
    x-api-key-scopes:
    - revenue
    x-reference-path: paths/checkout-session/route.yaml
    get:
      deprecated: true
      description: '**Deprecated:** Slash hosted checkout has been sunset. This endpoint stays reachable for a few more days but is no longer expected to work, so do not rely on it. Move to payment intents and Payment Elements now


        List checkout sessions for your legal entity, newest first. Supports cursor pagination.'
      parameters:
      - name: cursor
        required: false
        in: query
        schema:
          type: string
        description: A cursor string to fetch the next page of results
        x-reference-path: schemas/Pagination/CursorParameter.yaml
      - name: filter:legalEntityId
        description: The legal entity ID. Required if authenticating with access to multiple legal entities.
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/CheckoutSession'
                      x-entrypoint:
                        virtualPath: schemas/CheckoutSession
                        sourcePath: schemas/CheckoutSession.yaml
                        title: CheckoutSession
                        origin: ./src/publicApi
                  metadata:
                    $ref: '#/components/schemas/Pagination.PaginationResponse'
                    x-entrypoint:
                      virtualPath: schemas/Pagination/PaginationResponse
                      sourcePath: schemas/Pagination/PaginationResponse.yaml
                      title: PaginationResponse
                      origin: ./src/publicApi
                required:
                - items
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Checkout Session
      summary: Get checkout session
      x-summary-source: derived
      operationId: getCheckoutSession
      x-operation-id-source: derived
    post:
      deprecated: true
      description: '**Deprecated:** Slash hosted checkout has been sunset. This endpoint stays reachable for a few more days but is no longer expected to work, so do not rely on it. Move to payment intents and Payment Elements now


        Create a checkout session for collecting a card payment through the Slash hosted checkout. Returns a hosted checkout `url` to embed in your page. Requires an `X-Idempotency-Key` header; retries with the same key return the existing session.'
      parameters:
      - name: X-Idempotency-Key
        description: A unique key for this checkout session. Retrying a request with the same key returns the previously created session instead of creating a new one.
        in: header
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: integer
                  minimum: 1
                  description: Payment amount in cents. Must be strictly positive.
                currency:
                  type: string
                  description: ISO currency code for the payment. Supported currencies are `usd` and `eur`.
                  enum:
                  - usd
                  - eur
                customMetadata:
                  type: object
                  description: Custom metadata to associate with the checkout session. Echoed on webhook events for this session.
                  additionalProperties: true
                config:
                  type: object
                  description: Configuration for the hosted checkout page. Echoed on reads and editable while the session is open.
                  properties:
                    prefillEmail:
                      type: string
                      format: email
                      description: Email address to prefill the hosted checkout with.
                    prefillName:
                      type: string
                      description: Buyer name to prefill the hosted checkout with.
                    hideEmail:
                      type: boolean
                      description: Hides the email field in the hosted checkout entirely.
                    disableEmail:
                      type: boolean
                      description: Renders the email field read-only. Pairs with prefillEmail to show a fixed address the buyer cannot edit.
                    prefillAddress:
                      type: object
                      description: Billing address to prefill the hosted checkout with.
                      properties:
                        name:
                          type: string
                          description: Name on the billing address.
                        country:
                          type: string
                          description: Country for the billing address.
                        line1:
                          type: string
                          description: First billing address line.
                        line2:
                          type: string
                          description: Second billing address line.
                        city:
                          type: string
                          description: City for the billing address.
                        state:
                          type: string
                          description: State or region for the billing address.
                        postalCode:
                          type: string
                          description: Postal code for the billing address.
                    paymentMethods:
                      type: object
                      description: Wallet payment methods to enable in the hosted checkout. Card is always enabled. Omitted fields default to enabled.
                      properties:
                        applePay:
                          type: boolean
                          description: Whether Apple Pay is enabled. Defaults to true.
                        googlePay:
                          type: boolean
                          description: Whether Google Pay is enabled. Defaults to true.
                expiresAt:
                  type: string
                  format: date-time
                  description: ISO-8601 timestamp after which the session can no longer be paid. Defaults to 24 hours after creation. Must be at least 30 minutes and at most 7 days in the future.
              required:
              - amount
              - currency
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  checkoutSession:
                    $ref: '#/components/schemas/CheckoutSession'
                    x-entrypoint:
                      virtualPath: schemas/CheckoutSession
                      sourcePath: schemas/CheckoutSession.yaml
                      title: CheckoutSession
                      origin: ./src/publicApi
                required:
                - checkoutSession
        '400':
          description: Hosted checkout is unavailable or payment processing is not enabled for the legal entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerError'
                x-entrypoint:
                  origin: ./src/publicApi
                  sourcePath: src/publicApi/paths/checkout-session/route.yaml
                  title: PartnerError
                  virtualPath: components/PartnerError
                  globalImport: true
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Checkout Session
      summary: Create checkout session
      x-summary-source: derived
      operationId: postCheckoutSession
      x-operation-id-source: derived
  /checkout-session/{checkoutSessionId}:
    x-api-key-scopes:
    - revenue
    x-reference-path: paths/checkout-session/{checkoutSessionId}/route.yaml
    get:
      deprecated: true
      description: '**Deprecated:** Slash hosted checkout has been sunset. This endpoint stays reachable for a few more days but is no longer expected to work, so do not rely on it. Move to payment intents and Payment Elements now


        Get a single checkout session by ID. Use this to check whether a session''s payment has settled (`status` becomes `complete`) as an alternative or reconciliation fallback to webhooks.'
      parameters:
      - name: checkoutSessionId
        in: path
        required: true
        schema:
          type: string
      - name: filter:legalEntityId
        description: The legal entity ID. Required if authenticating with access to multiple legal entities.
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  checkoutSession:
                    $ref: '#/components/schemas/CheckoutSession'
                    x-entrypoint:
                      virtualPath: schemas/CheckoutSession
                      sourcePath: schemas/CheckoutSession.yaml
                      title: CheckoutSession
                      origin: ./src/publicApi
                required:
                - checkoutSession
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Checkout Session
      summary: Get checkout session by checkout session id
      x-summary-source: derived
      operationId: getCheckoutSessionByCheckoutSessionId
      x-operation-id-source: derived
    patch:
      deprecated: true
      description: '**Deprecated:** Slash hosted checkout has been sunset. This endpoint stays reachable for a few more days but is no longer expected to work, so do not rely on it. Move to payment intents and Payment Elements now


        Update an open checkout session before the buyer starts payment. The session keeps its id and hosted url, so a buyer with the checkout already open picks up a new amount without a new session being minted.'
      parameters:
      - name: checkoutSessionId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: integer
                  minimum: 1
                  description: Payment amount in cents. Must be strictly positive.
                expiresAt:
                  type: string
                  format: date-time
                  description: ISO-8601 timestamp after which the session can no longer be paid. Must be at least 30 minutes and at most 7 days in the future.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  checkoutSession:
                    $ref: '#/components/schemas/CheckoutSession'
                    x-entrypoint:
                      virtualPath: schemas/CheckoutSession
                      sourcePath: schemas/CheckoutSession.yaml
                      title: CheckoutSession
                      origin: ./src/publicApi
                required:
                - checkoutSession
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: 'The checkout session can no longer be updated because payment is

            already in progress or has reached a terminal state.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
                x-entrypoint:
                  origin: ./src/publicApi
                  sourcePath: src/publicApi/paths/checkout-session/{checkoutSessionId}/route.yaml
                  title: Error
                  virtualPath: components/Error
                  globalImport: true
        '429':
          description: TooManyRequests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - api_key: []
      - bearer: []
      tags:
      - Checkout Session
      summary: Update checkout session by checkout session id
      x-summary-source: derived
      operationId: patchCheckoutSessionByCheckoutSessionId
      x-operation-id-source: derived
components:
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
        name:
          type: string
        identifier:
          type: string
        rawStatus:
          type: number
        meta:
          type: object
          additionalProperties: true
      required:
      - message
      - name
      - identifier
      - rawStatus
      x-entrypoint:
        origin: ./src/publicApi
        sourcePath: ./src/publicApi/main.yaml
        title: Error
        virtualPath: components/Error
      title: Error
    PartnerError:
      type: object
      description: 'Error response returned by the Slash Partners (`/partner-program/*`)

        API. Always includes a stable, machine-readable `code` and a

        `reference_id` for support correlation, in addition to a

        human-readable `message`.

        '
      properties:
        code:
          type: string
          description: 'Stable, machine-readable error code. Branch on this rather than

            parsing `message`. Unexpected server-side failures use

            `internal_error`.

            '
          enum:
          - missing_api_key
          - invalid_api_key
          - api_key_wrong_scope
          - invalid_request
          - missing_idempotency_key
          - invalid_idempotency_key
          - idempotency_key_conflict
          - hosted_checkout_not_available
          - payment_processing_not_enabled
          - invalid_mle_key
          - invalid_mle_payload
          - unsupported_currency
          - invalid_amount
          - no_approved_transaction_details
          - transaction_details_mismatch
          - source_account_not_linked
          - destination_account_not_found
          - destination_account_closed
          - invalid_destination
          - destination_account_not_owned
          - invalid_suggested_split
          - suggested_split_amount_mismatch
          - transfer_not_found
          - feature_not_enabled
          - internal_error
        message:
          type: string
          description: 'Human-readable explanation of the failure. For known client-side

            errors this is actionable; for unexpected failures it is generic

            and accompanied by `reference_id`.

            '
        reference_id:
          type: string
          description: 'Opaque identifier for this specific failure. Include it when

            contacting Slash support to correlate the request server-side.

            '
        name:
          type: string
        identifier:
          type: string
        rawStatus:
          type: number
        meta:
          type: object
          additionalProperties: true
      required:
      - code
      - message
      - reference_id
      - name
      - identifier
      - rawStatus
      x-entrypoint:
        origin: ./src/publicApi
        sourcePath: ./src/publicApi/main.yaml
        title: PartnerError
        virtualPath: components/PartnerError
      title: PartnerError
    Pagination.PaginationResponse:
      type: object
      description: Response sent when requesting a list of data
      properties:
        nextCursor:
          type: string
          description: The cursor to use to retrieve the next page of data. If this is not sent, there is no more data to retrieve.
        count:
          type: number
          description: The number of items in the current page of data.
      x-entrypoint:
        virtualPath: schemas/Pagination/PaginationResponse
        sourcePath: schemas/Pagination/PaginationResponse.yaml
        title: PaginationResponse
        origin: ./src/publicApi
      title: PaginationResponse
    CheckoutSession:
      type: object
      description: A checkout session represents a single hosted payment attempt. Embed the session's `url` in your page (via the Slash checkout SDK or an iframe) to collect a card payment.
      properties:
        id:
          type: string
          description: Unique identifier for the checkout session.
        url:
          type: string
          description: Hosted checkout URL to embed. Treat it as single-use and mint one session per buyer checkout.
        status:
          type: string
          description: Status of the checkout session. `open` sessions are payable; `complete` sessions have a confirmed settled payment; `expired` sessions can no longer be paid.
          enum:
          - open
          - complete
          - expired
        paymentIntentId:
          type: string
          description: The payment intent created for this checkout session. Use this ID with `GET /payment-intent/{paymentIntentId}` or `POST /refund`.
        amount:
          type: integer
          description: Payment amount in cents.
        currency:
          type: string
          description: ISO currency code for the payment. Supported currencies are `usd` and `eur`.
          enum:
          - usd
          - eur
        customMetadata:
          type: object
          description: Custom metadata associated with the checkout session. Echoed on webhook events for this session.
          additionalProperties: true
        config:
          type: object
          description: Configuration for the hosted checkout page, editable while the session is open.
          properties:
            prefillEmail:
              type: string
              description: Email address the hosted checkout is prefilled with, if provided at creation.
            prefillName:
              type: string
              description: Buyer name the hosted checkout is prefilled with, if provided at creation.
            hideEmail:
              type: boolean
              description: Hides the email field in the hosted checkout entirely.
            disableEmail:
              type: boolean
              description: Renders the email field read-only. Pairs with prefillEmail to show a fixed address the buyer cannot edit.
            prefillAddress:
              type: object
              description: Billing address the hosted checkout is prefilled with, if provided at creation.
              properties:
                name:
                  type: string
                  description: Name on the billing address.
                country:
                  type: string
                  description: Country for the billing address.
                line1:
                  type: string
                  description: First billing address line.
                line2:
                  type: string
                  description: Second billing address line.
                city:
                  type: string
                  description: City for the billing address.
                state:
                  type: string
                  description: State or region for the billing address.
                postalCode:
                  type: string
                  description: Postal code for the billing address.
            paymentMethods:
              type: object
              description: Wallet payment methods enabled for the hosted checkout. Card is always enabled.
              properties:
                applePay:
                  type: boolean
                  description: Whether Apple Pay is enabled.
                googlePay:
                  type: boolean
                  description: Whether Google Pay is enabled.
        expiresAt:
          type: string
          format: date-time
          description: ISO-8601 timestamp after which the session can no longer be paid.
        createdAt:
          type: string
          format: date-time
          description: ISO-8601 timestamp the session was created at.
      required:
      - id
      - url
      - status
      - paymentIntentId
      - amount
      - currency
      - expiresAt
      - createdAt
      x-entrypoint:
        virtualPath: schemas/CheckoutSession
        sourcePath: schemas/CheckoutSession.yaml
        title: CheckoutSession
        origin: ./src/publicApi
      title: CheckoutSession
  securitySchemes:
    api_key:
      type: apiKey
      description: "API key authentication for public API requests.\n\nKeys come in two flavors:\n\n- *Legal-entity-scoped keys* are pinned to a single legal entity.\n  Minted via the dashboard under a specific entity; every request\n  acts on that entity.\n- *User-scoped keys* are pinned to a user and span every legal\n  entity that user has access to. Every request made with a\n  user-scoped key (except `GET /legal-entity`, which lists the\n  legal entities the user can access) must include an\n  `x-legal-entity` header naming the legal entity the request is\n  operating on. Requests without the header are rejected with\n  `400`. The authenticated user must have an active permission\n  role on the supplied legal entity, otherwise the request is\n  rejected with `403`.\n"
      name: X-API-Key
      in: header
    partner_api_key:
      type: apiKey
      description: 'Partner-program API key authentication.


        Keys are minted in the partner dashboard (Developers → API Keys),

        are scoped to a single partner program, and are prefixed with

        `sk_partner_`. Partner keys are only accepted by routes that

        declare this scheme; they are rejected by `api_key` routes and

        vice versa.

        '
      name: X-API-Key
      in: header
    bearer:
      type: http
      scheme: bearer
    developer_application:
      type: http
      scheme: basic