Marketplace Commissions Matrix

Manage per-supplier marketplace commission rates that feed the commission split applied to card payments at capture.


Introduction

The marketplace commissions matrix is the operator-managed table that defines the commission rate retained by the marketplace owner for each supplier. These rates feed directly into the commission split computed at the capture of every card payment.

The marketplace commission rate is configurable by the operator on a per-supplier basis, in contrast with the platform commission, which is set contractually with Djust at the tenant level.


Key Concepts

What is the Marketplace Commission?

In a marketplace context, the marketplace commission is the share of each captured payment that is routed to the marketplace owner's balance account, on top of the platform commission paid to Djust. The remaining amount is the supplier share, credited to the supplier's balance account.

ComponentRecipient
Platform commissionDjust platform balance account
Marketplace commissionMarketplace owner balance account (tenant)
Supplier shareSupplier balance account

Per-Supplier Rate

Each line of the matrix associates one active supplier with a single commission rate. A supplier can have at most one active line in the matrix.

The matrix is consumed at capture time. Historical transactions are never recomputed when a rate changes — every capture freezes the rates effective at that moment.

Access Control

The matrix is restricted to operator users. Suppliers and account customer users cannot read or write their own commission rate. This protects the contractual rate negotiated by the operator.

ClientPermissions
OPERATORRead, create, update, delete, change status
ACCOUNTNone — 403 Forbidden (F-E-030)
SUPPLIERNone — 403 Forbidden (F-E-030)

Resource Model

A marketplace commission line carries the following information:

FieldTypeDescription
supplierIdstringExternal ID of the supplier (must be active)
supplierNamestringHuman-readable supplier name
commissionRatenumberDecimal rate, strictly greater than 0 and strictly lower than 1
statusstringACTIVE or INACTIVE
updatedAtdatetimeLast modification timestamp
updatedBystringIdentifier of the operator who applied the change
{
  "supplierId": "SUP-48712",
  "supplierName": "ACME Logistics",
  "commissionRate": 0.025,
  "status": "ACTIVE",
  "updatedAt": "2026-04-27T10:12:33Z",
  "updatedBy": "[email protected]"
}

Managing the Matrix via API

The CRUD endpoints follow Djust standard conventions and are restricted to OPERATOR.

ActionMethod & PathOperationId
Create a linePOST /v1/payments/marketplace-commissionsADM-PAY-103
List all linesGET /v1/payments/marketplace-commissionsADM-PAY-550
Read one lineGET /v1/payments/marketplace-commissions/{supplierId}ADM-PAY-500
Update a ratePUT /v1/payments/marketplace-commissions/{supplierId}ADM-PAY-200
Update statusPATCH /v1/payments/marketplace-commissions/{supplierId}ADM-PAY-201
Delete a lineDELETE /v1/payments/marketplace-commissions/{supplierId}ADM-PAY-300

Listing and Filtering

The list endpoint (ADM-PAY-550) supports the following sort fields and filters:

Sort fields (format sort=field:direction)
createdAt (default: desc)
supplierName
FilterBehavior
supplierIdMulti-valued, comma-separated
supplierNameMulti-valued, comma-separated
commissionRateMinLower bound (inclusive) on the rate
commissionRateMaxUpper bound (inclusive) on the rate

Invalid sort entries are silently ignored, following the standard Djust convention.


Lifecycle

Creating a Line

A supplier can have at most one line in the matrix. Attempting to create a second line for the same supplier returns 409 Conflict (F-E-003).

The supplier must exist and be active. Otherwise, the call returns 404 Not Found (F-E-002).

Updating a Rate or Status

Updating a line records the operation in the audit trail (date, operator, before/after values). The change applies only to future captures — historical transactions are never recomputed.

The PATCH endpoint (ADM-PAY-201) toggles the line between ACTIVE and INACTIVE. An INACTIVE line is preserved for traceability but is ignored when computing splits at capture.

Deleting a Line

Deletion permanently removes the line and disables it for future captures. Existing captures and their recorded splits are unaffected.


Validation Rules

The marketplace commission rate follows the same validation rules as the platform commission rate, ensuring consistency across all commission types in Djust Pay:

RuleDetail
RangeStrictly greater than 0 and strictly lower than 1. A rate of 1.0 is rejected.
PrecisionThe stored rate is the exact decimal representation. No rounding is applied at storage.
Input precisionAPI input may be limited to 4 decimal places.
FormatDecimal number — for example 0.025 for 2.5%.
Supplier referenceThe supplierId field must be the supplier external ID.

Error Codes

HTTPCodeTypical message
400F-E-012Field does not respect expected format.
401F-E-032Unauthorized. Missing or invalid authentication token.
403F-E-030Caller is not allowed to perform this action.
404F-E-002Supplier not found for the provided identifier.
409F-E-003A commission line already exists for this supplier.
422F-E-006Negative value not allowed.
422F-E-007Value out of allowed range.

Audit Trail

Every write operation (create, update, status change, delete) records:

  • The timestamp of the change
  • The operator who performed the change
  • The operation type
  • On updates, the before/after values

This trail is used for reconciliation and contractual audits.


Related