Novicap Dynamic Discounting API

Dynamic discounting suppliers, invoices, payment instructions and adjustments.

Operations 10

POST /dynamic_discounting/suppliers Add dynamic discounting suppliers #
GET /dynamic_discounting/suppliers Retrieve dynamic discounting suppliers #
POST /dynamic_discounting/invoices Add dynamic discounting invoices #
GET /dynamic_discounting/invoices Retrieve dynamic discounting invoices #
DELETE /dynamic_discounting/invoices/{transaction_id} Delete a dynamic discounting invoice #
POST /dynamic_discounting/payment_instructions Create a dynamic discounting payment instruction #
GET /dynamic_discounting/payment_instructions Retrieve dynamic discounting payment instructions #
POST /dynamic_discounting/payment_adjustments Create a dynamic discounting payment adjustment #
GET /dynamic_discounting/payment_adjustments Retrieve dynamic discounting payment adjustments #
DELETE /dynamic_discounting/payment_adjustments/{transaction_id} Delete a dynamic discounting payment adjustment #

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/novicap-dynamic-discounting-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

novicap-dynamic-discounting-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Novicap Confirming Standard Dynamic Discounting API
  version: v1
  description: Novicap working-capital API. Transcribed faithfully from the published API Reference at https://developer.novicap.com/ (operations, paths, methods, parameters, auth scheme and documented HTTP error codes). Request/response property schemas are only partially documented by the provider; bodies are modelled as open objects and MUST NOT be treated as an authoritative field contract. Provider does not publish an OpenAPI document; this is an API Evangelist generation from the public docs.
  contact:
    name: Novicap Support
    email: support@novicap.com
    url: https://developer.novicap.com/
servers:
- url: https://api.novicap.com/v1
  description: Production
security:
- bearerAuth: []
tags:
- name: Dynamic Discounting
  description: Dynamic discounting suppliers, invoices, payment instructions and adjustments.
paths:
  /dynamic_discounting/suppliers:
    post:
      tags:
      - Dynamic Discounting
      operationId: addDynamicDiscountingSuppliers
      summary: Add dynamic discounting suppliers
      parameters:
      - $ref: '#/components/parameters/ProductId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SupplierInput'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '201':
          $ref: '#/components/responses/Created'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      tags:
      - Dynamic Discounting
      operationId: retrieveDynamicDiscountingSuppliers
      summary: Retrieve dynamic discounting suppliers
      parameters:
      - $ref: '#/components/parameters/ProductId'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /dynamic_discounting/invoices:
    post:
      tags:
      - Dynamic Discounting
      operationId: addDynamicDiscountingInvoices
      summary: Add dynamic discounting invoices
      description: Invoices with a matching supplier and reference that are not yet part of a payment instruction are updated rather than duplicated.
      parameters:
      - $ref: '#/components/parameters/ProductId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceInput'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '201':
          $ref: '#/components/responses/Created'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      tags:
      - Dynamic Discounting
      operationId: retrieveDynamicDiscountingInvoices
      summary: Retrieve dynamic discounting invoices
      parameters:
      - $ref: '#/components/parameters/ProductId'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /dynamic_discounting/invoices/{transaction_id}:
    delete:
      tags:
      - Dynamic Discounting
      operationId: deleteDynamicDiscountingInvoice
      summary: Delete a dynamic discounting invoice
      parameters:
      - $ref: '#/components/parameters/ProductId'
      - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
  /dynamic_discounting/payment_instructions:
    post:
      tags:
      - Dynamic Discounting
      operationId: createDynamicDiscountingPaymentInstruction
      summary: Create a dynamic discounting payment instruction
      parameters:
      - $ref: '#/components/parameters/ProductId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentInstructionInput'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '201':
          $ref: '#/components/responses/Created'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      tags:
      - Dynamic Discounting
      operationId: retrieveDynamicDiscountingPaymentInstructions
      summary: Retrieve dynamic discounting payment instructions
      parameters:
      - $ref: '#/components/parameters/ProductId'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /dynamic_discounting/payment_adjustments:
    post:
      tags:
      - Dynamic Discounting
      operationId: createDynamicDiscountingPaymentAdjustment
      summary: Create a dynamic discounting payment adjustment
      parameters:
      - $ref: '#/components/parameters/ProductId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentAdjustmentInput'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '201':
          $ref: '#/components/responses/Created'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
    get:
      tags:
      - Dynamic Discounting
      operationId: retrieveDynamicDiscountingPaymentAdjustments
      summary: Retrieve dynamic discounting payment adjustments
      parameters:
      - $ref: '#/components/parameters/ProductId'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /dynamic_discounting/payment_adjustments/{transaction_id}:
    delete:
      tags:
      - Dynamic Discounting
      operationId: deleteDynamicDiscountingPaymentAdjustment
      summary: Delete a dynamic discounting payment adjustment
      parameters:
      - $ref: '#/components/parameters/ProductId'
      - $ref: '#/components/parameters/TransactionId'
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  responses:
    Forbidden:
      description: Forbidden — the endpoint is not enabled for this account. Contact support@novicap.com to request access.
    Unauthorized:
      description: Unauthorized — missing or invalid API key.
    Created:
      description: Resource created (application/json).
      content:
        application/json:
          schema:
            type: object
            additionalProperties: true
    NotFound:
      description: Not Found — the referenced resource does not exist.
    BadRequest:
      description: Bad Request — the request was malformed or invalid.
    Success:
      description: Successful response (application/json).
      content:
        application/json:
          schema:
            type: object
            additionalProperties: true
    ServerError:
      description: Server error (500 / 502 / 503 / 504).
  schemas:
    PaymentAdjustmentInput:
      type: object
      description: Payment adjustment payload. Field contract is only partially documented.
      additionalProperties: true
    PaymentInstructionInput:
      type: object
      description: Payment instruction payload. Field contract is only partially documented.
      additionalProperties: true
    SupplierInput:
      type: object
      description: Supplier payload. Field contract is only partially documented by the provider.
      additionalProperties: true
    InvoiceInput:
      type: object
      description: Invoice payload. Documented deduplication key is (supplier, reference). Remaining fields are only partially documented by the provider.
      additionalProperties: true
      properties:
        supplier:
          type: string
          description: Supplier reference the invoice belongs to.
        reference:
          type: string
          description: Invoice reference used for deduplication.
  parameters:
    TransactionId:
      name: transaction_id
      in: path
      required: true
      description: Transaction identifier of the resource (e.g. DDI-ABCD, I-ABCD).
      schema:
        type: string
    ProductId:
      name: product_id
      in: query
      required: true
      description: Identifier of the Novicap product the request operates against.
      schema:
        type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key issued from the Novicap user profile, sent as "Authorization: Bearer {api_key}". The key may alternatively be supplied as an "api_key" field in the JSON payload. OAuth 2.0 is available on request. A "product_id" is required on every request.'
x-provenance:
  generated: '2026-07-20'
  method: generated
  source: https://developer.novicap.com/