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

# Create Payment Session

> Initialization of a payment session will trigger a payment authorization user experience on the paired Authsignal payment terminal application.



## OpenAPI

````yaml terminal-api POST /terminal/payment-session
openapi: 3.0.0
info:
  description: Authsignal's Terminal API.
  version: 1.0.0
  title: Terminal API
  termsOfService: https://www.authsignal.com/legal/terms-of-service
  contact:
    email: hello@authsignal.com
servers:
  - url: https://api.authsignal.com/v1
  - url: https://au.api.authsignal.com/v1
  - url: https://eu.api.authsignal.com/v1
  - url: https://ca.api.authsignal.com/v1
security:
  - terminalAuth: []
tags:
  - name: payment-session
    description: ''
    externalDocs:
      description: Find out more
      url: https://docs.authsignal.com
externalDocs:
  description: Find out more about Authsignal
  url: https://docs.authsignal.com
paths:
  /terminal/payment-session:
    post:
      tags:
        - payment-session
      summary: Create a payment session
      description: >-
        Initialization of a payment session will trigger a payment authorization
        user experience on the paired Authsignal payment terminal application.
      operationId: createPaymentSession
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: number
                  description: The amount intended to be authorized at the terminal.
                reference:
                  type: string
                  description: >-
                    A reference identifier originating from the point of sale
                    system.
                currency:
                  type: string
                  description: The currency intended to be authorized at the terminal.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentSession'
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    PaymentSession:
      type: object
      properties:
        challengeId:
          type: string
          description: The ID of the payment session.
        status:
          type: string
          enum:
            - PENDING
            - COMPLETED
            - EXPIRED
            - FAILED
        reference:
          type: string
          description: A reference identifier originating from the point of sale system.
      required:
        - userAuthenticatorId
        - authenticatorType
        - verificationMethod
        - createdAt
      example:
        challengeId: ef6b3212-6121-4a9e-92ef-09d819e36e93
        status: PENDING
        reference: xxx-xxx-xxx
  responses:
    InvalidRequest:
      description: Invalid Request
      content:
        application/json:
          schema:
            $ref: 3aedc6ce-308b-435c-9327-0291fef7ef75
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: 3aedc6ce-308b-435c-9327-0291fef7ef75
  securitySchemes:
    terminalAuth:
      type: apiKey
      in: header
      name: x-authsignal-terminal
      description: >-
        Use your terminal ID obtained from the on-boarded device. This unique
        identifier is required to authenticate requests to the payment session
        APIs from your point of sale terminal.

````