Madeiramadeira · AsyncAPI Specification
Madeiramadeira Marketplace Webhooks
Version
View Spec
View on GitHub
CompanyE-CommerceMarketplaceRetailHome GoodsFurnitureBrazilSeller IntegrationProduct CatalogOrderShippingLogisticsAsyncAPIEvents
AsyncAPI Specification
generated: '2026-08-25'
method: searched
source: >-
"Callbacks" folder, "Fluxo de Pedido" and "Integracao de Frete" sections of the public Marketplace
MadeiraMadeira Postman documentation (https://documenter.getpostman.com/view/3341659/RztmqU19),
read 2026-08-25.
asyncapi_spec: false
asyncapi_note: >-
MadeiraMadeira publishes NO AsyncAPI document, and no /asyncapi.yaml or event-catalog surface exists
on any of its hosts (probed 2026-08-25 - the marketplace hosts answer every unknown path with an SPA
soft-404). It does, however, publish a real, self-service webhook surface: sellers register their
own HTTPS callback URLs through the API itself, and MadeiraMadeira POSTs events to them. That
webhook catalogue is captured below and wired as type Webhooks.
transport: https
style: seller-registered callback URLs, managed through the API
registration:
list: GET /v1/callback
create: POST /v1/callback
delete: DELETE /v1/callback/{tipo}
update_note: >-
There is no update operation. The published guidance is explicit: to change an existing callback
you must delete the current one and create it again.
create_body:
tipo: string (one of the event types below)
url: string (the seller's HTTPS endpoint)
list_response_shape:
meta:
count: integer
data:
- id_callback: string
url: string
tipo: string
datahora_alteracao: 'string (YYYY-MM-DD HH:MM:SS)'
security_note: >-
The documentation describes NO signature, shared secret, HMAC, timestamp, or replay-protection
mechanism on inbound callbacks, and no mutual TLS. A seller receiving these events cannot verify
they came from MadeiraMadeira from the payload alone. This is a real gap, recorded as measured.
delivery_note: >-
No retry policy, delivery guarantee, ordering guarantee, or dead-letter behaviour is documented for
any of the notification callbacks.
events:
- name: PEDIDO_NOVO
title: New order notification
direction: madeiramadeira -> seller
method: POST
trigger: An order has been placed by a customer (payment not yet authorised, order status 1 NOVO).
payload:
id_seller: string
order: string
status: integer
time: integer (unix epoch)
payload_example:
id_seller: '225'
order: '2371'
status: 1
time: 1532567027
- name: PEDIDO_APROVADO
title: Approved order notification
direction: madeiramadeira -> seller
method: POST
trigger: The order's payment has been authorised (order status 3 APROVADO).
payload_note: Same envelope as PEDIDO_NOVO, carrying the approved status.
- name: PEDIDO_CANCELADO
title: Cancelled order notification
direction: madeiramadeira -> seller
method: POST
trigger: The order has been cancelled (order status 4 CANCELADO).
payload_note: >-
Same envelope as PEDIDO_NOVO. The documentation is explicit that CANCELADO is a one-way status -
the marketplace never accepts it inbound over the API, it is only ever pushed out to the seller's
integrator.
- name: PRODUTO_APROVADO
title: Product approved notification
direction: madeiramadeira -> seller
method: POST
trigger: A submitted product has been approved and published in the catalog.
payload:
id_seller: integer
sku: string
aprovado: integer
payload_example:
id_seller: 456789
sku: sku123456
aprovado: 1
- name: FRETE
title: Shipping quote request (synchronous seller-hosted callback)
direction: madeiramadeira -> seller
method: POST
kind: request-response
trigger: >-
A customer is quoting shipping for a cart containing the seller's SKUs and the seller has opted
for "Integracao de Frete" (quoting on the seller's own platform) rather than uploading shipping
tables to MadeiraMadeira.
request_headers:
Accept: application/json
Content-Type: application/json
request_payload:
destinationZip: string (customer postal code / CEP)
volumes:
- sku: string
quantity: integer
request_example:
destinationZip: '80320120'
volumes:
- sku: '123456'
quantity: 1
expected_response_payload:
shippingQuotes:
- shippingCost: number
deliveryTime:
expedition: integer (business days)
transit: integer (business days)
total: integer (business days, expedition + transit)
shippingEstimatedId: string
shippingMethodId: string
shippingMethodName: string
shippingMethodDisplayName: string
expected_response_example:
shippingQuotes:
- shippingCost: 10.5
deliveryTime:
expedition: 2
transit: 3
total: 5
shippingEstimatedId: '10203040'
shippingMethodId: transportadora
shippingMethodName: ENTREGA RAPIDA
shippingMethodDisplayName: ERAPIDA
expected_response_codes:
- status: 200
meaning: Quote processed successfully by the seller
- status: 404
meaning: Seller does not deliver to that region
sla:
max_response_time_ms: 1500
min_availability_percent: 85
source: >-
Published verbatim by MadeiraMadeira - "O tempo maximo de resposta para o frete sera de 1500 ms"
and "A MadeiraMadeira exige um nivel de disponibilidade de 85%", observable in the Seller
Dashboard. This is the only quantified SLA MadeiraMadeira publishes, and notably it is an SLA it
imposes ON the seller, not one it offers.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/madeiramadeira-marketplace-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.