Endpoint
POST https://api.tiny.com.br/api2/pedido.incluir.php
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
<?xml version="1.0" encoding="UTF-8"?>
<pedido>
<numero_pedido_ecommerce>LOJA-2024-5678</numero_pedido_ecommerce>
<data_pedido>20/05/2024</data_pedido>
<data_prevista>27/05/2024</data_prevista>
<situacao>aprovado</situacao>
<cliente>
<nome>João da Silva</nome>
<cpf_cnpj>123.456.789-00</cpf_cnpj>
<email>joao@email.com</email>
<telefone>(11) 98765-4321</telefone>
<endereco>Rua Exemplo</endereco>
<numero>100</numero>
<bairro>Centro</bairro>
<cidade>São Paulo</cidade>
<uf>SP</uf>
<cep>01310-100</cep>
</cliente>
<itens>
<item>
<codigo>PROD-001</codigo>
<descricao>Produto Exemplo</descricao>
<unidade>UN</unidade>
<quantidade>2</quantidade>
<valor_unitario>99.90</valor_unitario>
</item>
</itens>
<parcelas>
<parcela>
<dias>0</dias>
<data>20/05/2024</data>
<valor>225.30</valor>
<forma_pagamento>Cartão de Crédito</forma_pagamento>
</parcela>
</parcelas>
<valor_frete>25.50</valor_frete>
<valor_desconto>0.00</valor_desconto>
</pedido>
Exemplo de Parâmetro JSON Simplificado
{
"pedido": {
"numero_pedido_ecommerce": "LOJA-2024-5678",
"data_pedido": "20/05/2024",
"data_prevista": "27/05/2024",
"situacao": "aprovado",
"cliente": {
"nome": "João da Silva",
"cpf_cnpj": "123.456.789-00",
"email": "joao@email.com",
"telefone": "(11) 98765-4321",
"endereco": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"cidade": "São Paulo",
"uf": "SP",
"cep": "01310-100"
},
"itens": [
{
"item": {
"codigo": "PROD-001",
"descricao": "Produto Exemplo",
"unidade": "UN",
"quantidade": "2",
"valor_unitario": "99.90"
}
}
],
"parcelas": [
{
"parcela": {
"dias": "0",
"data": "20/05/2024",
"valor": "225.30",
"forma_pagamento": "Cartão de Crédito"
}
}
],
"valor_frete": "25.50",
"valor_desconto": "0.00"
}
}
Exemplo de Parâmetro XML Completo
<?xml version="1.0" encoding="UTF-8"?>
<pedido>
<numero_pedido_ecommerce>ECOM-2024-9876</numero_pedido_ecommerce>
<data_pedido>20/05/2024</data_pedido>
<data_prevista>27/05/2024</data_prevista>
<ecommerce>Loja Virtual Premium</ecommerce>
<situacao>aprovado</situacao>
<numero_ordem_compra>OC123456</numero_ordem_compra>
<cliente>
<codigo>CLI001</codigo>
<nome>João da Silva</nome>
<nome_fantasia>JS Comercio</nome_fantasia>
<tipo_pessoa>F</tipo_pessoa>
<cpf_cnpj>123.456.789-00</cpf_cnpj>
<rg>12.345.678-9</rg>
<ie>ISENTO</ie>
<endereco>Rua Exemplo</endereco>
<numero>100</numero>
<complemento>Apto 101</complemento>
<bairro>Centro</bairro>
<cep>01310-100</cep>
<cidade>São Paulo</cidade>
<uf>SP</uf>
<pais>Brasil</pais>
<fone>(11) 98765-4321</fone>
<email>joao@email.com</email>
<atualizar_cliente>S</atualizar_cliente>
</cliente>
<endereco_entrega>
<tipo_pessoa>F</tipo_pessoa>
<cpf_cnpj>123.456.789-00</cpf_cnpj>
<nome_destinatario>João da Silva</nome_destinatario>
<endereco>Av. Principal</endereco>
<numero>200</numero>
<complemento>Casa 2</complemento>
<bairro>Jardins</bairro>
<cep>12345-678</cep>
<cidade>São Paulo</cidade>
<uf>SP</uf>
<fone>(11) 98765-4321</fone>
</endereco_entrega>
<itens>
<item>
<id_produto>12345</id_produto>
<codigo>PROD-001</codigo>
<descricao>Notebook Dell Inspiron 15</descricao>
<unidade>UN</unidade>
<quantidade>2</quantidade>
<valor_unitario>2500.00</valor_unitario>
<aliquota_comissao>5.00</aliquota_comissao>
<informacao_adicional>Notebook com 8GB RAM, SSD 256GB</informacao_adicional>
</item>
<item>
<codigo>PROD-002</codigo>
<descricao>Mouse sem fio</descricao>
<unidade>UN</unidade>
<quantidade>2</quantidade>
<valor_unitario>50.00</valor_unitario>
<informacao_adicional>Mouse óptico wireless</informacao_adicional>
</item>
</itens>
<marcadores>
<marcador>
<descricao>E-commerce</descricao>
</marcador>
<marcador>
<descricao>Promoção</descricao>
</marcador>
</marcadores>
<forma_pagamento>credito</forma_pagamento>
<meio_pagamento>Cartão de Crédito Visa</meio_pagamento>
<parcelas>
<parcela>
<dias>0</dias>
<data>20/05/2024</data>
<valor>1700.00</valor>
<obs>Entrada</obs>
<destino>Contas a Receber</destino>
<forma_pagamento>dinheiro</forma_pagamento>
<meio_pagamento>Dinheiro</meio_pagamento>
</parcela>
<parcela>
<dias>30</dias>
<data>20/06/2024</data>
<valor>1700.00</valor>
<obs>Primeira parcela</obs>
<destino>Contas a Receber</destino>
<forma_pagamento>credito</forma_pagamento>
<meio_pagamento>Cartão de Crédito</meio_pagamento>
</parcela>
<parcela>
<dias>60</dias>
<data>20/07/2024</data>
<valor>1700.00</valor>
<obs>Segunda parcela</obs>
<destino>Contas a Receber</destino>
<forma_pagamento>credito</forma_pagamento>
<meio_pagamento>Cartão de Crédito</meio_pagamento>
</parcela>
</parcelas>
<nome_transportador>Transportadora Rápida Ltda</nome_transportador>
<frete_por_conta>R</frete_por_conta>
<valor_frete>50.00</valor_frete>
<forma_envio>X</forma_envio>
<forma_frete>PAC</forma_frete>
<valor_desconto>200.00</valor_desconto>
<outras_despesas>30.00</outras_despesas>
<obs>Pedido realizado através do site</obs>
<obs_internas>Cliente preferencial - entrega prioritária</obs_internas>
<id_vendedor>789</id_vendedor>
<nome_vendedor>Maria Vendedora</nome_vendedor>
<id_natureza_operacao>12345</id_natureza_operacao>
<nome_natureza_operacao>Venda</nome_natureza_operacao>
<nome_deposito>Deposito Principal</nome_deposito>
</pedido>
Exemplo de Parâmetro JSON Completo
{
"pedido": {
"numero_pedido_ecommerce": "ECOM-2024-9876",
"data_pedido": "20/05/2024",
"data_prevista": "27/05/2024",
"ecommerce": "Loja Virtual Premium",
"situacao": "aprovado",
"numero_ordem_compra": "OC123456",
"cliente": {
"codigo": "CLI001",
"nome": "João da Silva",
"nome_fantasia": "JS Comercio",
"tipo_pessoa": "F",
"cpf_cnpj": "123.456.789-00",
"rg": "12.345.678-9",
"ie": "ISENTO",
"endereco": "Rua Exemplo",
"numero": "100",
"complemento": "Apto 101",
"bairro": "Centro",
"cep": "01310-100",
"cidade": "São Paulo",
"uf": "SP",
"pais": "Brasil",
"fone": "(11) 98765-4321",
"email": "joao@email.com",
"atualizar_cliente": "S"
},
"endereco_entrega": {
"tipo_pessoa": "F",
"cpf_cnpj": "123.456.789-00",
"nome_destinatario": "João da Silva",
"endereco": "Av. Principal",
"numero": "200",
"complemento": "Casa 2",
"bairro": "Jardins",
"cep": "12345-678",
"cidade": "São Paulo",
"uf": "SP",
"fone": "(11) 98765-4321"
},
"itens": [
{
"item": {
"id_produto": "12345",
"codigo": "PROD-001",
"descricao": "Notebook Dell Inspiron 15",
"unidade": "UN",
"quantidade": "2",
"valor_unitario": "2500.00",
"aliquota_comissao": "5.00",
"informacao_adicional": "Notebook com 8GB RAM, SSD 256GB"
}
},
{
"item": {
"codigo": "PROD-002",
"descricao": "Mouse sem fio",
"unidade": "UN",
"quantidade": "2",
"valor_unitario": "50.00",
"informacao_adicional": "Mouse óptico wireless"
}
}
],
"marcadores": [
{
"marcador": {
"descricao": "E-commerce"
}
},
{
"marcador": {
"descricao": "Promoção"
}
}
],
"forma_pagamento": "credito",
"meio_pagamento": "Cartão de Crédito Visa",
"parcelas": [
{
"parcela": {
"dias": "0",
"data": "20/05/2024",
"valor": "1700.00",
"obs": "Entrada",
"destino": "Contas a Receber",
"forma_pagamento": "dinheiro",
"meio_pagamento": "Dinheiro"
}
},
{
"parcela": {
"dias": "30",
"data": "20/06/2024",
"valor": "1700.00",
"obs": "Primeira parcela",
"destino": "Contas a Receber",
"forma_pagamento": "credito",
"meio_pagamento": "Cartão de Crédito"
}
},
{
"parcela": {
"dias": "60",
"data": "20/07/2024",
"valor": "1700.00",
"obs": "Segunda parcela",
"destino": "Contas a Receber",
"forma_pagamento": "credito",
"meio_pagamento": "Cartão de Crédito"
}
}
],
"nome_transportador": "Transportadora Rápida Ltda",
"frete_por_conta": "R",
"valor_frete": "50.00",
"forma_envio": "X",
"forma_frete": "PAC",
"valor_desconto": "200.00",
"outras_despesas": "30.00",
"obs": "Pedido realizado através do site",
"obs_internas": "Cliente preferencial - entrega prioritária",
"id_vendedor": "789",
"nome_vendedor": "Maria Vendedora",
"id_natureza_operacao": "12345",
"nome_natureza_operacao": "Venda",
"nome_deposito": "Deposito Principal"
}
}
Exemplo de Chamada com XML
curl -X POST https://api.tiny.com.br/api2/pedido.incluir.php \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "token=SEU_TOKEN" \
-d "formato=json" \
--data-urlencode "pedido=<?xml version=\"1.0\" encoding=\"UTF-8\"?><pedido><numero_pedido_ecommerce>LOJA-2024-5678</numero_pedido_ecommerce><data_pedido>20/05/2024</data_pedido><situacao>aprovado</situacao><cliente><nome>João da Silva</nome><cpf_cnpj>123.456.789-00</cpf_cnpj><email>joao@email.com</email></cliente><itens><item><codigo>PROD-001</codigo><descricao>Produto Exemplo</descricao><unidade>UN</unidade><quantidade>2</quantidade><valor_unitario>99.90</valor_unitario></item></itens><valor_frete>25.50</valor_frete></pedido>"
Exemplo de Chamada REST com JSON
# Exemplo com JSON
curl -X POST https://api.tiny.com.br/api2/pedido.incluir.php \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "token=SEU_TOKEN" \
-d "formato=json" \
--data-urlencode "pedido=$(cat <<'EOF'
{
"pedido": {
"numero_pedido_ecommerce": "LOJA-2024-5678",
"data_pedido": "20/05/2024",
"data_prevista": "27/05/2024",
"situacao": "aprovado",
"cliente": {
"nome": "João da Silva",
"cpf_cnpj": "123.456.789-00",
"email": "joao@email.com",
"telefone": "(11) 98765-4321",
"endereco": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"cidade": "São Paulo",
"uf": "SP",
"cep": "01310-100"
},
"itens": [
{
"item": {
"codigo": "PROD-001",
"descricao": "Produto Exemplo",
"unidade": "UN",
"quantidade": "2",
"valor_unitario": "99.90"
}
}
],
"valor_frete": "25.50"
}
}
EOF
)"
Exemplos de Retorno
Sucesso
{
"retorno": {
"status_processamento": 3,
"status": "OK",
"registros": [
{
"registro": {
"sequencia": 1,
"status": "OK",
"id": 789456,
"numero": 12345
}
}
]
}
}
Erro - Validação (campo obrigatório faltando)
{
"retorno": {
"status_processamento": 2,
"status": "Erro",
"codigo_erro": 31,
"registros": [
{
"registro": {
"sequencia": "1",
"status": "Erro",
"codigo_erro": "31",
"erros": [
{"erro": "O campo cliente.nome é obrigatório"},
{"erro": "O campo itens é obrigatório"}
]
}
}
]
}
}
Erro - Cliente não encontrado
{
"retorno": {
"status_processamento": 2,
"status": "Erro",
"codigo_erro": 30,
"registros": [
{
"registro": {
"sequencia": "1",
"status": "Erro",
"codigo_erro": "30",
"erros": [
{"erro": "Cliente com código CLI999 não encontrado"}
]
}
}
]
}
}
Erro - Produto sem estoque
{
"retorno": {
"status_processamento": 2,
"status": "Erro",
"codigo_erro": 30,
"registros": [
{
"registro": {
"sequencia": "1",
"status": "Erro",
"codigo_erro": "30",
"erros": [
{"erro": "Produto PROD-001 sem estoque disponível"}
]
}
}
]
}
}
Erro - Autenticação
{
"retorno": {
"status_processamento": 1,
"status": "Erro",
"codigo_erro": 2,
"erros": [
{"erro": "token invalido"}
]
}
}
Erro - Registro duplicado
{
"retorno": {
"status_processamento": 2,
"status": "Erro",
"codigo_erro": 30,
"registros": [
{
"registro": {
"sequencia": "1",
"status": "Erro",
"codigo_erro": "30",
"erros": [
{"erro": "Pedido com número LOJA-2024-5678 já existe"}
]
}
}
]
}
}
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
