> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.erp.olist.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Criar Conta

> Serviço para cadastrar uma nova conta no Olist ERP.

## Endpoint

```
POST https://api.tiny.com.br/api2/inscricao.incluir.php
```

## Descrição

Este serviço permite criar uma nova conta de usuário no Olist ERP de forma programática. Ideal para parceiros que desejam automatizar o onboarding de novos clientes.

## Parâmetros

| Parâmetro | Tipo   | Ocorrência  | Descrição                         |
| --------- | ------ | ----------- | --------------------------------- |
| token     | string | obrigatório | Token de parceiro autorizado (1)  |
| formato   | string | obrigatório | Formato do retorno (json)         |
| dados     | xml    | obrigatório | Dados da conta em formato XML (2) |

> (1) Este endpoint requer um token especial de parceiro. Solicite através do suporte comercial.
> (2) Estrutura XML detalhada abaixo.

## Estrutura XML dos Dados

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<inscricao>
    <empresa>
        <nome_fantasia>Minha Loja Virtual</nome_fantasia>
        <razao_social>Minha Loja Virtual Ltda</razao_social>
        <cnpj>12.345.678/0001-90</cnpj>
        <ie>123.456.789.123</ie>
        <im>12345</im>
        <telefone>(11) 3456-7890</telefone>
        <celular>(11) 98765-4321</celular>
        <email>contato@minhaloja.com.br</email>
        <cep>01310-100</cep>
        <endereco>Av. Paulista</endereco>
        <numero>1000</numero>
        <complemento>Sala 101</complemento>
        <bairro>Bela Vista</bairro>
        <cidade>São Paulo</cidade>
        <uf>SP</uf>
    </empresa>
    <responsavel>
        <nome>João da Silva</nome>
        <cpf>123.456.789-00</cpf>
        <email>joao@minhaloja.com.br</email>
        <telefone>(11) 98765-4321</telefone>
    </responsavel>
    <configuracoes>
        <segmento>Vestuário</segmento>
        <regime_tributario>1</regime_tributario>
        <plano>basico</plano>
    </configuracoes>
</inscricao>
```

## Campos da Empresa

| Campo          | Tipo   | Tamanho | Ocorrência  | Descrição                          |
| -------------- | ------ | ------- | ----------- | ---------------------------------- |
| nome\_fantasia | string | 100     | obrigatório | Nome fantasia da empresa           |
| razao\_social  | string | 100     | obrigatório | Razão social                       |
| cnpj           | string | 18      | obrigatório | CNPJ no formato 00.000.000/0000-00 |
| ie             | string | 20      | opcional    | Inscrição estadual                 |
| im             | string | 20      | opcional    | Inscrição municipal                |
| telefone       | string | 20      | obrigatório | Telefone fixo                      |
| celular        | string | 20      | opcional    | Telefone celular                   |
| email          | string | 100     | obrigatório | E-mail da empresa                  |
| cep            | string | 9       | obrigatório | CEP (com ou sem hífen)             |
| endereco       | string | 100     | obrigatório | Logradouro                         |
| numero         | string | 10      | obrigatório | Número                             |
| complemento    | string | 100     | opcional    | Complemento                        |
| bairro         | string | 50      | obrigatório | Bairro                             |
| cidade         | string | 50      | obrigatório | Cidade                             |
| uf             | string | 2       | obrigatório | Estado (sigla)                     |

## Campos do Responsável

| Campo    | Tipo   | Tamanho | Ocorrência  | Descrição                            |
| -------- | ------ | ------- | ----------- | ------------------------------------ |
| nome     | string | 100     | obrigatório | Nome completo do responsável         |
| cpf      | string | 14      | obrigatório | CPF no formato 000.000.000-00        |
| email    | string | 100     | obrigatório | E-mail do responsável (será o login) |
| telefone | string | 20      | obrigatório | Telefone de contato                  |

## Campos de Configurações

| Campo              | Tipo   | Tamanho | Ocorrência  | Descrição                                           |
| ------------------ | ------ | ------- | ----------- | --------------------------------------------------- |
| segmento           | string | 50      | obrigatório | Segmento de atuação                                 |
| regime\_tributario | int    | 1       | obrigatório | Conforme tabela de regimes (1)                      |
| plano              | string | 20      | obrigatório | Plano contratado: basico, profissional, empresarial |

> (1) Regimes tributários: 1=Simples Nacional, 2=Simples Nacional Excesso, 3=Regime Normal

## Retorno

| Campo                              | Tipo   | Tamanho | 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 | Conforme tabela "Códigos de erro"         |
| retorno.erros\[]                   | list   | -       | condicional | Lista dos erros encontrados \[0..n]       |
| retorno.erros\[].erro              | string | -       | condicional | Descrição do erro                         |
| retorno.registro                   | object | -       | condicional | Dados do registro criado                  |
| retorno.registro.id                | int    | -       | condicional | ID da conta criada                        |
| retorno.registro.token             | string | 32      | condicional | Token de acesso à API para a nova conta   |
| retorno.registro.url\_acesso       | string | 200     | condicional | URL de primeiro acesso                    |
| retorno.registro.senha\_temporaria | string | 20      | condicional | Senha temporária gerada                   |

## Observações

* Este serviço está disponível apenas para parceiros autorizados
* Cada conta criada inicia com período de teste de 14 dias
* O e-mail do responsável será usado como login
* Uma senha temporária é gerada e enviada por e-mail
* O CNPJ deve ser válido e não pode estar cadastrado anteriormente
* O token retornado já pode ser usado para chamadas à API

## Exemplo de chamada

```bash theme={null}
curl -X POST https://api.tiny.com.br/api2/inscricao.incluir.php \
  -d "token=TOKEN_PARCEIRO" \
  -d "formato=json" \
  -d 'dados=<?xml version="1.0" encoding="UTF-8"?>
<inscricao>
    <empresa>
        <nome_fantasia>Minha Loja Virtual</nome_fantasia>
        <razao_social>Minha Loja Virtual Ltda</razao_social>
        <cnpj>12.345.678/0001-90</cnpj>
        <telefone>(11) 3456-7890</telefone>
        <email>contato@minhaloja.com.br</email>
        <cep>01310-100</cep>
        <endereco>Av. Paulista</endereco>
        <numero>1000</numero>
        <bairro>Bela Vista</bairro>
        <cidade>São Paulo</cidade>
        <uf>SP</uf>
    </empresa>
    <responsavel>
        <nome>João da Silva</nome>
        <cpf>123.456.789-00</cpf>
        <email>joao@minhaloja.com.br</email>
        <telefone>(11) 98765-4321</telefone>
    </responsavel>
    <configuracoes>
        <segmento>Vestuário</segmento>
        <regime_tributario>1</regime_tributario>
        <plano>basico</plano>
    </configuracoes>
</inscricao>'
```

## Exemplos de retorno

### Erro - Token de parceiro inválido

```json theme={null}
{
  "retorno": {
    "status_processamento": 1,
    "status": "Erro",
    "codigo_erro": 2,
    "erros": [
      {
        "erro": "Token de parceiro inválido ou não autorizado"
      }
    ]
  }
}
```

### Erro - CNPJ já cadastrado

```json theme={null}
{
  "retorno": {
    "status_processamento": 2,
    "status": "Erro",
    "codigo_erro": 6,
    "erros": [
      {
        "erro": "CNPJ já cadastrado no sistema"
      }
    ]
  }
}
```

### Erro - Dados inválidos

```json theme={null}
{
  "retorno": {
    "status_processamento": 2,
    "status": "Erro",
    "codigo_erro": 6,
    "erros": [
      {
        "erro": "CPF inválido"
      },
      {
        "erro": "E-mail já cadastrado"
      }
    ]
  }
}
```

### Sucesso

```json theme={null}
{
  "retorno": {
    "status_processamento": 3,
    "status": "OK",
    "registro": {
      "id": 123456,
      "token": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
      "url_acesso": "https://erp.olist.com/primeiro-acesso?token=xyz123",
      "senha_temporaria": "Temp@2024"
    }
  }
}
```

## Fluxo Pós-Cadastro

Após criar a conta com sucesso:

1. **E-mail de Boas-vindas**: O usuário recebe e-mail com instruções
2. **Senha Temporária**: Enviada no retorno e por e-mail
3. **Primeiro Acesso**: Usuário deve alterar a senha no primeiro login
4. **Configuração Inicial**: Wizard guia pelas configurações básicas
5. **Período de Teste**: 14 dias para testar todas as funcionalidades

## Exemplo de Integração Completa

### PHP

```php theme={null}
<?php
function criarContaTiny($dados_empresa, $dados_responsavel) {
    $xml = '<?xml version="1.0" encoding="UTF-8"?>
    <inscricao>
        <empresa>
            <nome_fantasia>' . $dados_empresa['nome_fantasia'] . '</nome_fantasia>
            <razao_social>' . $dados_empresa['razao_social'] . '</razao_social>
            <cnpj>' . $dados_empresa['cnpj'] . '</cnpj>
            <telefone>' . $dados_empresa['telefone'] . '</telefone>
            <email>' . $dados_empresa['email'] . '</email>
            <cep>' . $dados_empresa['cep'] . '</cep>
            <endereco>' . $dados_empresa['endereco'] . '</endereco>
            <numero>' . $dados_empresa['numero'] . '</numero>
            <bairro>' . $dados_empresa['bairro'] . '</bairro>
            <cidade>' . $dados_empresa['cidade'] . '</cidade>
            <uf>' . $dados_empresa['uf'] . '</uf>
        </empresa>
        <responsavel>
            <nome>' . $dados_responsavel['nome'] . '</nome>
            <cpf>' . $dados_responsavel['cpf'] . '</cpf>
            <email>' . $dados_responsavel['email'] . '</email>
            <telefone>' . $dados_responsavel['telefone'] . '</telefone>
        </responsavel>
        <configuracoes>
            <segmento>E-commerce</segmento>
            <regime_tributario>1</regime_tributario>
            <plano>basico</plano>
        </configuracoes>
    </inscricao>';

    $data = [
        'token' => 'TOKEN_PARCEIRO',
        'formato' => 'json',
        'dados' => $xml
    ];

    $ch = curl_init('https://api.tiny.com.br/api2/inscricao.incluir.php');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $response = curl_exec($ch);
    curl_close($ch);

    return json_decode($response, true);
}

// Uso
$resultado = criarContaTiny(
    [
        'nome_fantasia' => 'Loja Teste',
        'razao_social' => 'Loja Teste Ltda',
        'cnpj' => '12.345.678/0001-90',
        'telefone' => '(11) 3456-7890',
        'email' => 'contato@loja.com',
        'cep' => '01310-100',
        'endereco' => 'Av. Paulista',
        'numero' => '1000',
        'bairro' => 'Bela Vista',
        'cidade' => 'São Paulo',
        'uf' => 'SP'
    ],
    [
        'nome' => 'João Silva',
        'cpf' => '123.456.789-00',
        'email' => 'joao@loja.com',
        'telefone' => '(11) 98765-4321'
    ]
);

if ($resultado['retorno']['status'] === 'OK') {
    echo "Conta criada com sucesso!\n";
    echo "ID: " . $resultado['retorno']['registro']['id'] . "\n";
    echo "Token: " . $resultado['retorno']['registro']['token'] . "\n";
} else {
    echo "Erro ao criar conta:\n";
    foreach ($resultado['retorno']['erros'] as $erro) {
        echo "- " . $erro['erro'] . "\n";
    }
}
?>
```

## Validações Realizadas

O sistema valida automaticamente:

* **CNPJ**: Formato e dígitos verificadores
* **CPF**: Formato e dígitos verificadores
* **E-mail**: Formato válido e unicidade
* **CEP**: Formato válido
* **Telefone**: Formato brasileiro válido
* **Dados obrigatórios**: Presença de todos os campos requeridos

## Segmentos Disponíveis

* Vestuário e Moda
* Eletrônicos
* Alimentos e Bebidas
* Livros e Papelaria
* Casa e Decoração
* Esportes e Lazer
* Saúde e Beleza
* Informática
* Telefonia
* Outros

## Planos Disponíveis

* **básico**: Até 100 pedidos/mês
* **profissional**: Até 500 pedidos/mês
* **empresarial**: Ilimitado

## Requisitos para Parceiros

Para se tornar um parceiro autorizado e ter acesso a este endpoint:

1. Cadastro como parceiro no programa de parcerias
2. Aprovação da equipe comercial
3. Assinatura de contrato de parceria
4. Recebimento do token especial de parceiro

Entre em contato com [comercial@olist.com](mailto:comercial@olist.com) para mais informações.
