Autenticação — OAuth 2.0 Client Credentials
Todas as chamadas exigem um access_token obtido via OAuth 2.0.
Sandbox
POST https://esbtst.peixoto.com.br/sgi-api/oauth/token
Produção
POST https://esb.peixoto.com.br/sgi-api/oauth/token
Exemplo
curl -X POST "https://esbtst.peixoto.com.br/sgi-api/oauth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=seller_1042_hml_a1b2c3d4e5" \
-d "client_secret=SEU_CLIENT_SECRET_HML"
Resposta
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 86399,
"scope": "read write",
"codigoSeller": 1042,
"ambiente": "HML"
}
Swagger do Portal Seller
O Swagger (OpenAPI) é a referência operacional dos endpoints. Use o ambiente correspondente às suas credenciais:
No Swagger, clique em Authorize e informe Bearer <access_token> para executar os endpoints. Em caso de divergência entre exemplos e o Swagger, vale o Swagger do ambiente.
Produtos
Cadastrar ou atualizar
POST /portal-seller/produtos/salvar/{codigoSeller}/{codigoUsuario}
curl -X POST "https://esbtst.peixoto.com.br/portal-seller/produtos/salvar/1042/1042" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"codigoProdutoSeller": "SKU-1001",
"descricao": "DETERGENTE NEUTRO 500ML",
"codigoNcmBase": "3402.20.00",
"codigoBarrasEAN": "7891234567890",
"codigoMarca": 15,
"codigoMercadoria": 100,
"codigoDepartamento": 5,
"codigoCategoria": 12,
"peso": 0.500,
"altura": 20.00,
"largura": 10.00,
"comprimento": 10.00,
"prazoValidade": 365,
"quantidadeMinimaFracionada": 1
}'
Consultar catálogo
GET /portal-seller/produtos/buscar?codigoFornecedorSeller={codigoSeller}
Estoque
Atualizar quantidade
PUT /portal-seller/estoques/atualizar/{codigoProdutoPeixoto}/{quantidadeEstoque}
curl -X PUT "https://esbtst.peixoto.com.br/portal-seller/estoques/atualizar/998811/150" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json"
Consultar estoques
GET /portal-seller/estoques/buscar?codigoFornecedorSeller={codigoSeller}
Preços
Cadastrar ou atualizar
POST /portal-seller/precos/salvar
curl -X POST "https://esbtst.peixoto.com.br/portal-seller/precos/salvar" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"produto": { "codigo": 998811 },
"estado": { "codigo": 13 },
"valorPrecoBase": 49.90,
"dataInicio": "2026-09-01T00:00:00.000Z",
"dataFim": "2026-12-31T23:59:59.000Z"
}'
Consultar
GET /portal-seller/precos/buscar?codigoSeller={codigoSeller}
Prazos de entrega
Cadastrar ou atualizar
POST /portal-seller/prazos/salvar/{codigoSeller}
curl -X POST "https://esbtst.peixoto.com.br/portal-seller/prazos/salvar/1042" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"estado": { "codigo": 13 },
"cepInicio": "38400000",
"cepFim": "38400999",
"quantidadeDiasEntrega": 3,
"dataInicio": "2026-08-25T00:00:00.000Z"
}'
Consultar
GET /portal-seller/prazos/buscar?codigoSeller={codigoSeller}
Pedido mínimo
Cadastrar ou atualizar
POST /portal-seller/pedidoMinimo/salvar
curl -X POST "https://esbtst.peixoto.com.br/portal-seller/pedidoMinimo/salvar" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"id": {
"fornecedor": { "codigoPessoa": 1042 },
"estado": { "codigo": 13 }
},
"valor": 1500.00
}'
Consultar
GET /portal-seller/pedidoMinimo/buscar?codigoSeller={codigoSeller}
Pedidos e faturamento
Registrar rastreio / status
POST /portal-seller/pedidos/registrarRastreio
curl -X POST "https://esbtst.peixoto.com.br/portal-seller/pedidos/registrarRastreio" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"id": { "numeroPedido": 554433 },
"codigoRastreamento": "BR123456789XX",
"descricaoTransportadora": "LOGGI",
"dataEnvio": "2026-10-01",
"linkTransportadora": "https://rastreio.loggi.com/BR123456789XX"
}'
Cancelar pedido
POST /portal-seller/pedidos/cancelarPedido
curl -X POST "https://esbtst.peixoto.com.br/portal-seller/pedidos/cancelarPedido" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"numeroPedido": 554433,
"motivo": 2,
"usuario": "261",
"observacao": "Item sem estoque no momento"
}'
Consultar pedido
GET /portal-seller/pedidos/buscarPedidoPorCodigo/{numeroPedido}
Pessoas — CNPJ → codigoPessoa
O codigoPessoaSeller é o próprio codigoSeller (obtido na tela de API / Geração das chaves do Portal Seller). Para o codigoPessoaCliente (boletos), use a busca de clientes do Portal Seller pelo CNPJ/CPF:
GET /portal-seller/pedidos/cliente/buscar?cnpjCpf={cnpj}
curl -X GET "https://esb.peixoto.com.br/portal-seller/pedidos/cliente/buscar?cnpjCpf=49729598000143" \
-H "Authorization: Bearer {token}"
A resposta traz codigoCliente e codigoPessoa do cliente, por exemplo:
[{"codigoCliente": 123, "codigoPessoa": 789, "nome": "CLIENTE LTDA", "cnpjCpf": "12345678000199"}]
Imagens de produto
O envio é desacoplado do cadastro do produto e o vínculo é feito pelo nome do arquivo, que deve conter o codigoProdutoSeller (SKU). Várias imagens podem ser associadas ao mesmo produto usando o sufixo _N.
Enviar imagens
POST /portal-seller/imagem/upload?deveSalvarHistoricoImportacao=true
curl -X POST "https://esbtst.peixoto.com.br/portal-seller/imagem/upload?deveSalvarHistoricoImportacao=true" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '[
{
"nomeArquivo": "SKU-1001_1.jpg",
"base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD...",
"codigoFornecedorSeller": 123,
"codigoUsuario": 456,
"tipoPastaArquivo": "IMAGENS",
"tipoArquivo": "IMAGEM_PRODUTO"
}
]'
Requisitos técnicos
- O campo
base64 deve conter a declaração Data URI (data:image/jpeg;base64,...).
- Formatos aceitos: .jpg, .jpeg e .png.
- Dimensão máxima: 1080 × 1080 pixels.
codigoUsuario é o código numérico do usuário da integração, obtido na tela de API / Geração das chaves do Portal Seller.
Consultar imagens
GET /portal-seller/imagem?codigoProdutoPeixoto={codigoProdutoPeixoto}
Arquivos e NF-e
Transferência e consulta de XML/PDF de NF-e, comprovante de entrega, imagens e outros arquivos do pedido.
Enviar XML/PDF da NF-e
POST /portal-seller/amazon/uploadArquivo
curl -X POST "https://esbtst.peixoto.com.br/portal-seller/amazon/uploadArquivo" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '[
{
"nomeArquivo": "NFE_123456.xml",
"base64": "data:text/xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4...",
"numeroPedido": 123456,
"codigoFornecedorSeller": 123,
"codigoUsuario": 456,
"tipoPastaArquivo": "PEDIDOS",
"tipoArquivo": "XML_NOTA_FISCAL"
}
]'
Tipos de arquivo: XML_NOTA_FISCAL, PDF_NOTA_FISCAL e COMPROVANTE_ENTREGA.
Tipos de pasta: PEDIDOS, PLANILHAS, IMAGENS e OCORRENCIAS.
Baixar arquivo
GET /portal-seller/amazon/downloadArquivo?tipoPastaArquivo=PEDIDOS&tipoArquivo=XML_NOTA_FISCAL&nomePasta={numeroPedido}&nomeArquivo=NFE_123456.xml
Obter URL temporária
GET /portal-seller/amazon/buscarUrlArquivo?tipoPastaArquivo=PEDIDOS&tipoArquivo=XML_NOTA_FISCAL&nomePasta={numeroPedido}&nomeArquivo=NFE_123456.xml
Consultar informações fiscais
GET /portal-seller/informacoesNotaFiscal/buscar?numeroPedido={numeroPedido}
Histórico de transferência de arquivos
GET /portal-seller/pedidos/buscarHistoricoTransferenciaArquivoSellerPorNumeroPedido/{numeroPedido}
Boletos bancários
Download do boleto
GET /portal-seller/pedidos/downloadBoletoPedido?numeroPedido={numeroPedido}&codigoPessoaSeller={codigoPessoaSeller}&codigoPessoaCliente={codigoPessoaCliente}
curl -X GET "https://esbtst.peixoto.com.br/portal-seller/pedidos/downloadBoletoPedido?numeroPedido=123456&codigoPessoaSeller=123&codigoPessoaCliente=789" \
-H "Authorization: Bearer {token}" \
-o boleto.pdf
A resposta é um PDF (application/octet-stream). O codigoPessoaCliente pode ser obtido a partir do CNPJ do cliente pela busca de clientes em CNPJ → codigoPessoa.
APIs dos ERPs
Documentação oficial de cada ERP: