Madeiramadeira · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the MadeiraMadeira Marketplace API

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

What the actions change

x-reversiblex-contract-provenancex-artifactsx-pagination-stylex-pagination-notex-idempotentx-retry-safex-retry-note

Targets 10

$.info
$.servers
$.paths.*.*
$.paths.*.put
$.paths['/v1/pedido/received'].put
$.paths['/v1/pedido/invoiced'].put
$.paths['/v1/pedido/shipped'].put
$.paths['/v1/pedido/delivered'].put
$.components.securitySchemes.TOKENMM
$.components.schemas

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the MadeiraMadeira Marketplace API
  version: 1.0.0
extends: ../openapi/madeiramadeira-marketplace-openapi.yml
x-generated: '2026-08-25'
x-method: generated
x-source: >-
  Captures the enhancements API Evangelist applied on top of the contract derived from the provider's
  own published Postman collection. The original collection is preserved verbatim at
  postman/madeiramadeira-marketplace-postman-collection.json and is never mutated.
actions:
- target: $.info
  description: >-
    Record that this OpenAPI is a faithful derivation of a provider-published Postman collection, not
    a document MadeiraMadeira publishes itself, so a consumer can tell contract from reconstruction.
  update:
    x-contract-provenance:
      provider_published_format: postman-collection-v2.0.0
      provider_published_url: https://documenter.getpostman.com/view/3341659/RztmqU19
      derived_by: API Evangelist enrichment pipeline
      derived_on: '2026-08-25'
      openapi_published_by_provider: false
- target: $.info
  description: Attach the artifact set that documents runtime semantics the contract itself does not carry.
  update:
    x-artifacts:
      errors: ../errors/madeiramadeira-problem-types.yml
      conventions: ../conventions/madeiramadeira-conventions.yml
      webhooks: ../asyncapi/madeiramadeira-marketplace-webhooks.yml
      rate_limits: ../rate-limits/madeiramadeira-rate-limits.yml
      lifecycle: ../lifecycle/madeiramadeira-lifecycle.yml
      authentication: ../authentication/madeiramadeira-authentication.yml
      sandbox: ../sandbox/madeiramadeira-sandbox.yml
      data_model: ../data-model/madeiramadeira-data-model.yml
      skills: ../skills/_index.yml
- target: $.servers
  description: >-
    Flag that the sandbox is a separately provisioned environment, not self-service, so a client does
    not assume it can simply swap the host and start calling.
  update:
  - url: https://marketplace.madeiramadeira.com.br
    description: Producao (production)
    x-environment: production
  - url: https://marketplace-sandbox.madeiramadeira.com.br
    description: Sandbox
    x-environment: sandbox
    x-self-service: false
    x-provisioning: >-
      MadeiraMadeira creates the test environment and issues a sandbox login and password after
      reviewing the integrator's plan; sandbox credentials cannot be self-issued.
- target: $.paths.*.*
  description: >-
    Mark every operation with the pagination quirk that will otherwise break generated clients -
    limit and offset are literal PATH segments on this API, not query parameters.
  update:
    x-pagination-style: path-segment-limit-offset
    x-pagination-note: >-
      Where a path contains "limit={limit}&offset={offset}", that string is part of the URL PATH.
      There is no query string. The Mensageria operations are the exception and use conventional
      query parameters.
- target: $.paths.*.put
  description: Record that PUT writes carry no idempotency guarantee, so retries are unsafe.
  update:
    x-idempotent: false
    x-retry-safe: false
    x-retry-note: >-
      No Idempotency-Key or equivalent is supported. A timed-out PUT cannot be safely replayed; the
      client must re-read state to determine whether the write landed.
- target: $.paths['/v1/pedido/received'].put
  description: Mark the order lifecycle transitions as irreversible over the API.
  update:
    x-reversible: false
    x-reversal-note: >-
      Order status is a one-way ratchet. No un-receive operation exists and CANCELADO is never
      accepted inbound - correcting a wrong transition requires contacting MadeiraMadeira.
- target: $.paths['/v1/pedido/invoiced'].put
  description: Mark the invoice transition as irreversible and tie it to the Brazilian NF-e regime.
  update:
    x-reversible: false
    x-domain-standard: nfe
    x-domain-standard-note: >-
      "NF EMITIDA" maps to order status 6 and to the issuance of a Brazilian Nota Fiscal Eletronica;
      the order payload carries the 44-digit NF-e chave_acesso and a SEFAZ portal URL.
- target: $.paths['/v1/pedido/shipped'].put
  description: Mark the shipping transition as irreversible.
  update:
    x-reversible: false
- target: $.paths['/v1/pedido/delivered'].put
  description: Mark the delivery transition as irreversible.
  update:
    x-reversible: false
- target: $.components.securitySchemes.TOKENMM
  description: Record how the token is obtained and that it carries no expiry or rotation policy.
  update:
    x-token-issuance: Portal Marketplace > Administracao > Integracao
    x-token-prerequisite: Approved seller registration with signed Terms and Conditions
    x-token-expiry: none documented
    x-token-rotation: none documented
    x-token-scopes: none - the token is unscoped and grants the full seller surface
- target: $.components.schemas
  description: >-
    Add the callback (webhook) payload schemas MadeiraMadeira documents in prose but does not carry in
    the collection, so an agent can validate inbound events.
  update:
    OrderCallback:
      type: object
      description: Payload POSTed to a seller callback URL for PEDIDO_NOVO, PEDIDO_APROVADO and PEDIDO_CANCELADO.
      properties:
        id_seller:
          type: string
        order:
          type: string
        status:
          type: integer
          description: 1 NOVO, 3 APROVADO, 4 CANCELADO
        time:
          type: integer
          description: Unix epoch seconds
    ProductCallback:
      type: object
      description: Payload POSTed to a seller callback URL for PRODUTO_APROVADO.
      properties:
        id_seller:
          type: integer
        sku:
          type: string
        aprovado:
          type: integer
    ShippingQuoteRequest:
      type: object
      description: Payload MadeiraMadeira POSTs to the seller's FRETE callback to request a shipping quote.
      properties:
        destinationZip:
          type: string
        volumes:
          type: array
          items:
            type: object
            properties:
              sku:
                type: string
              quantity:
                type: integer
    ShippingQuoteResponse:
      type: object
      description: >-
        Response the seller must return within 1500 ms, at 85% availability, or HTTP 404 when the
        region is not served.
      properties:
        shippingQuotes:
          type: array
          items:
            type: object
            properties:
              shippingCost:
                type: number
              deliveryTime:
                type: object
                properties:
                  expedition:
                    type: integer
                  transit:
                    type: integer
                  total:
                    type: integer
              shippingEstimatedId:
                type: string
              shippingMethodId:
                type: string
              shippingMethodName:
                type: string
              shippingMethodDisplayName:
                type: string