Rootline in person payments API

Rootline in person payments API as documented publicly: 16 operations. Contract generated from the documentation by API Evangelist (2026-10-29); not the provider's own document.

Operations 16

POST /payments Start a payment by sending a POST /payments request to Rootline with the payment_rails.payment_device_id. #
GET /v1/apps GET /v1/apps #
POST /v1/apps Create an app in Rootline after publishing on PAX. #
GET /v1/apps/app_4MOgDpxvtIbL2mJJwNPdxZ/app-versions Retrieve app versions for a specific app. #
POST /v1/apps/{appId}/app-versions Create a new version of an app in Rootline. #
GET /v1/payment-devices GET /v1/payment-devices #
GET /v1/payment-devices/device_1RCfEQ9KCY0chTiZ1QuSiN Retrieve a payment device and check the installation status of its apps. #
GET /v1/payment-devices/device_1RCfEQ9KCY0chTiZ1QuSiN/apps Retrieve apps installed on a specific payment device. #
GET /v1/payment-devices/device_1RCfEQ9KCY0chTiZ1QuSiN/apps/appdev_1NUZfweIVsX0HIQ5Vhx7gc Retrieve details of a specific app installed on a payment device. #
POST /v1/payment-devices/{id}/assigned-accounts Assign an account to a payment device. #
DELETE /v1/payment-devices/{id}/assigned-accounts/{accountId} Remove an account from a payment device. #
POST /v1/payment-devices/{paymentDeviceId}/apps Assign an app version to a payment device. #
DELETE /v1/payment-devices/{paymentDeviceId}/apps/{paymentDeviceAppId} Uninstall an app from a payment device. #
PATCH /v1/payment-devices/{paymentDeviceId}/apps/{paymentDeviceAppId} Update an app version on a payment device. #
GET /v1/payments/{paymentid}/abort GET /v1/payments/{paymentId}/abort #
POST /v1/payments/{paymentId}/abort Attempt to abort a payment on the terminal. #

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/rootline:in-person-payments-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

rootline-in-person-payments-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Rootline in person payments API
  version: '2026-10-29'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-29: 16 operation(s) read from 4 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Rootline has published no machine-readable contract that the
    pipeline could find. Engine: anthropic.'
  x-evidence-tiers:
    code-example: 8
    documentation: 22
    pages-with-code: 12
    pages-read: 17
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-29'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://docs.rootline.com/guides/in-person-payments/accept-in-person-payments
  - https://docs.rootline.com/guides/in-person-payments/app-development
  - https://docs.rootline.com/guides/in-person-payments/assign-accounts-to-devices
  - https://docs.rootline.com/guides/in-person-payments/connect-sdk
  x-docs-section: in-person-payments
servers:
- url: https://payment-api.staging.rootline.com
paths:
  /payments:
    post:
      operationId: post_payments
      tags:
      - Payments
      summary: Start a payment by sending a POST /payments request to Rootline with the payment_rails.payment_device_id.
      x-source: https://docs.rootline.com/guides/in-person-payments/connect-sdk
      parameters:
      - name: payment_rails.payment_device_id
        in: query
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPaymentsResponse'
      x-evidence:
        kind: documentation
  /v1/apps:
    get:
      operationId: get_v1_apps
      tags:
      - Apps
      summary: GET /v1/apps
      x-source: https://docs.rootline.com/guides/in-person-payments/app-development
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl 'https://config-api.staging.rootline.com/v1/apps'  - - request POST  - - header 'content-type: application/json'  - - header\
          \ 'x-api-key: [paste-your-api-key]'  - - header 'rootline-version: 2024-04-23'  - - data ' { \n \"display_name\" : \"Your app name\"\
          \ , \n \"package_name\" : \"com.merchant.app\" \n } ' \n Create an app version \n After that, or when updating the app version, create\
          \ the version in Root"
    post:
      operationId: post_v1_apps
      tags:
      - Apps
      summary: Create an app in Rootline after publishing on PAX.
      x-source: https://docs.rootline.com/guides/in-person-payments/app-development
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AppsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/apps/app_4MOgDpxvtIbL2mJJwNPdxZ/app-versions:
    get:
      operationId: get_v1_apps_app_4MOgDpxvtIbL2mJJwNPdxZ_app_versions
      tags:
      - Apps
      summary: Retrieve app versions for a specific app.
      x-source: https://docs.rootline.com/guides/in-person-payments/app-development
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/apps/{appId}/app-versions:
    post:
      operationId: post_v1_apps_appId_app_versions
      tags:
      - Apps
      summary: Create a new version of an app in Rootline.
      x-source: https://docs.rootline.com/guides/in-person-payments/app-development
      parameters:
      - name: appId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AppsAppidAppVersionsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/payment-devices:
    get:
      operationId: get_v1_payment_devices
      tags:
      - Payment Devices
      summary: GET /v1/payment-devices
      x-source: https://docs.rootline.com/guides/in-person-payments/assign-accounts-to-devices
      parameters:
      - name: serial_number
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl 'https://config-api.staging.rootline.com/v1/payment-devices?serial_number=1490123456'  - - header 'x-api-key: [paste-your-api-key]'\
          \  - - header 'rootline-version: 2024-04-23' \n Serial numbers are unique per device, so the response contains at most one entry. An\
          \ empty data array means no device with that serial is visible to you yet — double-check the serial, or reach out to your Rootline poin"
  /v1/payment-devices/device_1RCfEQ9KCY0chTiZ1QuSiN:
    get:
      operationId: get_v1_payment_devices_device_1RCfEQ9KCY0chTiZ1QuSiN
      tags:
      - Payment Devices
      summary: Retrieve a payment device and check the installation status of its apps.
      x-source: https://docs.rootline.com/guides/in-person-payments/app-development
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/payment-devices/device_1RCfEQ9KCY0chTiZ1QuSiN/apps:
    get:
      operationId: get_v1_payment_devices_device_1RCfEQ9KCY0chTiZ1QuSiN_apps
      tags:
      - Payment Devices
      summary: Retrieve apps installed on a specific payment device.
      x-source: https://docs.rootline.com/guides/in-person-payments/app-development
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/payment-devices/device_1RCfEQ9KCY0chTiZ1QuSiN/apps/appdev_1NUZfweIVsX0HIQ5Vhx7gc:
    get:
      operationId: get_v1_payment_devices_device_1RCfEQ9KCY0chTiZ1QuSiN_apps_appdev_1NUZfweIVsX0HIQ
      tags:
      - Payment Devices
      summary: Retrieve details of a specific app installed on a payment device.
      x-source: https://docs.rootline.com/guides/in-person-payments/app-development
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/payment-devices/{id}/assigned-accounts:
    post:
      operationId: post_v1_payment_devices_id_assigned_accounts
      tags:
      - Payment Devices
      summary: Assign an account to a payment device.
      x-source: https://docs.rootline.com/guides/in-person-payments/assign-accounts-to-devices
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1PaymentDevicesIdAssignedAccountsRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1PaymentDevicesIdAssignedAccountsResponse'
      x-evidence:
        kind: documentation
  /v1/payment-devices/{id}/assigned-accounts/{accountId}:
    delete:
      operationId: delete_v1_payment_devices_id_assigned_accounts_accountId
      tags:
      - Payment Devices
      summary: Remove an account from a payment device.
      x-source: https://docs.rootline.com/guides/in-person-payments/assign-accounts-to-devices
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: accountId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteV1PaymentDevicesIdAssignedAccountsAccountidResponse'
      x-evidence:
        kind: documentation
  /v1/payment-devices/{paymentDeviceId}/apps:
    post:
      operationId: post_v1_payment_devices_paymentDeviceId_apps
      tags:
      - Payment Devices
      summary: Assign an app version to a payment device.
      x-source: https://docs.rootline.com/guides/in-person-payments/app-development
      parameters:
      - name: paymentDeviceId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1PaymentDevicesPaymentdeviceidAppsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/payment-devices/{paymentDeviceId}/apps/{paymentDeviceAppId}:
    delete:
      operationId: delete_v1_payment_devices_paymentDeviceId_apps_paymentDeviceAppId
      tags:
      - Payment Devices
      summary: Uninstall an app from a payment device.
      x-source: https://docs.rootline.com/guides/in-person-payments/app-development
      parameters:
      - name: paymentDeviceId
        in: path
        required: true
        schema:
          type: string
      - name: paymentDeviceAppId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteV1PaymentDevicesPaymentdeviceidAppsPaymentdeviceappidR'
      x-evidence:
        kind: documentation
    patch:
      operationId: patch_v1_payment_devices_paymentDeviceId_apps_paymentDeviceAppId
      tags:
      - Payment Devices
      summary: Update an app version on a payment device.
      x-source: https://docs.rootline.com/guides/in-person-payments/app-development
      parameters:
      - name: paymentDeviceId
        in: path
        required: true
        schema:
          type: string
      - name: paymentDeviceAppId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchV1PaymentDevicesPaymentdeviceidAppsPaymentdeviceappidRe'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/payments/{paymentid}/abort:
    get:
      operationId: get_v1_payments_paymentid_abort
      tags:
      - Payments
      summary: GET /v1/payments/{paymentId}/abort
      x-source: https://docs.rootline.com/guides/in-person-payments/accept-in-person-payments
      parameters:
      - name: paymentid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1PaymentsPaymentidAbortResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl 'https://payment-api.staging.rootline.com/v1/payments/{payment_id}/abort'  - - request POST  - - header 'content-type:\
          \ application/json'  - - header 'x-api-key: [paste-your-api-key]'  - - header 'rootline-version: 2024-04-23' \n Error handling \nThe\
          \ abort endpoint only supports In-person payments with an open checkout status. Sending the request for an ecommerce payment, or an\
          \ in-person payment"
  /v1/payments/{paymentId}/abort:
    post:
      operationId: post_v1_payments_paymentId_abort
      tags:
      - Payments
      summary: Attempt to abort a payment on the terminal.
      x-source: https://docs.rootline.com/guides/in-person-payments/accept-in-person-payments
      parameters:
      - name: paymentId
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
security:
- apiKey: []
components:
  schemas:
    PostPaymentsResponse:
      type: object
      properties:
        checkout_status:
          type: string
          description: The status of the checkout, e.g. open
    PostV1AppsRequest:
      type: object
      properties:
        display_name:
          type: string
          description: The display name of the app
        package_name:
          type: string
          description: The Android package name that matches the name published on PAX
      required:
      - display_name
      - package_name
    PostV1AppsAppidAppVersionsRequest:
      type: object
      properties:
        version:
          type: string
          description: The version number in MAJOR.MINOR.PATCH format
        version_code:
          type: string
          description: The monotonic ordering key that increases with each new version
      required:
      - version
      - version_code
    PostV1PaymentDevicesIdAssignedAccountsRequest:
      type: object
      properties:
        account_id:
          type: string
      required:
      - account_id
    PostV1PaymentDevicesIdAssignedAccountsResponse:
      type: object
      properties:
        id:
          type: string
        assigned_account_ids:
          type: array
    DeleteV1PaymentDevicesIdAssignedAccountsAccountidResponse:
      type: object
      properties:
        id:
          type: string
        assigned_account_ids:
          type: array
    PostV1PaymentDevicesPaymentdeviceidAppsRequest:
      type: object
      properties:
        app_version_id:
          type: string
          description: The ID of the app version to install
      required:
      - app_version_id
    DeleteV1PaymentDevicesPaymentdeviceidAppsPaymentdeviceappidR:
      type: object
      properties:
        installed_app:
          type: object
          description: The installed app as it was before removal
    PatchV1PaymentDevicesPaymentdeviceidAppsPaymentdeviceappidRe:
      type: object
      properties:
        app_version_id:
          type: string
          description: The ID of the new app version to update to
      required:
      - app_version_id
    GetV1PaymentsPaymentidAbortResponse:
      type: object
      properties:
        http_status_code:
          type: integer
        error_type:
          type: string
        error_code:
          type: string
        error_message:
          type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
tags:
- name: Apps
- name: Payment Devices
- name: Payments