Innago Invoices API

Manage invoices

OpenAPI Specification

innago-invoices-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Innago Expenses Invoices API
  description: REST API for Innago property management platform enabling programmatic access to properties, units, tenants, leases, invoices, payments, expenses, and maintenance tickets. Authentication uses Bearer token and API key headers.
  version: v1
  contact:
    name: Innago Support
    url: https://innago.com/contact/
    email: support@innago.com
  termsOfService: https://auth.innago.com/termsandcondition
servers:
- url: https://api-my.innago.com/openapi
  description: Innago production API
security:
- BearerAuth: []
  ApiKeyAuth: []
tags:
- name: Invoices
  description: Manage invoices
paths:
  /v1/invoices:
    get:
      operationId: listInvoices
      summary: Get all invoices
      description: Get all invoices for a PO based on lease id and tenant id.
      tags:
      - Invoices
      parameters:
      - name: leaseUid
        in: query
        schema:
          type: string
          format: uuid
        description: leaseUid for which invoices need to be fetched
      - name: tenantUid
        in: query
        schema:
          type: string
          format: uuid
        description: tenantUid for which invoices need to be fetched
      - name: pageNumber
        in: query
        schema:
          type: integer
        description: PageNumber is the number of page requested
      responses:
        '200':
          description: List of invoices
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceShortInfoListResponseModelResponse'
    post:
      operationId: createInvoice
      summary: Create an invoice
      description: Create an invoice for a specific tenant for a lease.
      tags:
      - Invoices
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInvoiceModel'
      responses:
        '200':
          description: Invoice created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateInvoiceResponseModelResponse'
  /v1/invoices/{invoiceUid}:
    get:
      operationId: getInvoice
      summary: Get an invoice by ID
      description: Get an invoice based on invoice id.
      tags:
      - Invoices
      parameters:
      - name: invoiceUid
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: The unique identifier of an invoice
      responses:
        '200':
          description: Invoice details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceShortInfoResponseModelResponse'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        errorMessage:
          type: string
          nullable: true
        errorCode:
          type: string
          nullable: true
    InvoiceShortInfoListResponseModelResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            invoiceShortInfoResponseModel:
              type: array
              items:
                $ref: '#/components/schemas/InvoiceShortInfoModel'
            pagingModel:
              $ref: '#/components/schemas/PagingModel'
        error:
          $ref: '#/components/schemas/ErrorResponse'
    InvoiceShortInfoModel:
      type: object
      properties:
        invoiceNumber:
          type: integer
          format: int64
        invoiceUid:
          type: string
          format: uuid
        invoiceDueDate:
          type: string
          format: date-time
        invoiceStatus:
          type: string
          description: Pending, Fully Paid, Partially Paid
        amount:
          type: number
          format: double
        entityType:
          type: string
    CreateInvoiceModel:
      type: object
      required:
      - tenantUid
      - leaseUid
      - amount
      - dueDate
      properties:
        tenantUid:
          type: string
          format: uuid
        leaseUid:
          type: string
          format: uuid
        amount:
          type: number
          format: double
        item:
          type: string
        dueDate:
          type: string
          format: date-time
    PagingModel:
      type: object
      properties:
        pageSize:
          type: integer
        currentPage:
          type: integer
        pageCount:
          type: integer
        totalRecords:
          type: integer
    CreateInvoiceResponseModelResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            invoiceUid:
              type: string
              format: uuid
        error:
          $ref: '#/components/schemas/ErrorResponse'
    InvoiceShortInfoResponseModelResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/InvoiceShortInfoModel'
        error:
          $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key