MyCarrier · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the MyCarrier FreightAudit API

4 actions 4 updates update extends ../openapi/mycarrier-freightaudit-api-openapi.json
Derived by API Evangelist Built from the contracts MyCarrier publishes. MyCarrier did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

contactx-documentationx-contract-gapsx-idempotency429

Targets 4

$.info
$.servers
$.paths./api/Payment/PayNow.post
$.paths.*.*.responses

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the MyCarrier FreightAudit API
  version: 1.0.0
extends: ../openapi/mycarrier-freightaudit-api-openapi.json
x-generated: '2026-08-26'
x-method: derived
x-source: 'openapi/mycarrier-freightaudit-api-openapi.json,
  https://developer.mycarrier.io/docs/api-environments'
x-note: 'The FreightAudit contract is the largest MyCarrier publishes (86 operations,
  180 schemas) and the only one using RFC 9457 problem details — but NOT ONE of its 86
  operations declares an operationId, and none carries a summary or description. That is
  the single biggest contract-quality gap in MyCarrier''s estate: a generated client has
  no stable method names. Overlays cannot responsibly invent 86 operationIds, so this
  overlay records the gap explicitly rather than papering over it, and adds the metadata
  that can be stated truthfully.'
actions:
- target: $.info
  description: Add contact and documentation links.
  update:
    contact:
      name: MyCarrier API Support
      email: support@mycarrier.io
      url: https://developer.mycarrier.io/
    x-documentation: https://developer.mycarrier.io/docs/getting-started
    x-contract-gaps:
    - 'No operationId on any of the 86 operations.'
    - 'No summary or description on any operation.'
    - 'No 429 declared despite documented rate limits.'
- target: $.servers
  description: Record the documented sandbox host alongside production.
  update:
  - url: https://invoice.mycarriertms.com
    description: Production
  - url: https://invoice-api.preprod.mycarrier.dev
    description: Sandbox
- target: $.paths./api/Payment/PayNow.post
  description: 'Surface the idempotency contract that is currently buried in a request
    schema — this is the only enforced idempotency in MyCarrier''s estate.'
  update:
    x-idempotency:
      mechanism: request-body-field
      key: idempotencyKey
      required: true
      companion_field: correlationId
      note: 'MC.Invoice.API.Dtos.Payments.Requests.PayInvoiceRequest requires both
        idempotencyKey and correlationId. No replay/retention window is published.'
- target: $.paths.*.*.responses
  description: Declare the documented but undeclared 429 response.
  update:
    '429':
      description: 'Too Many Requests. Rate limits are enforced per account and per
        endpoint. Retry with a progressively increasing delay.'