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

# Create

> Create a new terminal.

Sample request:

POST v1/terminals/
{
    "nickname":"NICKNAME",
    "registration_code":"******"
}



## OpenAPI

````yaml https://cdn.ecrypt.dev/swagger/gateway-swagger-v25.json post /v1/terminals
openapi: 3.0.4
info:
  title: Ecrypt.Gateway.Api
  description: Ecrypt API
  contact:
    name: Ecrypt
    url: https://www.ecrypt.com/
    email: Engineering@Ecrypt.com
  version: 1.0.0.0
servers: []
security: []
paths:
  /v1/terminals:
    post:
      tags:
        - Terminals
      summary: Create
      description: "Create a new terminal.\r\n\r\nSample request:\r\n\r\nPOST v1/terminals/\r\n{\r\n    \"nickname\":\"NICKNAME\",\r\n    \"registration_code\":\"******\"\r\n}"
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModel
          text/json:
            schema:
              $ref: >-
                #/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModel
          application/*+json:
            schema:
              $ref: >-
                #/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModel
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterResponseModel
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest'
        '429':
          description: Too Many Requests
components:
  schemas:
    Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModel:
      required:
        - nickname
        - registrationCode
      type: object
      properties:
        registration_code:
          minLength: 1
          type: string
          description: >-
            Registration code is listed on your powered up terminal.  This is a
            6 character code.
        device_id:
          type: string
          description: >-
            Device identifier is on the back of your terminal.  This is an 8
            character code. Required for Canadian processing.
          nullable: true
        nickname:
          maxLength: 20
          minLength: 1
          pattern: ^[0-9A-Za-z _-]*$
          type: string
          description: >-
            Terminal nickname will be displayed on the terminal, and in the
            console.
        configuration:
          $ref: >-
            #/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModelConfiguration
      additionalProperties: false
    Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterResponseModel:
      required:
        - requestId
      type: object
      properties:
        terminals:
          type: array
          items:
            $ref: >-
              #/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalViewModel
          nullable: true
        request_id:
          maxLength: 100
          minLength: 1
          type: string
          default: '000000000000000000000'
        errors:
          type: array
          items:
            $ref: >-
              #/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError
          nullable: true
      additionalProperties: false
    Ecrypt.Gateway.Api.Core.Model.BadRequest:
      required:
        - requestId
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequestError'
          nullable: true
        request_id:
          maxLength: 100
          minLength: 1
          type: string
          default: '000000000000000000000'
      additionalProperties: false
    Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModelConfiguration:
      type: object
      properties:
        prompt_tip:
          type: boolean
          description: >-
            Prompt for Tip will display tip at time of sale options.  If your
            account does not support tip at time of sale this option will be
            ignored.
          nullable: true
        tip_amounts:
          type: array
          items:
            type: number
            format: double
          description: "Tip amounts in dollar format.  Terminals can support 3 or 4 tip amounts depending on the terminal.  Any extra items will be ignored.  This is required if you set Prompt for Tip to true.\r\n\r\nExample: [28.23, 33.88, 37.65, 41.41]"
          nullable: true
        prompt_cvv:
          type: boolean
          description: >-
            Prompt for CVV/CVC will attempt to override the card verification
            requirement and force CVV/CVC input.
          nullable: true
        prompt_postal_code:
          type: boolean
          description: >-
            Prompt for Postal Code will allow the customer to enter their
            billing postal code.
          nullable: true
        prompt_amount_confirmation:
          type: boolean
          description: >-
            Prompt for Amount Confirmation will force the customer to approve
            the transaction amount.
          nullable: true
        prompt_signature:
          type: boolean
          description: >-
            Prompt for Signature will show the signature screen on compatible
            terminals.
          nullable: true
        key_card:
          type: boolean
          description: Prompt Key Card will allow you to manually enter the card details.
          nullable: true
      additionalProperties: false
    Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalViewModel:
      type: object
      properties:
        id:
          type: string
          nullable: true
        make:
          type: string
          nullable: true
        model:
          type: string
          nullable: true
        serial_number:
          type: string
          nullable: true
        nickname:
          type: string
          nullable: true
        status:
          type: string
          nullable: true
      additionalProperties: false
    Ecrypt.Gateway.Api.Core.Model.ResponseBaseError:
      type: object
      properties:
        type:
          type: string
          nullable: true
        message:
          nullable: true
      additionalProperties: false
    Ecrypt.Gateway.Api.Core.Model.BadRequestError:
      type: object
      properties:
        type:
          type: string
          nullable: true
        message:
          nullable: true
      additionalProperties: false

````