ZenLedger · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the ZenLedger Aggregator Suite API

4 actions 4 updates update extends openapi/zenledger-aggregator-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for ZenLedger's API. It is a proposal applied on top of the contract, not a document ZenLedger publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-notex-apievangelist-profilex-contract-provenancex-provider-publishes-openapix-shares-token-endpoint-withoauth2ClientCredentialsx-consequencex-reversal

Targets 4

$.info
$.components.securitySchemes
$.paths['/aggregators/api/v1/portfolios'].post
$.paths['/aggregators/api/v1/taxes'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the ZenLedger Aggregator Suite API
  version: '1.0.0'
  x-generated: '2026-09-05'
  x-method: generated
  x-source: openapi/zenledger-aggregator-api-openapi.yml
  x-note: >-
    Records the runtime semantics ZenLedger documents in prose but does not encode in the Aggregator Suite
    contract. Never mutates the base document.
extends: openapi/zenledger-aggregator-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-profile: https://apis.io/provider/zenledger/
    x-contract-provenance: derived-from-postman
    x-provider-publishes-openapi: false
    x-shares-token-endpoint-with: ZenLedger Compliance Suite API
- target: $.components.securitySchemes
  update:
    oauth2ClientCredentials:
      type: oauth2
      description: >-
        Same token endpoint and credentials as the Compliance Suite. The Aggregator reference states the request as
        a GET in prose while its own code sample and collection both use POST; POST is the operative form.
      flows:
        clientCredentials:
          tokenUrl: https://api.zenledger.io/oauth/token
          scopes:
            public: The single scope value returned by the token endpoint.
- target: $.paths['/aggregators/api/v1/portfolios'].post
  update:
    x-consequence: medium
    x-reversal: none-documented
    x-produces: aggcode
    x-note: The aggregation code returned here is the only handle on the portfolio; no read, update or delete operation is published.
- target: $.paths['/aggregators/api/v1/taxes'].get
  update:
    x-requires-prior: createPortfolio
    x-note: Requires the aggcode returned by POST /portfolios.