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