Open · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Open Certificate of Currency API

7 actions 7 updates documentation extends openapi/open-insurance-certificate-of-currency-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for Open's API. It is a proposal applied on top of the contract, not a document Open publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-providerx-apievangelist-reviewx-apievangelist-notex-apievangelist-artifactsx-apievangelist-documented-authtagsdescriptionx-apievangelist-idempotent

Targets 7

$.info
$.servers
$.components.securitySchemes
$.paths['/v1/policy/coc'].post
$.paths['/v1/policy/coc'].post.responses
$.paths['/v1/policy/coc'].post.responses['200'].content['application/json'].schema.oneOf[0]
$.paths['/v1/policy/coc'].post.requestBody.content['application/json'].schema.properties.format

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Open Certificate of Currency API
  version: 1.0.0
x-generated: '2026-07-25'
x-method: generated
x-source: openapi/open-insurance-certificate-of-currency-openapi.json
x-note: >-
  Our enhancements to Open's published OpenAPI. The harvested definition is left
  untouched. Every action below either records what the docs state but the spec
  omits (the credential model, the production host, the documented error
  statuses) or annotates a real defect in the contract (info.version "unknown",
  the vehilce_rego typo). Nothing here invents an operation or a field.
extends: openapi/open-insurance-certificate-of-currency-openapi.json
actions:
- target: $.info
  description: Identify the definition and record that the publisher versions it as "unknown".
  update:
    x-apievangelist-provider: open-insurance
    x-apievangelist-review: review.yml
    x-apievangelist-note: >-
      Published by Open via its ReadMe developer hub at
      https://developers.beopen.com/reference/coc. info.version is literally
      "unknown" upstream; there is no versioned release of this definition.
    x-apievangelist-artifacts:
    - authentication/open-insurance-authentication.yml
    - conventions/open-insurance-conventions.yml
    - errors/open-insurance-problem-types.yml
    - data-model/open-insurance-data-model.yml
    - sandbox/open-insurance-sandbox.yml
- target: $.servers
  description: >-
    The spec declares only the sandbox host. The production host answers the same
    path (GET returns 405, confirming a live POST-only endpoint) and is where a
    partner with production keys actually calls.
  update:
  - url: https://api.beopen.com
    description: Production (verified live 2026-07-25; GET /v1/policy/coc returns 405)
    x-apievangelist-added: true
- target: $.components.securitySchemes
  description: >-
    Upstream declares an EMPTY securitySchemes object, so generated clients get no
    auth wiring at all. Record the real, documented credential model — an api_key /
    api_secret pair carried in the JSON request body, issued by Open at partner
    account creation.
  update:
    x-apievangelist-documented-auth:
      style: apiKey pair in request body
      fields:
      - api_key
      - api_secret
      issuance: Open account manager / sales@beopen.com
      self_serve: false
      docs: https://developers.beopen.com/docs/keys
      note: >-
        Not expressible as a standard OpenAPI securityScheme because the
        credentials travel in the body rather than a header, query or cookie.
- target: $.paths['/v1/policy/coc'].post
  description: Tag, describe and classify the single operation.
  update:
    tags:
    - Policy
    description: >-
      Retrieve a Certificate of Currency for an existing Open policy directly from
      the insurer, to validate that cover is in force. Returns a JSON certificate
      by default, or a PDF when format=pdf. Requires the partner api_key and
      api_secret plus the customer's policy_number.
    x-apievangelist-idempotent: true
    x-apievangelist-idempotency-note: >-
      Semantically a read despite the POST verb — repeated calls with the same
      policy_number return the same certificate. Open publishes no
      Idempotency-Key contract.
    x-agentic-access:
      action-class: connected
      consequence: read
      note: >-
        Overrides the mechanical classification in
        agentic-access/open-insurance-agentic-access.yml, which classified this as
        `acting`/`write` from the POST method alone. It is a lookup that mutates
        nothing, but it returns personal information (named policy holders, dates
        of birth, addresses), so subject binding and audit still apply.
- target: $.paths['/v1/policy/coc'].post.responses
  description: >-
    The spec models only 200 and 403. Record the other statuses Open publishes in
    its error-code reference so consumers handle them.
  update:
    x-apievangelist-documented-statuses:
      401: Enter valid credentials to continue.
      405: Method not allowed — this path is POST-only.
      413: Request entity too large.
      422: Velocity rules violation or non-sufficient funds.
      500: Internal server error.
      502: Bad gateway.
      503: Service unavailable — check the platform status feed.
      504: Gateway timeout.
      x-source: https://developers.beopen.com/docs/errors
      x-note: >-
        No RFC 9457 problem+json. The documented 403 body is the plain string
        "Attempt Logged.  Access denied."
- target: $.paths['/v1/policy/coc'].post.responses['200'].content['application/json'].schema.oneOf[0]
  description: Flag the field-name typo Open ships in its car-certificate shape.
  update:
    x-apievangelist-defect:
      field: vehilce_rego
      issue: >-
        Misspelling of "vehicle_rego" in the published schema AND in the published
        response example. Consumers must read the typo'd key; it is the contract.
- target: $.paths['/v1/policy/coc'].post.requestBody.content['application/json'].schema.properties.format
  description: Enumerate the documented values for the format field.
  update:
    x-apievangelist-enum:
    - JSON
    - pdf
    x-apievangelist-default: JSON