Pedidos do canal
Lista e consulta os pedidos que chegaram dos marketplaces, pede nova busca de pedidos e baixa a etiqueta de envio.
Quando um cliente compra no marketplace, o Hub traz o pedido para a loja e o transforma num pedido comum, com o vínculo entre os dois (o "link": id do pedido no canal, número do pedido na loja, nota fiscal, etiqueta e rastreio). Estas rotas mostram esses vínculos. Um vínculo pode existir sem pedido na loja ainda: a busca recebeu o pedido do canal mas a criação local falhou ou está pendente, e a lista mostra create_state e create_error para você agir.
Listar pedidos
/api/v1/vendor/markethub/ordersSellerLista os pedidos vindos dos canais, nas contas do seller
Parâmetros de consulta
accountuuidstatusstringO pending, P processing, A paid, S shipped, C completed, I cancelled, R refunded, H on_hold, Z chargeback, B backordered, F failed, D voided). Qualquer outro texto filtra pela situação do pedido no canal (ext_status).ext_order_idstringdocumentstringinvoice_neededstring11 traz só pedidos que ainda precisam de nota fiscal.shippablestring11 traz só pedidos prontos para despachar.missingstring11 traz só vínculos que ainda não viraram pedido na loja.fromstringAAAA-MM-DD.untilstringAAAA-MM-DD. Inclusive: o dia inteiro entra.exportstring11 pede a lista para exportação: os nomes de cliente e as mensagens de erro saem mascarados.pageintegerpadrão: 1per_pageintegerpadrão: 25{
"orders": [
{
"order_id": "e148b6aa-d495-4b89-92ab-f38b5979a43f",
"account_id": "e4648fc4-dd0d-45cd-9eaf-4fad48de4a78",
"marketplace": "mercadolivre",
"account_name": "Mercado Livre (produção)",
"ext_order_id": "2000008812345678",
"order_number": "PEDIDO-20261011-0001",
"ext_status": "paid",
"local_status": "processing",
"local_letter": "P",
"total_cents": 129900,
"customer_name": "Maria Souza",
"items_count": 1,
"invoice_needed": true,
"invoice_key": null,
"invoice_uploaded_at": null,
"tracking_number": null,
"label_fetched_at": null,
"shipped_at": null,
"is_b2b": false,
"purchase_order": null,
"fulfillment": "seller",
"created_at": "2026-10-11T20:00:00Z",
"updated_at": "2026-10-11T20:05:00Z"
}
],
"total": 1,
"page": 1,
"per_page": 25
}Campos da resposta
ordersarray[] quando não há nenhum.totalintegerpageintegerper_pageintegerorders[].order_iduuidorders[].account_iduuidorders[].marketplacestringorders[].account_namestringorders[].ext_order_idstringorders[].order_numberstringorders[].ext_statusstringorders[].local_statusstringpending, processing, paid...).orders[].local_letterstringorders[].total_centsintegerorders[].customer_namestringorders[].items_countintegerorders[].invoice_neededbooleanorders[].invoice_keystringorders[].invoice_uploaded_atstringorders[].invoice_statestringorders[].tracking_numberstringorders[].label_fetched_atstringorders[].shipped_atstringorders[].is_b2bbooleanorders[].purchase_orderstringorders[].fulfillmentstringorders[].create_statestringorders[].create_errorstringorders[].create_attemptsintegerorders[].money_pending_centsintegerorders[].created_atstringorders[].updated_atstringDetalhe de um pedido
/api/v1/vendor/markethub/orders/detailSellerDetalhe de um pedido do canal, com pacotes e jobs
Abre um vínculo, mesmo o que ainda não virou pedido na loja. Traz os pacotes (um pedido pode ser dividido em mais de um envio) e os jobs recentes dele. Os dois parâmetros são obrigatórios.
Parâmetros de consulta
accountuuidobrigatórioext_order_idstringobrigatório{
"order": { "order_id": "e148b6aa-d495-4b89-92ab-f38b5979a43f", "ext_order_id": "2000008812345678", "ext_status": "paid", "total_cents": 129900 },
"packages": [
{ "package_number": "PKG-1", "items": [{ "item_id": "MLB123456789", "qty": 1 }] }
],
"jobs": []
}Campos da resposta
orderobjectpackagesarraypackages[].package_numberstringpackages[].itemsarrayitem_id, qty e, conforme o canal, model_id, order_item_id.jobsarrayPedir nova busca de um período
/api/v1/vendor/markethub/orders/pullSellerEnfileira a busca de pedidos de um período
Pede ao Hub que busque no canal os pedidos de um período, por exemplo quando um webhook se perdeu. Só enfileira: não chama o canal agora. A resposta traz o job criado; consulte-o até virar S. Só contas em sandbox ou em execução seca aceitam este pedido manual; numa conta de produção a busca é feita pela plataforma sozinha.
Corpo da requisição
account_iduuidobrigatóriofromstringobrigatórioAAAA-MM-DD. Não pode ser mais antigo que 90 dias.untilstringobrigatórioAAAA-MM-DD, inclusive. A janela inteira pode ter no máximo 15 dias e o fim no máximo 48 horas adiante.{
"job": {
"id": 4830,
"account_id": "e4648fc4-dd0d-45cd-9eaf-4fad48de4a78",
"kind": "order_pull",
"status": "P",
"attempts": 0,
"run_after": "2026-10-11T22:10:00Z",
"created_at": "2026-10-11T22:10:00Z"
},
"done": false
}Campos da resposta
jobobjectdonebooleantrue só quando o job já terminou com sucesso. Recém-criado, é false.Pedir nova busca de pedidos específicos
/api/v1/vendor/markethub/orders/retrySellerEnfileira nova busca de pedidos do canal
Para pedidos que chegaram com erro (create_error), enfileira uma nova leitura de cada um no canal. Mesmas regras de conta do pull: só sandbox ou execução seca.
Corpo da requisição
linksarrayobrigatóriolinks[].account_iduuidobrigatóriolinks[].ext_order_idstringobrigatório{
"jobs": [
{ "id": 4831, "account_id": "e4648fc4-dd0d-45cd-9eaf-4fad48de4a78", "kind": "order_fetch", "status": "P", "attempts": 0 }
],
"done": false
}Baixar a etiqueta de envio
/api/v1/vendor/markethub/orders/{orderID}/labelSellerBaixa a etiqueta de envio do pedido
Devolve o arquivo da etiqueta, não JSON: application/pdf (padrão) ou texto text/plain quando o formato é ZPL (impressoras térmicas). Se a etiqueta já foi baixada antes, vem da cópia guardada; se não, é buscada no canal e guardada. orderID é o order_id do pedido na loja.
Parâmetros de caminho
orderIDuuidobrigatórioorder_id da lista).Parâmetros de consulta
formatstringpdfzplExemplo de requisição
# pedidos pagos dos últimos dias
curl "$BASE_URL/api/v1/vendor/markethub/orders?status=P&from=2026-10-08&until=2026-10-11" \
-H "Authorization: Bearer $TOKEN"
# etiqueta em PDF
curl "$BASE_URL/api/v1/vendor/markethub/orders/$ORDER_ID/label?format=pdf" \
-H "Authorization: Bearer $TOKEN" -o etiqueta.pdfErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | from ou until fora do formato AAAA-MM-DD. | {"error":"invalid from","detail":"data em formato não aceito: \"bad\". ..."} |
| 400 | detail sem account ou ext_order_id. | {"error":"failed to load order","detail":"markethub: invalid input"} |
| 400 | pull: janela inválida (vazia, maior que 15 dias, início com mais de 90 dias, fim a mais de 48 horas) ou conta de produção. | {"error":"failed to queue order pull","detail":"markethub: invalid input"} |
| 400 | retry: lista vazia, com mais de 50 itens, item sem campos ou conta de produção. | {"error":"failed to queue retry","detail":"markethub: invalid input"} |
| 401 | Sem token. | {"error":"authentication required"} |
| 403 | Módulo desligado. | {"error":"module_disabled","module":"marketplace-hub"} |
| 404 | Pedido ou conta de outro seller, ou inexistente. | {"error":"failed to load order","detail":"markethub: order not found"} |
| 409 | Conta desligada (pull e retry). | {"error":"failed to queue order pull","detail":"..."} |
| 500 | Id que não é UUID, ou etiqueta de pedido sem vínculo com o canal. | {"error":"failed to get label","detail":"sql: no rows in result set"} |