> ## Documentation Index
> Fetch the complete documentation index at: https://api-reference.hyperswitch.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Authentication - POST Eligibility Check



## OpenAPI

````yaml post /authentication/{authentication_id}/eligibility-check
openapi: 3.0.3
info:
  title: Hyperswitch - API Documentation
  description: >

    ## Get started


    Hyperswitch provides a collection of APIs that enable you to process and
    manage payments.

    Our APIs accept and return JSON in the HTTP body, and return standard HTTP
    response codes.


    You can consume the APIs directly using your favorite HTTP/REST library.


    We have a testing environment referred to "sandbox", which you can setup to
    test API calls without

    affecting production data.

    Currently, our sandbox environment is live while our production environment
    is under development

    and will be available soon.

    You can sign up on our Dashboard to get API keys to access Hyperswitch API.


    ### Environment


    Use the following base URLs when making requests to the APIs:


    | Environment   |  Base URL                          |

    |---------------|------------------------------------|

    | Sandbox       | <https://sandbox.hyperswitch.io>   |

    | Production    | <https://api.hyperswitch.io>       |


    ## Authentication


    When you sign up on our [dashboard](https://app.hyperswitch.io) and create a
    merchant

    account, you are given a secret key (also referred as api-key) and a
    publishable key.

    You may authenticate all API requests with Hyperswitch server by providing
    the appropriate key in

    the request Authorization header.


    | Key             | 
    Description                                                                                 
    |

    |-----------------|-----------------------------------------------------------------------------------------------|

    | api-key         | Private key. Used to authenticate all API requests from
    your merchant server                  |

    | publishable key | Unique identifier for your account. Used to authenticate
    API requests from your app's client  |


    Never share your secret api keys. Keep them guarded and secure.
  contact:
    name: Hyperswitch Support
    url: https://hyperswitch.io
    email: support.global@juspay.io
  license:
    name: Apache-2.0
  version: 0.1.0
servers:
  - url: https://sandbox.hyperswitch.io
    description: Sandbox Environment
security: []
tags:
  - name: Merchant Account
    description: Create and manage merchant accounts
  - name: Profile
    description: Create and manage profiles
  - name: Merchant Connector Account
    description: Create and manage merchant connector accounts
  - name: Payments
    description: Create and manage one-time payments, recurring payments and mandates
  - name: Refunds
    description: Create and manage refunds for successful payments
  - name: Mandates
    description: Manage mandates
  - name: Customers
    description: Create and manage customers
  - name: Payment Methods
    description: Create and manage payment methods of customers
  - name: Disputes
    description: Manage disputes
  - name: API Key
    description: Create and manage API Keys
  - name: Payouts
    description: Create and manage payouts
  - name: payment link
    description: Create payment link
  - name: Routing
    description: Create and manage routing configurations
  - name: Event
    description: Manage events
  - name: Authentication
    description: Create and manage authentication
  - name: Subscriptions
    description: Subscription management and billing endpoints
  - name: Card Issuer
    description: Create and manage card issuers
paths:
  /authentication/{authentication_id}/eligibility-check:
    post:
      tags:
        - Authentication
      summary: Authentication - POST Eligibility Check
      operationId: Submit Eligibility for an Authentication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticationEligibilityCheckRequest'
        required: true
      responses:
        '200':
          description: Eligibility Performed for the Authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationEligibilityCheckResponse'
        '400':
          description: Invalid data
      security:
        - publishable_key: []
components:
  schemas:
    AuthenticationEligibilityCheckRequest:
      type: object
      required:
        - eligibility_check_data
      properties:
        client_secret:
          type: string
          description: >-
            Optional secret value used to identify and authorize the client
            making the request.

            This can help ensure that the payment session is secure and valid.
          nullable: true
        eligibility_check_data:
          $ref: '#/components/schemas/AuthenticationEligibilityCheckData'
    AuthenticationEligibilityCheckResponse:
      type: object
      required:
        - authentication_id
        - sdk_next_action
      properties:
        authentication_id:
          type: string
          description: The unique identifier for this authentication.
          example: auth_mbabizu24mvu3mela5njyhpit4
        sdk_next_action:
          $ref: '#/components/schemas/AuthenticationSdkNextAction'
    AuthenticationEligibilityCheckData:
      oneOf:
        - type: object
          required:
            - click_to_pay
          properties:
            click_to_pay:
              $ref: '#/components/schemas/ClickToPayEligibilityCheckData'
    AuthenticationSdkNextAction:
      oneOf:
        - type: string
          description: The next action is to await for a merchant callback
          enum:
            - await_merchant_callback
        - type: object
          required:
            - deny
          properties:
            deny:
              type: object
              description: The next action is to deny the payment with an error message
              required:
                - message
              properties:
                message:
                  type: string
        - type: string
          description: The next action is to proceed with the payment
          enum:
            - proceed
    ClickToPayEligibilityCheckData:
      type: object
      properties:
        visa:
          allOf:
            - $ref: '#/components/schemas/VisaEligibilityCheckData'
          nullable: true
        mastercard:
          allOf:
            - $ref: '#/components/schemas/MasterCardEligibilityCheckData'
          nullable: true
    VisaEligibilityCheckData:
      type: object
      required:
        - consumerPresent
      properties:
        consumerPresent:
          type: boolean
        consumerStatus:
          type: string
          nullable: true
        customData:
          allOf:
            - $ref: '#/components/schemas/BrowserInformation'
          nullable: true
    MasterCardEligibilityCheckData:
      type: object
      required:
        - consumerPresent
      properties:
        consumerPresent:
          type: boolean
        idLookupSessionId:
          type: string
          nullable: true
        lastUsedCardTimestamp:
          type: string
          nullable: true
    BrowserInformation:
      type: object
      description: Browser information to be used for 3DS 2.0
      properties:
        color_depth:
          type: integer
          format: int32
          description: Color depth supported by the browser
          nullable: true
          minimum: 0
        java_enabled:
          type: boolean
          description: Whether java is enabled in the browser
          nullable: true
        java_script_enabled:
          type: boolean
          description: Whether javascript is enabled in the browser
          nullable: true
        language:
          type: string
          description: Language supported
          nullable: true
        screen_height:
          type: integer
          format: int32
          description: The screen height in pixels
          nullable: true
          minimum: 0
        screen_width:
          type: integer
          format: int32
          description: The screen width in pixels
          nullable: true
          minimum: 0
        time_zone:
          type: integer
          format: int32
          description: Time zone of the client
          nullable: true
        ip_address:
          type: string
          description: Ip address of the client
          nullable: true
        accept_header:
          type: string
          description: List of headers that are accepted
          example: >-
            text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
          nullable: true
        user_agent:
          type: string
          description: User-agent of the browser
          nullable: true
        os_type:
          type: string
          description: The os type of the client device
          nullable: true
        os_version:
          type: string
          description: The os version of the client device
          nullable: true
        device_model:
          type: string
          description: The device model of the client
          nullable: true
        accept_language:
          type: string
          description: Accept-language of the browser
          nullable: true
        referer:
          type: string
          description: Identifier of the source that initiated the request.
          nullable: true
  securitySchemes:
    publishable_key:
      type: apiKey
      in: header
      name: api-key
      description: >-
        Publishable keys are a type of keys that can be public and have limited
        scope of usage.

````