Solvimon invoices API

The invoices API from Solvimon — 26 operation(s) for invoices.

OpenAPI Specification

solvimon-invoices-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Configuration alertRules invoices API
  version: 1.0.0
servers:
- url: https://test.api.solvimon.com
  description: The TEST environment for our API
- url: https://api.solvimon.com
  description: The live environment for our API
tags:
- name: invoices
paths:
  /v{version}/invoices:
    get:
      operationId: getInvoices
      summary: Get a list of invoices
      description: Requires the INVOICE.VIEW permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: customer_id
        in: query
        description: Filter based of customer ID
        required: false
        schema:
          type: string
      - name: statuses[]
        in: query
        description: Filter invoices based on invoice status(es)
        required: false
        schema:
          type: array
          items:
            type: string
      - name: invoice_date
        in: query
        description: Range filter for the start_at of the first schedule in the pricing plan subscription (ISO-8601).
        required: false
        schema:
          type: string
      - name: paid
        in: query
        description: Filter invoices based on whether they're paid or not (true or false)
        required: false
        schema:
          type: string
      - name: on_hold
        in: query
        description: Filter invoices based on whether they're on hold or not (true or false)
        required: false
        schema:
          type: string
      - name: pricing_plan_subscription_id
        in: query
        description: Filter invoices by the pricing plan subscription id
        required: false
        schema:
          type: string
      - name: include_periods
        in: query
        description: Indicates whether the response should include period and group data (true or false)
        required: false
        schema:
          type: boolean
      - name: include_lines
        in: query
        description: Indicates whether the response should include invoice lines (true or false)
        required: false
        schema:
          type: boolean
      - name: limit
        in: query
        description: The amount of records shown in the list
        required: false
        schema:
          type: integer
      - name: page
        in: query
        description: The page which is going to be shown
        required: false
        schema:
          type: integer
      - name: order_by
        in: query
        description: The parameter by which the response is ordered.
        required: false
        schema:
          type: string
      - name: order_direction
        in: query
        description: The order direction by which the response is ordered.
        required: false
        schema:
          type: string
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponseWrapper'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      operationId: postInvoices
      summary: Create a one-off invoice or credit invoice
      description: Requires the INVOICE.ONE_OFF.CREATE permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceCreateRequest'
  /v{version}/invoices/preview:
    post:
      operationId: postInvoicesPreview
      summary: Create a preview invoice
      description: Requires the INVOICE.PREVIEW permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoicePreviewActionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoicePreviewActionCreateRequest'
  /v{version}/invoices/search:
    post:
      operationId: postInvoicesSearch
      summary: Search invoices
      description: Requires the INVOICE.VIEW permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: order_by
        in: query
        description: The parameter by which the response is ordered.
        required: false
        schema:
          type: string
      - name: order_direction
        in: query
        description: The order direction by which the response is ordered.
        required: false
        schema:
          type: string
      - name: expand[]
        in: query
        description: The id fields of the resources that are going to be expanded.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: limit
        in: query
        description: The amount of records shown in the list
        required: false
        schema:
          type: integer
      - name: page
        in: query
        description: The page which is going to be shown
        required: false
        schema:
          type: integer
      - name: include_periods
        in: query
        description: Indicates whether the response should include period and group data (true or false)
        required: false
        schema:
          type: boolean
      - name: include_lines
        in: query
        description: Indicates whether the response should include invoice lines (true or false)
        required: false
        schema:
          type: boolean
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponseWrapper'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchCreateRequest'
  /v{version}/invoices/charge-on-demand-pricing-items:
    post:
      operationId: postInvoicesChargeOnDemandPricingItems
      summary: Charge on-demand pricing items for a pricing plan schedule
      description: Requires the INVOICE.ONE_OFF.CREATE permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeOnDemandPricingItemsCreateRequest'
  /v{version}/invoices/{resourceId}:
    get:
      operationId: getInvoicesByResourceId
      summary: Get an invoice by ID
      description: Requires the INVOICE.VIEW permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the resource to be requested.
        required: true
        schema:
          type: string
          default: ''
      - name: processing_only_customer_id
        in: query
        description: The id of the child customer to filter the invoice details.
        required: false
        schema:
          type: string
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    patch:
      operationId: patchInvoicesByResourceId
      summary: Update an invoice
      description: Requires the INVOICE.UPDATE permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the resource to be requested.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceUpdateRequest'
  /v{version}/invoices/{resourceId}/add-line:
    post:
      operationId: postInvoicesByResourceIdAddLine
      summary: Add a line to an invoice
      description: Requires the INVOICE.LINE.EDIT permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the resource for which the action is posted.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OneOffInvoiceLineCreateRequest'
  /v{version}/invoices/{resourceId}/lines:
    post:
      operationId: postInvoicesByResourceIdLines
      summary: Add a line to an invoice
      description: Requires the INVOICE.LINE.EDIT permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the resource for which the action is posted.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OneOffInvoiceLineCreateRequest'
  /v{version}/invoices/{resourceId}/lines/{invoiceLineResourceId}:
    put:
      operationId: putInvoicesByResourceIdLinesByInvoiceLineResourceId
      summary: Replaces an one-off invoice line in an invoice based on the invoice line id
      description: Requires the INVOICE.LINE.EDIT permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the invoice of the line.
        required: true
        schema:
          type: string
          default: ''
      - name: invoiceLineResourceId
        in: path
        description: The ID of the invoice line.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OneOffInvoiceLineCreateRequest'
    delete:
      operationId: deleteInvoicesByResourceIdLinesByInvoiceLineResourceId
      summary: Delete an invoice line by ID
      description: Requires the INVOICE.LINE.EDIT permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the invoice of the line.
        required: true
        schema:
          type: string
          default: ''
      - name: invoiceLineResourceId
        in: path
        description: The ID of the invoice line.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /v{version}/invoices/{resourceId}/payment-attempts:
    get:
      operationId: getInvoicesByResourceIdPaymentAttempts
      summary: Deprecated. Instead use /payments to get the payments for the invoice
      description: Requires the INVOICE.VIEW permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the resource to be requested.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponseWrapper'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /v{version}/invoices/{resourceId}/payments:
    get:
      operationId: getInvoicesByResourceIdPayments
      summary: Get the payments made for the invoice
      description: Requires the INVOICE.VIEW permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the resource to be requested.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponseWrapper'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /v{version}/invoices/{resourceId}/delete-line:
    post:
      operationId: postInvoicesByResourceIdDeleteLine
      summary: Delete a line from an invoice
      description: Requires the INVOICE.LINE.EDIT permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the resource to be requested.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceActionDeleteLineCreateRequest'
  /v{version}/invoices/{resourceId}/send_by_email:
    post:
      operationId: postInvoicesByResourceIdSend_by_email
      summary: Send an invoice via email.
      description: Requires the INVOICE.SEND_EMAIL permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the resource for which the action is posted.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendInvoiceByEmailDataCreateRequest'
  /v{version}/invoices/{resourceId}/export_to_erp:
    post:
      operationId: postInvoicesByResourceIdExport_to_erp
      summary: Export an invoice to an ERP.
      description: Requires the INVOICE.EXPORT_ERP permission.
      tags:
      - invoices
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceId
        in: path
        description: The ID of the resource for which the action is posted.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
    

# --- truncated at 32 KB (277 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/solvimon/refs/heads/main/openapi/solvimon-invoices-api-openapi.yml