Innago Payments API

Manage payments

OpenAPI Specification

innago-payments-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Innago Expenses Payments 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: Payments
  description: Manage payments
paths:
  /v1/invoices/{invoiceUid}/payments:
    post:
      operationId: recordPaymentByInvoice
      summary: Record payment towards an invoice
      description: Record payment towards invoice of a tenant.
      tags:
      - Payments
      parameters:
      - name: invoiceUid
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: invoiceId should be the Id of specific invoice
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordPaymentRequestModel'
      responses:
        '200':
          description: Payment recorded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordPaymentResponseModelResponse'
  /v1/payments:
    get:
      operationId: listPayments
      summary: Get all payments
      description: Get all payments based on filter. DueInMonth and DueInYear are mandatory. PropertyUid is mandatory for PropertyUnitUid. PropertyUid and PropertyUnitUid are mandatory for TenantUid.
      tags:
      - Payments
      parameters:
      - name: DueInMonth
        in: query
        required: true
        schema:
          type: integer
        description: The month in which requested payment was due
      - name: DueInYear
        in: query
        required: true
        schema:
          type: integer
        description: The year in which requested payment was due
      - name: PropertyUid
        in: query
        schema:
          type: string
          format: uuid
      - name: PropertyUnitUid
        in: query
        schema:
          type: string
          format: uuid
      - name: TenantUid
        in: query
        schema:
          type: string
          format: uuid
      - name: PageNumber
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: List of payments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentWithAdditionalInfoListResponseResponse'
  /v1/payments/{paymentUid}:
    get:
      operationId: getPayment
      summary: Get payment by ID
      description: Get payment information for given paymentUid.
      tags:
      - Payments
      parameters:
      - name: paymentUid
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: The unique identifier of a payment
      responses:
        '200':
          description: Payment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentInfoResponseModelResponse'
components:
  schemas:
    PaymentInfoModel:
      type: object
      properties:
        paymentUid:
          type: string
          format: uuid
        paymentDate:
          type: string
          format: date-time
        paymentMode:
          type: string
          description: online, offline
        paymentStatus:
          type: string
          description: Pending, Paid, Rejected, Reversed
        paymentCategory:
          type: string
          description: Invoice, Applicant, Reversal
        amount:
          type: number
          format: double
        payerId:
          type: string
          format: uuid
        entityType:
          type: string
    PaymentTransactionModel:
      type: object
      properties:
        paymentUid:
          type: string
          format: uuid
        invoiceUid:
          type: string
          format: uuid
        amount:
          type: number
          format: double
        paidOn:
          type: string
          format: date-time
        depositedOn:
          type: string
          format: date-time
        paymentMode:
          type: string
        paymentStatus:
          type: string
    PaymentInfoResponseModelResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/PaymentInfoModel'
        error:
          $ref: '#/components/schemas/ErrorResponse'
    RecordPaymentResponseModelResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            paymentUid:
              type: string
              format: uuid
        error:
          $ref: '#/components/schemas/ErrorResponse'
    ErrorResponse:
      type: object
      properties:
        errorMessage:
          type: string
          nullable: true
        errorCode:
          type: string
          nullable: true
    PaymentWithAdditionalInfoResponse:
      type: object
      properties:
        propertyUid:
          type: string
          format: uuid
        propertyName:
          type: string
        propertyUnitUid:
          type: string
          format: uuid
        propertyUnitName:
          type: string
        tenantUid:
          type: string
          format: uuid
        tenantEmail:
          type: string
        tenantPhone:
          type: string
        paymentsResults:
          type: array
          items:
            $ref: '#/components/schemas/PaymentTransactionModel'
        totalPayment:
          type: number
          format: double
        dueInYear:
          type: integer
        dueInMonth:
          type: integer
        leaseUid:
          type: string
          format: uuid
    PaymentWithAdditionalInfoListResponseResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            paymentWithAdditionalInfoResponses:
              type: array
              items:
                $ref: '#/components/schemas/PaymentWithAdditionalInfoResponse'
            pagingModel:
              $ref: '#/components/schemas/PagingModel'
        error:
          $ref: '#/components/schemas/ErrorResponse'
    RecordPaymentRequestModel:
      type: object
      required:
      - tenantUid
      - amount
      properties:
        tenantUid:
          type: string
          format: uuid
          description: Id of Tenant
        amount:
          type: number
          format: double
          description: Amount Paid
    PagingModel:
      type: object
      properties:
        pageSize:
          type: integer
        currentPage:
          type: integer
        pageCount:
          type: integer
        totalRecords:
          type: integer
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key