Skip to main content

Endpoint

POST https://api.tiny.com.br/api2/contato.alterar.php
Serviço destinado a modificar cadastros de contatos existentes no sistema Olist.

Parâmetros

ParâmetroTipoOcorrênciaDescrição
tokenstringobrigatórioChave gerada para identificar sua empresa
contatoobjectobrigatórioEstrutura de dados do contato conforme layout
formatostringobrigatórioFormato do retorno. Use json

Estrutura do objeto contato

Campos principais

CampoTipoTamanhoOcorrênciaDescrição
sequenciaint-obrigatórioNúmero sequencial para identificar cada contato
idint-opcionalID do contato na Olist (1)
codigostring30opcionalCódigo do contato (1)
nomestring50obrigatórioNome ou razão social
fantasiastring60opcionalNome fantasia
tipo_pessoastring1opcionalF (Física), J (Jurídica), E (Estrangeiro)
cpf_cnpjstring18opcionalCPF ou CNPJ (1)
situacaostring1obrigatórioA (Ativo), I (Inativo), S (Sem movimento)

Informações pessoais

CampoTipoTamanhoOcorrênciaDescrição
iestring18opcionalInscrição estadual
rgstring10opcionalRG
imstring18opcionalInscrição municipal
estadoCivilint-opcionalCódigo do estado civil (3)
profissaostring50opcionalProfissão (3)
sexostring10opcional”masculino” ou “feminino” (3)
data_nascimentostring10opcionalData de nascimento no formato dd/mm/aaaa (3) (4)
naturalidadestring40opcionalNaturalidade (3)
nome_paistring100opcionalNome do pai (3)
cpf_paistring18opcionalCPF do pai (3)
nome_maestring100opcionalNome da mãe (3)
cpf_maestring18opcionalCPF da mãe (3)

Endereço principal

CampoTipoTamanhoOcorrênciaDescrição
enderecostring50opcionalLogradouro
numerostring10opcionalNúmero do endereço
complementostring50opcionalComplemento do endereço
bairrostring30opcionalBairro
cepstring10opcionalCEP
cidadestring30opcionalCidade conforme tabela de municípios
ufstring30opcionalUnidade Federativa
paisstring50opcionalPaís conforme tabela de países

Endereço de cobrança

CampoTipoTamanhoOcorrênciaDescrição
endereco_cobrancastring50opcionalLogradouro de cobrança (2)
numero_cobrancastring10opcionalNúmero do endereço de cobrança (2)
complemento_cobrancastring50opcionalComplemento do endereço de cobrança (2)
bairro_cobrancastring30opcionalBairro de cobrança (2)
cep_cobrancastring10opcionalCEP de cobrança (2)
cidade_cobrancastring30opcionalCidade de cobrança (2)
uf_cobrancastring30opcionalUF de cobrança (2)

Informações de contato

CampoTipoTamanhoOcorrênciaDescrição
contatosstring100opcionalPessoas de contato
fonestring40opcionalTelefone
faxstring40opcionalFax
celularstring40opcionalTelefone celular
emailstring50opcionalE-mail
email_nfestring50opcionalE-mail para recebimento de NFe
sitestring40opcionalWebsite

Informações comerciais

CampoTipoTamanhoOcorrênciaDescrição
crtint1opcionalCódigo de regime tributário: 0 (Não informado), 1 (Simples Nacional), 3 (Normal) (10)
limite_creditodecimal-opcionalLimite de crédito (usar ”.” como separador decimal) (5)
id_vendedorint-opcionalID do vendedor (6)
nome_vendedorstring50opcionalNome do vendedor (7)
obsstring200opcionalObservações gerais

Listas de tipos e pessoas

CampoTipoOcorrênciaDescrição
tipos_contatoarrayopcionalLista de tipos de contato (8)
tipos_contato[].tipostringcondicionalDescrição do tipo (ex: “Cliente”, “Fornecedor”)
pessoas_contatoarrayopcionalLista de pessoas de contato (9)
pessoas_contato[].nomestringcondicionalNome da pessoa de contato (max 50)
pessoas_contato[].telefonestringcondicionalTelefone (max 30)
pessoas_contato[].ramalstringcondicionalRamal (max 20)
pessoas_contato[].emailstringcondicionalE-mail (max 50)
pessoas_contato[].departamentostringcondicionalDepartamento (max 50)
(1) Para localizar o contato a ser alterado, são utilizados os campos de busca na seguinte ordem: id → codigo → cpf_cnpj. Informe ao menos um desses campos (2) Campos de endereço de cobrança são opcionais e devem ser informados apenas se diferentes do endereço principal (3) Campos de informações pessoais se aplicam apenas a pessoas físicas e devem ser informados somente quando necessário (4) Data de nascimento deve estar no formato dd/mm/aaaa. Exemplo: “01/01/2012” (5) Valores decimais devem usar ”.” como separador decimal. Exemplo: “5.25” (6) O ID do vendedor informado deve existir no sistema, caso contrário retornará erro (7) O campo nome_vendedor é desconsiderado se id_vendedor for informado (8) Tipos de contato informados serão apenas adicionados. Tipos existentes não serão removidos ou alterados (9) Pessoas de contato informadas serão apenas adicionadas. Se o nome já existir, não haverá remoção ou alteração (10) O campo CRT é desconsiderado se tipo_pessoa for igual a “F”

Retorno

CampoTipoOcorrênciaDescrição
retorno.status_processamentointobrigatórioCódigo de status do processamento
retorno.statusstringobrigatório”OK” ou “Erro”
retorno.codigo_errointcondicionalCódigo do erro conforme tabela da API (11)
retorno.errosarraycondicionalLista de erros ocorridos (11)
retorno.erros[].errostringcondicionalDescrição do erro
retorno.registrosarraycondicionalLista de resultados para cada contato enviado (12)
registros[].registro.sequenciaintcondicionalNúmero sequencial do contato
registros[].registro.statusstringcondicional”OK” ou “Erro”
registros[].registro.codigo_errointcondicionalCódigo do erro específico do registro
registros[].registro.idintcondicionalID do contato alterado na Olist (13)
registros[].registro.errosarraycondicionalErros específicos do registro
registros[].registro.erros[].errostringcondicionalDescrição do erro
(11) Retornado quando status = “Erro” (12) Retornado quando o processamento gera resultados individuais por registro (13) Retornado quando o registro foi alterado com sucesso

Exemplo de chamada

curl -X POST https://api.tiny.com.br/api2/contato.alterar.php \
  -d "token=SEU_TOKEN&formato=json&contato={\"contatos\":[{\"contato\":{\"sequencia\":\"1\",\"codigo\":\"1234\",\"nome\":\"Contato Alterado\",\"situacao\":\"A\"}}]}"
$url = 'https://api.tiny.com.br/api2/contato.alterar.php';
$token = 'SEU_TOKEN';

$contato = json_encode([
    'contatos' => [
        [
            'contato' => [
                'sequencia' => '1',
                'codigo' => '1234',
                'nome' => 'Contato Teste 1 Alterado',
                'situacao' => 'A'
            ]
        ],
        [
            'contato' => [
                'sequencia' => '2',
                'codigo' => '1235',
                'nome' => 'Contato Teste 2 Alterado',
                'tipo_pessoa' => 'F',
                'cpf_cnpj' => '22755777850',
                'endereco' => 'Rua Teste',
                'numero' => '123',
                'bairro' => 'Teste',
                'cep' => '95700-000',
                'cidade' => 'Bento Gonçalves',
                'uf' => 'RS',
                'email' => 'teste@teste.com.br',
                'id_vendedor' => '123',
                'situacao' => 'A'
            ]
        ]
    ]
]);

$data = "token=$token&contato=$contato&formato=json";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$resultado = json_decode($response, true);

Exemplo de retorno

Sucesso

{
  "retorno": {
    "status_processamento": 2,
    "status": "OK",
    "registros": [
      {
        "registro": {
          "sequencia": "1",
          "status": "OK",
          "id": "49644545"
        }
      }
    ]
  }
}

Sucesso - Múltiplos registros

{
  "retorno": {
    "status_processamento": 2,
    "status": "OK",
    "registros": [
      {
        "registro": {
          "sequencia": "1",
          "status": "OK",
          "id": "49644545"
        }
      },
      {
        "registro": {
          "sequencia": "2",
          "status": "OK",
          "id": "49644546"
        }
      }
    ]
  }
}

Erro - Token inválido

{
  "retorno": {
    "status_processamento": 1,
    "status": "Erro",
    "codigo_erro": 2,
    "erros": [
      {
        "erro": "token invalido"
      }
    ]
  }
}

Erro - Contato não encontrado

{
  "retorno": {
    "status_processamento": 2,
    "status": "OK",
    "registros": [
      {
        "registro": {
          "sequencia": "1",
          "status": "Erro",
          "codigo_erro": 32,
          "erros": [
            {
              "erro": "Contato não localizado"
            }
          ]
        }
      }
    ]
  }
}

Observações

  • É possível alterar múltiplos contatos em uma única chamada através do array contatos
  • O contato é localizado pelos campos id, codigo ou cpf_cnpj nessa ordem de prioridade
  • Apenas os campos informados serão atualizados. Campos não enviados manterão seus valores atuais
  • Tipos de contato e pessoas de contato são sempre adicionados, nunca removidos
  • Consulte a tabela de cidades para valores válidos de município
  • Consulte a tabela de códigos de erro para interpretação dos erros
  • Para obter o ID de um contato, use o endpoint de pesquisa de contatos