Novicap Dynamic Discounting API
Dynamic discounting suppliers, invoices, payment instructions and adjustments.
Dynamic discounting suppliers, invoices, payment instructions and adjustments.
openapi: 3.0.3
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.
Created:
description: Resource created (application/json).
content:
application/json:
schema:
type: object
additionalProperties: true
Unauthorized:
description: Unauthorized — missing or invalid API key.
Success:
description: Successful response (application/json).
content:
application/json:
schema:
type: object
additionalProperties: true
ServerError:
description: Server error (500 / 502 / 503 / 504).
BadRequest:
description: Bad Request — the request was malformed or invalid.
NotFound:
description: Not Found — the referenced resource does not exist.
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
schemas:
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.
SupplierInput:
type: object
description: Supplier payload. Field contract is only partially documented by the provider.
additionalProperties: true
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
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/