uChecker · OpenAPI Overlay 1.0.0

API Evangelist enhancement overlay for uChecker ESP Провайдеры API

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

What the actions change

x-agent-guidancex-api-evangelistx-audiencex-authx-pricingx-idempotencyx-side-effectsx-safe

Targets 3

$.info
$.paths['/api/v1/esp/provision'].post
$.paths['/api/v1/esp/price'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancement overlay for uChecker ESP Провайдеры API
  version: 1.0.0
extends: openapi/uchecker-esp-api-openapi.yml
x-generated: '2026-08-16'
x-method: generated
x-source: >-
  openapi/uchecker-esp-api-openapi.yml, authentication/uchecker-authentication.yml,
  errors/uchecker-problem-types.yml, plans/uchecker-plans-pricing.yml
x-rationale: >-
  The two-operation ESP surface is uChecker's white-label channel: an email service provider
  prices a volume and provisions a downstream uChecker account with credits, on behalf of its
  own customer. It is authenticated differently from the rest of the API — with an ESP
  provider token rather than an ordinary account key — and its pricing is computed per
  partner rather than published. Neither fact is stated in the operation descriptions. This
  overlay records both without mutating the original spec.
actions:
  - target: $.info
    description: Record the distinct auth model and the artifact map for this surface.
    update:
      x-api-evangelist:
        authentication: authentication/uchecker-authentication.yml
        errors: errors/uchecker-problem-types.yml
        plans: plans/uchecker-plans-pricing.yml
        data-model: data-model/uchecker-data-model.yml
      x-audience: esp-partner
      x-auth:
        note: >-
          These operations require an ESP PROVIDER token, not an ordinary account API key —
          both 401 responses in this split say "Токен ESP-провайдера отсутствует, невалиден
          или просрочен" (ESP provider token missing, invalid or expired). The token is
          issued by uChecker through a partner arrangement; there is no self-service path to
          it, and it is not the `uk_` key shown in the dashboard.
        obtain: partner arrangement — contact support@uchecker.net
      x-pricing:
        published: false
        note: >-
          ESP rates are NOT on the public pricing table. EspController_getPrice returns the
          partner-specific total and per-email price for a requested volume; the published
          RUB packs in plans/uchecker-plans-pricing.yml are the retail list, not the ESP list.
  - target: $.paths['/api/v1/esp/provision'].post
    description: Flag account provisioning as a side-effecting, non-idempotent operation.
    update:
      x-idempotency:
        supported: false
        note: >-
          ProvisionAccountDto carries no idempotency_key. A retried call can create a second
          downstream account or credit the same balance twice. Read the ProvisionResponse and
          reconcile before retrying.
      x-side-effects:
        - creates a uChecker account for an end customer
        - credits that account's balance
      x-agent-guidance: >-
        Money-moving. Do not retry blindly on a timeout; confirm state first.
  - target: $.paths['/api/v1/esp/price'].get
    description: Mark the price calculation as the safe, read-only half of the pair.
    update:
      x-safe: true
      x-agent-guidance: >-
        Read-only. Call this before provision to confirm the partner rate for the requested
        volume.