Endpoint
Parâmetros
| Parâmetro | Tipo | Ocorrência | Descrição |
|---|---|---|---|
| token | string | obrigatório | Chave gerada para identificar sua empresa |
| formato | string | obrigatório | Formato do retorno (json) |
| pedido | xml/json | obrigatório | Dados do pedido em formato XML ou JSON |
Estrutura de Campos
Dados Gerais do Pedido
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| pedido | object | - | obrigatório | Elemento raiz do pedido |
| data_pedido | string | 10 | opcional | Data do pedido (formato dd/mm/aaaa) |
| data_prevista | string | 10 | opcional | Data de previsão do pedido |
| id_lista_preco | int | - | opcional | Identificador da lista de preços |
| numero_pedido_ecommerce | string | 50 | opcional | ID do pedido no e-commerce |
| id_ecommerce | int | - | opcional | ID da plataforma e-commerce |
| ecommerce | string | 50 | opcional | Plataforma que está enviando o pedido |
| situacao | string | 15 | opcional | Situação conforme tabela de pedidos |
| numero_ordem_compra | string | 10 | opcional | Número de ordem de compra |
Cliente
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| cliente | object | - | obrigatório | Elemento do cliente |
| cliente.nome | string | 30 | obrigatório | Nome do cliente |
| cliente.codigo | string | 30 | opcional | Código para pesquisa do cliente |
| cliente.nome_fantasia | string | 60 | opcional | Nome fantasia do cliente |
| cliente.tipo_pessoa | string | 1 | opcional | F (Física), J (Jurídica), E (Estrangeiro) |
| cliente.cpf_cnpj | string | 18 | opcional | CPF ou CNPJ |
| cliente.ie | string | 18 | opcional | Inscrição estadual |
| cliente.rg | string | 10 | opcional | RG do cliente |
| cliente.endereco | string | 50 | opcional | Endereço |
| cliente.numero | string | 10 | opcional | Número do endereço |
| cliente.complemento | string | 50 | opcional | Complemento |
| cliente.bairro | string | 30 | opcional | Bairro |
| cliente.cep | string | 10 | opcional | CEP |
| cliente.cidade | string | 30 | opcional | Cidade conforme tabela de municípios |
| cliente.uf | string | 30 | opcional | Unidade Federativa |
| cliente.pais | string | 50 | opcional | País conforme tabela |
| cliente.fone | string | 40 | opcional | Telefone |
| cliente.email | string | 50 | opcional | |
| cliente.atualizar_cliente | string | 1 | opcional | ”S” (Sim) ou “N” (Não) - padrão “S” |
| cliente.cpfConsumidorFinal | string | 18 | opcional | CPF para consumidor final |
Endereço de Entrega (Opcional, se diferente do cliente)
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| endereco_entrega | object | - | opcional | Elemento do endereço de entrega |
| endereco_entrega.tipo_pessoa | string | 1 | opcional | Tipo de pessoa |
| endereco_entrega.cpf_cnpj | string | 18 | opcional | CPF/CNPJ de entrega |
| endereco_entrega.endereco | string | 50 | opcional | Logradouro |
| endereco_entrega.numero | string | 10 | opcional | Número |
| endereco_entrega.complemento | string | 50 | opcional | Complemento |
| endereco_entrega.bairro | string | 30 | opcional | Bairro |
| endereco_entrega.cep | string | 10 | opcional | CEP |
| endereco_entrega.cidade | string | 30 | opcional | Cidade |
| endereco_entrega.uf | string | 30 | opcional | UF |
| endereco_entrega.fone | string | 40 | opcional | Telefone |
| endereco_entrega.nome_destinatario | string | 60 | opcional | Nome do destinatário |
| endereco_entrega.ie | string | 18 | opcional | Inscrição estadual |
Itens do Pedido
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| itens[] | list | - | obrigatório | Lista de itens |
| itens[].item | object | - | obrigatório | Elemento do item |
| item.id_produto | int | - | opcional | ID do produto |
| item.codigo | string | 60 | opcional | Código do produto |
| item.descricao | string | 120 | obrigatório | Descrição do Produto |
| item.unidade | string | 3 | obrigatório | Unidade (UN, KG, etc) |
| item.quantidade | decimal | - | obrigatório | Quantidade (usa ”.” como separador) |
| item.valor_unitario | decimal | - | obrigatório | Valor unitário |
| item.aliquota_comissao | decimal | - | opcional | Alíquota de comissão do item |
| item.informacao_adicional | string | - | opcional | Informação adicional |
Marcadores
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| marcadores[] | list | - | opcional | Lista de marcadores |
| marcadores[].marcador | object | - | opcional | Elemento do marcador |
| marcador.id | int | - | opcional | ID do marcador existente |
| marcador.descricao | string | 50 | opcional | Descrição (cria novo se não existir) |
Informações de Pagamento
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| forma_pagamento | string | 30 | opcional | Código conforme tabela de formas |
| meio_pagamento | string | 100 | opcional | Descrição do meio |
Parcelas
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| parcelas[] | list | - | opcional | Lista de parcelas |
| parcelas[].parcela | object | - | opcional | Elemento da parcela |
| parcela.dias | int | 20 | opcional | Dias de vencimento |
| parcela.data | string | 10 | opcional | Data de vencimento (dd/mm/aaaa) |
| parcela.valor | decimal | - | opcional | Valor da parcela |
| parcela.obs | string | 100 | opcional | Observação |
| parcela.destino | string | 50 | opcional | Destino (Caixa, Contas a Receber) |
| parcela.forma_pagamento | string | 30 | opcional | Forma de pagamento |
| parcela.meio_pagamento | string | 100 | opcional | Meio de pagamento |
Transportadora e Frete
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| nome_transportador | string | 100 | opcional | Nome da transportadora |
| frete_por_conta | string | 1 | opcional | ”R” (Remetente) ou “D” (Destinatário) |
| valor_frete | decimal | - | opcional | Valor do frete |
| forma_envio | string | 30 | opcional | Forma conforme tabela |
| forma_frete | string | 30 | opcional | Forma cadastrada (ex: PAC) |
Descontos e Despesas
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| valor_desconto | decimal | - | opcional | Valor total de desconto |
| outras_despesas | decimal | - | opcional | Outras despesas |
Observações
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| obs | string | 100 | opcional | Observação do pedido |
| obs_internas | string | 100 | opcional | Observação interna |
Vendedor
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| id_vendedor | int | - | opcional | ID do vendedor |
| nome_vendedor | string | 50 | opcional | Nome (desconsiderado se id_vendedor informado) |
Campos Tributários
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| id_natureza_operacao | string | - | opcional | ID da natureza de operação |
| nome_natureza_operacao | string | - | opcional | Nome da natureza |
| nome_deposito | string | - | opcional | Nome do depósito |
Intermediador (Opcional)
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| intermediador | object | - | opcional | Elemento do intermediador |
| intermediador.nome | string | 60 | condicional | Nome do intermediador (obrigatório se presente) |
| intermediador.cnpj | string | 18 | condicional | CNPJ (obrigatório se presente) |
| intermediador.cnpjPagamento | string | 18 | opcional | CNPJ da instituição de pagamento |
Pagamentos Integrados (Opcional)
| Campo | Tipo | Tamanho | Ocorrência | Descrição |
|---|---|---|---|---|
| pagamentos_integrados[] | list | - | opcional | Lista de pagamentos integrados |
| pagamentos_integrados[].pagamento_integrado | object | - | condicional | Elemento do pagamento |
| pagamento_integrado.tipo_pagamento | int | - | obrigatório | Código conforme tabela NFe |
| pagamento_integrado.valor | decimal | - | obrigatório | Valor do pagamento |
| pagamento_integrado.cnpj_intermediador | string | 14 | obrigatório | CNPJ intermediador |
| pagamento_integrado.codigo_autorizacao | string | - | obrigatório | Código de autorização |
| pagamento_integrado.codigo_bandeira | int | - | obrigatório | Bandeira do cartão |
Retorno
| Campo | Tipo | Ocorrência | Descrição |
|---|---|---|---|
| retorno | object | obrigatório | Elemento raiz do retorno |
| retorno.status_processamento | int | obrigatório | Conforme tabela “Status de Processamento” |
| retorno.status | string | obrigatório | ”OK” ou “Erro” |
| retorno.codigo_erro | int | condicional | Código do erro (quando status = “Erro”) |
| retorno.erros[] | list | condicional | Lista de erros [0..n] |
| retorno.erros[].erro | string | condicional | Descrição do erro |
| retorno.registros[] | list | condicional | Lista de resultados [0..n] |
| retorno.registros[].registro.sequencia | int | condicional | Identificador sequencial de cada pedido |
| retorno.registros[].registro.status | string | condicional | Status do registro: “OK” ou “Erro” |
| retorno.registros[].registro.codigo_erro | int | condicional | Código do erro (conforme tabela) |
| retorno.registros[].registro.erros[] | list | condicional | Lista de erros do registro [0..n] |
| retorno.registros[].registro.erros[].erro | string | condicional | Descrição do erro do registro |
| retorno.registros[].registro.id | int | condicional | ID do pedido no Olist ERP |
| retorno.registros[].registro.numero | int | condicional | Número do pedido no Olist |
Exemplo de Parâmetro XML Simplificado
Exemplo de Parâmetro JSON Simplificado
Exemplo de Parâmetro XML Completo
Exemplo de Parâmetro JSON Completo
Exemplo de Chamada com XML
Exemplo de Chamada REST com JSON
Exemplos de Retorno
Sucesso
Erro - Validação (campo obrigatório faltando)
Erro - Cliente não encontrado
Erro - Produto sem estoque
Erro - Autenticação
Erro - Registro duplicado
Notas Importantes
- Separador decimal: Use ponto (.) para valores decimais, por exemplo “5.25”
- Formato de data: dd/mm/aaaa, por exemplo “20/05/2024”
- Comportamento de busca: Campos de código buscam registros existentes; registros encontrados carregam dados adicionais do banco
- Atualização de cliente: Por padrão, os dados do cliente são atualizados (atualizar_cliente = “S”)
- Validação de vendedor: Vendedores não existentes geram erro
- Tratamento de marcadores: Marcadores não encontrados são criados automaticamente
