Nomba Accounts API

The Nomba Accounts API enables developers to manage business accounts on the Nomba platform. It provides endpoints for retrieving account details, fetching terminals assigned to an account, and managing account-level configurations. This API serves as the foundation for account management operations within the Nomba ecosystem.

OpenAPI Specification

nomba-accounts-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Nomba Accounts API
  description: >-
    The Nomba Accounts API enables developers to manage business accounts on
    the Nomba platform. It provides endpoints for retrieving account details,
    fetching the parent account balance, and listing terminals assigned to an
    account. This API serves as the foundation for account management
    operations within the Nomba ecosystem.
  version: '1.0.0'
  contact:
    name: Nomba Developer Support
    url: https://developer.nomba.com
  termsOfService: https://nomba.com/terms
externalDocs:
  description: Nomba Accounts API Documentation
  url: https://developer.nomba.com/nomba-api-reference/accounts/fetch-terminals-assigned-to-an-account
servers:
  - url: https://api.nomba.com
    description: Production Server
  - url: https://sandbox.nomba.com
    description: Sandbox Server
tags:
  - name: Accounts
    description: >-
      Endpoints for managing Nomba business accounts, retrieving account
      details, balances, and terminal assignments.
security:
  - bearerAuth: []
paths:
  /v1/accounts:
    get:
      operationId: fetchParentAccountDetails
      summary: Fetch parent account details
      description: >-
        Retrieves the details of the authenticated parent business account,
        including account information and configuration.
      tags:
        - Accounts
      parameters:
        - $ref: '#/components/parameters/accountId'
      responses:
        '200':
          description: Account details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDetailsResponse'
        '401':
          description: Unauthorized - invalid or missing access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/accounts/balance:
    get:
      operationId: fetchParentAccountBalance
      summary: Fetch parent account balance
      description: >-
        Retrieves the current balance of the authenticated parent business
        account. Returns the available and ledger balances for the account.
      tags:
        - Accounts
      parameters:
        - $ref: '#/components/parameters/accountId'
      responses:
        '200':
          description: Account balance retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountBalanceResponse'
        '401':
          description: Unauthorized - invalid or missing access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v1/accounts/{accountId}/terminals:
    get:
      operationId: fetchTerminalsAssignedToAccount
      summary: Fetch terminals assigned to an account
      description: >-
        Retrieves the list of POS terminals that are currently assigned to
        the specified account. Each terminal includes its identifier and
        configuration details.
      tags:
        - Accounts
      parameters:
        - $ref: '#/components/parameters/accountIdPath'
        - $ref: '#/components/parameters/accountId'
      responses:
        '200':
          description: Terminals list retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TerminalsResponse'
        '401':
          description: Unauthorized - invalid or missing access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Account not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        OAuth2 bearer token obtained from the Nomba Authentication API.
  parameters:
    accountId:
      name: accountId
      in: header
      required: true
      description: >-
        The unique identifier of the parent business account.
      schema:
        type: string
    accountIdPath:
      name: accountId
      in: path
      required: true
      description: >-
        The unique identifier of the account to fetch terminals for.
      schema:
        type: string
  schemas:
    AccountDetailsResponse:
      type: object
      properties:
        code:
          type: string
          description: >-
            Response status code.
          example: '00'
        description:
          type: string
          description: >-
            Human-readable description of the response.
          example: Success
        data:
          $ref: '#/components/schemas/Account'
    AccountBalanceResponse:
      type: object
      properties:
        code:
          type: string
          description: >-
            Response status code.
          example: '00'
        description:
          type: string
          description: >-
            Human-readable description of the response.
          example: Success
        data:
          type: object
          properties:
            accountId:
              type: string
              description: >-
                The unique identifier of the account.
            balance:
              type: number
              format: double
              description: >-
                The current available balance of the account.
            currency:
              type: string
              description: >-
                The currency of the balance.
              example: NGN
    TerminalsResponse:
      type: object
      properties:
        code:
          type: string
          description: >-
            Response status code.
          example: '00'
        description:
          type: string
          description: >-
            Human-readable description of the response.
          example: Success
        data:
          type: object
          properties:
            results:
              type: array
              description: >-
                List of terminals assigned to the account.
              items:
                $ref: '#/components/schemas/Terminal'
    Account:
      type: object
      properties:
        accountId:
          type: string
          description: >-
            The unique identifier for the account.
        accountName:
          type: string
          description: >-
            The name associated with the account.
        accountType:
          type: string
          description: >-
            The type of the account.
        status:
          type: string
          description: >-
            The current status of the account.
        currency:
          type: string
          description: >-
            The currency associated with the account.
          example: NGN
        createdAt:
          type: string
          format: date-time
          description: >-
            The date and time the account was created.
    Terminal:
      type: object
      properties:
        terminalId:
          type: string
          description: >-
            The unique identifier for the terminal.
        serialNumber:
          type: string
          description: >-
            The serial number of the POS terminal.
        status:
          type: string
          description: >-
            The current status of the terminal.
        assignedAt:
          type: string
          format: date-time
          description: >-
            The date and time the terminal was assigned to the account.
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: >-
            Error status code.
        description:
          type: string
          description: >-
            Human-readable description of the error.
        errors:
          type: array
          description: >-
            List of specific error details.
          items:
            type: string