LayUp Technologies InvoicesService API

The InvoicesService API from LayUp Technologies — 6 operation(s) for invoicesservice.

Operations 8

PUT /v1/invoice/{id} #
GET /v1/invoices #
POST /v1/invoices #
PUT /v1/invoices #
GET /v1/invoices/:id/pdf #
POST /v1/invoices/fees #
GET /v1/invoices/{id} #
GET /v1/invoices/{id}/report #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/layup-technologies-invoicesservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

layup-technologies-invoicesservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Layup endpoints AbsaDebiCheckService Invoices Service API
  version: 1.4.16
  description: 'Welcome to The Layup Swagger page. This page allows developers to interactively explore the API. For more detailed documentation see [The Layup documentation page](https://documentation.layup.co.za/).


    # Introduction


    ## What is LayUp


    LayUp is a lay-by payment solution. LayUp Schedules payments and ensures that your clients pay securely, effectively and on time. Depending on your parameters LayUp schedules a payment plan for your clients. Once a payment plan has been completed we notify you. There are 3 stories that are of importance to a merchant:


    1. Order Creation

    2. Deposit Received (and holding Stock for your client)

    3. Order Completion.


    LayUp allows you to take full control over the entire payment process if you wish to do so. We also provide a convenient front-end for users to use. The front-end should significantly reduce the time to integrate and get you started using LayUp as soon as possible.


    Once an order is completed a notification will be sent to the merchant so that you can provide the client with their product.


    ## How to use LayUp


    As a merchant who wants to place an order through LayUp, you want to send the relevant information to the LayUp API to create the order. The API will return an order ID. Unless your integration is using a custom user interface, you want to send the user to the LayUp customer payment widget. The URL for this widget is <u>https://shopper.layup.co.za/order/{orderId}</u> for production and <u>https://sandbox.layup.co.za/order/{orderId}</u> for sandbox.

    '
servers:
- url: http://localhost:3000
- url: https://localhost:3000
- url: wss://localhost:3000
security:
- apiKey:
  - read
  - write
tags:
- name: InvoicesService
paths:
  /v1/invoice/{id}:
    put:
      operationId: InvoicesService_updatePdf
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelInvoiceResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      tags:
      - InvoicesService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/modelInvoiceUpdatePdfRequest'
        required: true
  /v1/invoices:
    get:
      operationId: InvoicesService_getMany
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelInvoiceGetManyResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      parameters:
      - name: from
        in: query
        required: false
        schema:
          type: string
      - name: to
        in: query
        required: false
        schema:
          type: string
      - name: reference
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        required: false
        schema:
          type: string
      tags:
      - InvoicesService
    post:
      operationId: InvoicesService_create
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelInvoicesResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      tags:
      - InvoicesService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/modelDateTimeRange'
        required: true
    put:
      operationId: InvoicesService_update
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelInvoiceResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      tags:
      - InvoicesService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/modelInvoiceUpdateRequest'
        required: true
  /v1/invoices/:id/pdf:
    get:
      operationId: InvoicesService_getPdf
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelInvoicePdfResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      parameters:
      - name: _id
        in: query
        required: false
        schema:
          type: string
      tags:
      - InvoicesService
  /v1/invoices/fees:
    post:
      operationId: InvoicesService_createByFees
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelInvoicesResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      tags:
      - InvoicesService
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/modelInvoiceFeesCreateRequest'
        required: true
  /v1/invoices/{id}:
    get:
      operationId: InvoicesService_getInvoiceById
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelInvoiceReport'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      tags:
      - InvoicesService
  /v1/invoices/{id}/report:
    get:
      operationId: InvoicesService_getInvoiceReportById
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/modelGenerateReportResponse'
        '204':
          description: Successfully processed the request, no content.
        '403':
          description: Returned when the user does not have permission to access the resource.
        '404':
          description: Returned when the resource does not exist.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      tags:
      - InvoicesService
components:
  schemas:
    modelJournalFees:
      type: object
      properties:
        id:
          type: string
        productName:
          type: string
        amountExcludingVAT:
          type: number
          format: double
        amountVAT:
          type: number
          format: double
        amountTotal:
          type: number
          format: double
        merchantId:
          type: string
        createdAt:
          type: string
        updatedAt:
          type: string
        settlementId:
          type: string
        paymentId:
          type: string
    modelInvoiceReport:
      type: object
      properties:
        id:
          type: string
        merchantId:
          type: string
        exVatAmount:
          type: integer
          format: int32
        vatAmount:
          type: integer
          format: int32
        totalAmount:
          type: integer
          format: int32
        settled:
          type: boolean
        reconciled:
          type: boolean
        bankTransactionId:
          type: string
        reference:
          type: string
        accountingInvoiceId:
          type: string
        accountingInvoiceNumber:
          type: string
        status:
          type: string
        createdAt:
          type: string
        feesPerProduct:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/modelFeesPerProduct'
        report:
          $ref: '#/components/schemas/modelReport'
        billingMethod:
          type: string
    modelFeesPerProduct:
      type: object
      properties:
        quantity:
          type: integer
          format: int32
        amountTotal:
          type: number
          format: double
        amountExcludingVAT:
          type: number
          format: double
        amountVAT:
          type: number
          format: double
        product:
          $ref: '#/components/schemas/modelProduct'
    modelReport:
      type: object
      properties:
        totalFeesAmount:
          type: integer
          format: int32
        totalFeesExtAmount:
          type: integer
          format: int32
        totalAmountVAT:
          type: integer
          format: int32
        feesPerProductExcludingVATTotal:
          type: integer
          format: int32
        feesPerProductVATTotal:
          type: integer
          format: int32
        feesPerProductTotal:
          type: integer
          format: int32
        fees:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/modelJournalFees'
    modelInvoiceResponse:
      type: object
    modelInvoice:
      type: object
      properties:
        _id:
          type: string
        merchantId:
          type: string
        exVatAmount:
          type: integer
          format: int32
        vatAmount:
          type: integer
          format: int32
        totalAmount:
          type: integer
          format: int32
        settled:
          type: boolean
        reconciled:
          type: boolean
        bankTransactionId:
          type: string
        reference:
          type: string
        accountingInvoiceId:
          type: string
        accountingInvoiceNumber:
          type: string
        status:
          type: string
        createdAt:
          type: string
        billingMethod:
          type: string
    modelGenerateReportResponse:
      type: object
      properties:
        report:
          $ref: '#/components/schemas/modelInvoiceReport'
    modelDateTimeRange:
      type: object
      properties:
        fromDateTime:
          type: string
        toDateTime:
          type: string
    modelInvoicePdfResponse:
      type: object
      properties:
        redirectUrl:
          type: string
    modelInvoiceUpdateRequest:
      type: object
      properties:
        invoiceId:
          type: string
        accountingInvoiceId:
          type: string
        accountingInvoiceNumber:
          type: string
    modelInvoiceGetManyResponse:
      type: object
      properties:
        invoices:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/modelInvoice'
    modelInvoiceFeesCreateRequest:
      type: object
      properties:
        feeIds:
          type: array
          items:
            type: string
    modelInvoicesResponse:
      type: object
      properties:
        invoiceIds:
          type: array
          items:
            type: string
    modelProduct:
      type: object
      properties:
        _id:
          type: string
        name:
          type: string
        displayName:
          type: string
        feeType:
          type: string
        method:
          type: string
        billingType:
          type: string
    modelInvoiceUpdatePdfRequest:
      type: object
      properties:
        accountingPdfLocation:
          type: string
  securitySchemes:
    apiKey:
      type: apiKey
      name: apikey
      in: header