National Australia Bank Create and Update devices API

Create and update terminal devices.

Operations 2

POST /dms/v2/devices Create device or terminal #
PATCH /dms/v2/devices/{id} Update a device or 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/national-australia-bank:national-australia-bank-create-and-update-devices-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

national-australia-bank-create-and-update-devices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
  version: 0.0.1
  title: CyberSource Merged Spec Create and Update devices API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: Create and Update devices
  description: Create and update terminal devices.
paths:
  /dms/v2/devices:
    post:
      summary: Create device or terminal
      description: Create a device or terminal for a merchant.
      tags:
      - Create and Update devices
      operationId: createDevice
      responses:
        '201':
          description: OK
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: string
                    description: A globally unique device ID identifying the newly created terminal.
                    maxLength: 36
                  deviceExternalId:
                    type: string
                    description: An identifier in the partner system which is used to setup the terminal firmware, software and configurations.
                    maxLength: 64
                  cardEncryptionKsi:
                    type: string
                    description: Key serial identifier of the card encryption BDK that is loaded on this device.
                    maxLength: 32
                  cardEncryptionKeyName:
                    type: string
                    description: An optional name of the card encryption BDK that is loaded on this device.
                    maxLength: 64
                  pinEncryptionKsi:
                    type: string
                    description: Key serial identifier of the PIN encryption BDK that is loaded on this device.
                    maxLength: 32
                  pinEncryptionKeyName:
                    type: string
                    description: An optional name of the PIN BDK that is loaded on this device,
                    maxLength: 64
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
        '400':
          description: Bad Request
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the submitted request.
                    enum:
                    - BAD_REQUEST
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
                  code:
                    type: string
                    description: An optional short string which identifies the exact error.
                  details:
                    type: array
                    description: An optional array which provides more details of the error.
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: This is the flattened JSON object field name/path that is either missing or invalid.
                        reason:
                          type: string
                          description: 'Possible reasons for the error.

                            '
                        code:
                          type: string
                          description: An optional short string which identifies the exact field error.
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
        '401':
          description: Unauthorized
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: 'The status of the submitted request.

                      '
                    enum:
                    - UNAUTHORIZED
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
                  code:
                    type: string
                    description: An optional short string which identifies the exact error.
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
        '403':
          description: Forbidden
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: 'The status of the submitted request.

                      '
                    enum:
                    - FORBIDDEN
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
                  code:
                    type: string
                    description: An optional short string which identifies the exact error.
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
        '500':
          description: Unexpected system error or system timeout.
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: 'The status of the submitted request.

                      '
                    enum:
                    - INTERNAL_SERVER_ERROR
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
                  code:
                    type: string
                    description: An optional short string which identifies the exact error.
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
      x-example:
        example0:
          summary: Create a device based on input parameters.
          value:
            merchantId: testrest
            type: Terminal
            partName: MIURA M010
            serialNumber: '456345234'
            hardwareRevision: '234563'
            p2peStatus: DISABLED
        example1:
          summary: Create a Tap to Phone device based on input parameters.
          value:
            merchantId: testrest
            type: MOBILE
            partName: TAP_TO_PHONE Android
            description: TTP device
            serialNumber: '999725121439341'
            hardwareRevision: Samsung_Z4
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              type: object
              required:
              - merchantId
              - type
              - partName
              properties:
                merchantId:
                  type: string
                  description: 'Merchant ID associated to the new device or terminal.

                    This merchant ID will be treated as the primary for this terminal.

                    '
                  maxLength: 30
                type:
                  type: string
                  description: Device type
                  enum:
                  - TERMINAL
                  - MOBILE
                  maxLength: 64
                partName:
                  type: string
                  description: 'Name of the device as identified in CyberSource catalog. This should be one of the supported CyberSource device.

                    This field is optional if make and model are provided.

                    '
                  enum:
                  - VERIFONE E355
                  - VERIFONE P400
                  - VERIFONE M400
                  - INGENICO LINK 2500
                  - INGENICO LANE 3000
                  - INGENICO LANE 5000
                  - PAX A920
                  - PAX S80
                  - PAX D135
                  - PAX SP30
                  - PAX S300
                  - PAX A80
                  - PAX Aries 6
                  - PAX Aries 8
                  - PAX E600
                  - PAX E700
                  - PAX E800
                  - PAX E800 lite
                  - PAX A60
                  - PAX Q20
                  - PAX IM30
                  - PAX A920 MAX
                  - Tap_to_Phone Android
                  maxLength: 64
                make:
                  type: string
                  description: Device or Terminal manufacturer.
                  enum:
                  - PAX
                  - Verifone
                  - Ingenico
                  - Tap_to_Phone
                model:
                  type: string
                  description: Device or Terminal model.
                  enum:
                  - E355
                  - P400
                  - M400
                  - LINK 2500
                  - LANE 3000
                  - LANE 5000
                  - A920
                  - S80
                  - D135
                  - SP30
                  - S300
                  - A80
                  - Aries 6
                  - Aries 8
                  - E600
                  - E700
                  - E800
                  - E800 lite
                  - A60
                  - Q20
                  - IM30
                  - A920 MAX
                  - Android
                description:
                  type: string
                  description: An optional description or label for this terminal.
                  maxLength: 128
                deviceExternalId:
                  type: string
                  description: An identifier in the partner system which is used setup the terminal firmware, software and configurations.
                  maxLength: 64
                paymentProcessor:
                  description: Payment processor details associated to this terminal.
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Payment processor name.
                      terminalId:
                        type: string
                        description: ID associated with payment processing for this terminal.
                serialNumber:
                  type: string
                  description: 'Serial number of the terminal.

                    Once set, serialNumber cannot be updated to a new value.

                    '
                  maxLength: 64
                cardEncryptionKsi:
                  type: string
                  description: Key serial identifier of the card encryption BDK that is loaded on this device.
                  maxLength: 32
                cardEncryptionKeyName:
                  type: string
                  description: An optional name of the card encryption BDK that is loaded on this device.
                  maxLength: 64
                pinEncryptionKsi:
                  type: string
                  description: Key serial identifier of the PIN encryption BDK that is loaded on this device.
                  maxLength: 32
                pinEncryptionKeyName:
                  type: string
                  description: An optional name of the PIN BDK that is loaded on this device.
                  maxLength: 64
                hardwareRevision:
                  type: string
                  description: Device or terminal hardware revison number.
                  maxLength: 64
                firmwareVersion:
                  type: string
                  description: Device or terminal firmware or OS version.
                  maxLength: 64
                paymentSoftwareVersion:
                  type: string
                  description: Device or terminal payment software version.
                  maxLength: 64
                configVersion:
                  type: string
                  description: Device or terminal software configuration profile version.
                  maxLength: 64
                teBagSerialNumber:
                  type: string
                  description: Serial number of the tamper evident bag used for shipping the terminal.
                  maxLength: 64
                shippedDateInUTC:
                  type: string
                  format: date-time
                  description: '

                    Terminal shipped date in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                    Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the time. The Z indicates UTC.

                    '
                shippingTrackingNumber:
                  type: string
                  description: Tracking number from the shipping carrier.
                  maxLength: 128
                status:
                  type: string
                  description: 'Status of the terminal. Status cannot be made active without setting paymentProcessor, terminalId and serialNumber.

                    statusChangeReason should be "In Production" for active terminals.

                    '
                  enum:
                  - Active
                  - Inactive
                  default: Inactive
                statusChangeReason:
                  type: string
                  description: Reason for change in status.
                  enum:
                  - In Production
                  - Pending Setup
                  - Other
                ticketNumber:
                  type: string
                  description: An optional ticket number to track the device state.
                  maxLength: 128
                comment:
                  type: string
                  description: An addtional comment about the device state.
                  maxLength: 256
                p2peStatus:
                  type: string
                  description: P2PE status of the terminal.
                  enum:
                  - Enabled
                  - Disabled
                p2peConfirmation:
                  type: string
                  description: 'P2PE confirmation status from the merchant.

                    This is recorded only if p2peStatus is "Enabled".

                    '
                  enum:
                  - Pending
                  - Confirmed
                  - Rejected
                p2peConfirmationDateInUTC:
                  type: string
                  format: date-time
                  description: '

                    P2PE confirmation timestamp in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`

                    Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the time. The Z indicates UTC.

                    This is recorded only if p2peConfirmation is "Confirmed".

                    '
        description: A new device or terminal.
  /dms/v2/devices/{id}:
    patch:
      summary: Update a device or terminal
      description: Update a device or terminal for a merchant.
      tags:
      - Create and Update devices
      operationId: updateDevice
      parameters:
      - name: id
        in: path
        required: true
        description: Device ID
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
        '400':
          description: Bad Request
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: The status of the submitted request.
                    enum:
                    - BAD_REQUEST
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
                  code:
                    type: string
                    description: An optional short string which identifies the exact error.
                  details:
                    type: array
                    description: An optional array which provides more details of the error.
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: This is the flattened JSON object field name/path that is either missing or invalid.
                        reason:
                          type: string
                          description: 'Possible reasons for the error.

                            '
                        code:
                          type: string
                          description: An optional short string which identifies the exact field error.
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
        '401':
          description: Unauthorized
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: 'The status of the submitted request.

                      '
                    enum:
                    - UNAUTHORIZED
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
                  code:
                    type: string
                    description: An optional short string which identifies the exact error.
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
        '403':
          description: Forbidden
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: 'The status of the submitted request.

                      '
                    enum:
                    - FORBIDDEN
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
                  code:
                    type: string
                    description: An optional short string which identifies the exact error.
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
        '500':
          description: Unexpected system error or system timeout.
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: 'The status of the submitted request.

                      '
                    enum:
                    - INTERNAL_SERVER_ERROR
                  message:
                    type: string
                    description: The detail message related to the status and reason listed above.
                  code:
                    type: string
                    description: An optional short string which identifies the exact error.
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                      Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the

                      time. The Z indicates UTC.

                      '
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              type: object
              required:
              - merchantId
              properties:
                merchantId:
                  type: string
                  description: 'Merchant ID associated to the new device or terminal.

                    This merchant ID will be treated as the primary for this terminal.

                    '
                  maxLength: 30
                description:
                  type: string
                  description: An optional description or label for this terminal.
                  maxLength: 128
                deviceExternalId:
                  type: string
                  description: An identifier in the partner system which is used setup the terminal firmware, software and configurations.
                  maxLength: 64
                paymentProcessor:
                  description: Payment processor details associated to this terminal.
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Payment processor name.
                      terminalId:
                        type: string
                        description: ID associated with payment processing for this terminal.
                serialNumber:
                  type: string
                  description: 'Serial number of the terminal.

                    Once set, serialNumber cannot be updated to a new value.

                    '
                  maxLength: 64
                cardEncryptionKsi:
                  type: string
                  description: Key serial identifier of the card encryption BDK that is loaded on this device.
                  maxLength: 32
                cardEncryptionKeyName:
                  type: string
                  description: An optional name of the card encryption BDK that is loaded on this device.
                  maxLength: 64
                pinEncryptionKsi:
                  type: string
                  description: Key serial identifier of the PIN encryption BDK that is loaded on this device.
                  maxLength: 32
                pinEncryptionKeyName:
                  type: string
                  description: An optional name of the PIN BDK that is loaded on this device.
                  maxLength: 64
                hardwareRevision:
                  type: string
                  description: Device or terminal hardware revison number.
                  maxLength: 64
                firmwareVersion:
                  type: string
                  description: Device or terminal firmware or OS version.
                  maxLength: 64
                paymentSoftwareVersion:
                  type: string
                  description: Device or terminal payment software version.
                  maxLength: 64
                configVersion:
                  type: string
                  description: Device or terminal software configuration profile version.
                  maxLength: 64
                teBagSerialNumber:
                  type: string
                  description: Serial number of the tamper evident bag used for shipping the terminal.
                  maxLength: 64
                shippedDateInUTC:
                  type: string
                  format: date-time
                  description: '

                    Terminal shipped date in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`


                    Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the time. The Z indicates UTC.

                    '
                shippingTrackingNumber:
                  type: string
                  description: Tracking number from the shipping carrier.
                  maxLength: 128
                status:
                  type: string
                  description: 'Status of the terminal. Status cannot be made active without setting paymentProcessor, terminalId and serialNumber.

                    statusChangeReason should be "In Production" for active terminals.

                    '
                  enum:
                  - Active
                  - Inactive
                  default: Inactive
                statusChangeReason:
                  type: string
                  description: "Reason for change in status.\nTerminals only with following exsting statusChangeReason can be updated:\n    -- In Production\n    -- Pending Setup\n    -- Other\n"
                  enum:
                  - In Production
                  - Pending Setup
                  - Returned
                  - Replaced
                  - Lost/Stolen
                  - Broken/Damaged
                  - End of Life
                  - Other
                replacementReason:
                  type: string
                  description: 'Reason for replacement of this device.

                    This is only recorded if statusChangeReason is "Replaced".

                    '
                  enum:
                  - Chip Read Error
                  - Compromised
                  - Incorrect Key Injection
                  - Incorrect Password
                  - Power Issue
                  - Suspected Tampering
                  - Tampered
                  - Terminal Error
                  - Other
                replacementSerialNumber:
                  type: string
                  description: 'The serial number of the device that replaces the current one.

                    This is only recorded if statusChangeReason is "Replaced".

                    '
                  maxLength: 64
                ticketNumber:
                  type: string
                  description: An optional ticket number to track the device state.
                  maxLength: 128
                comment:
                  type: string
                  description: An addtional comment about the device state.
                  maxLength: 256
                p2peStatus:
                  type: string
                  description: 'P2PE status of the terminal.

                    If existing p2peStatus is "Disabled", it cannot be switched back to "Enabled".

                    '
                  enum:
                  - Enabled
                  - Disabled
                p2peConfirmation:
                  type: string
                  description: 'P2PE confirmation status from the merchant.

                    This is recorded only if p2peStatus is "Enabled".

                    '
                  enum:
                  - Pending
                  - Confirmed
                  - Rejected
                p2peConfirmationDateInUTC:
                  type: string
                  format: date-time
                  description: '

                    P2PE confirmation timestamp in UTC. `Format: YYYY-MM-DDThh:mm:ssZ`.

                    Example 2016-08-11T22:47:57Z equals August 11, 2016, at 22:47:57 (10:47:57 p.m.). The T separates the date and the time. The Z indicates UTC.

                    This is recorded only if p2peConfirmation is "Confirmed".

                    '
        description: Update a device or terminal.