Dígito verificador RUC Equador
1710034065001 é válido: pessoa natural da província 17, dígito verificador 5 na décima posição e estabelecimento 001. A ferramenta lê o terceiro dígito para aplicar a regra certa, módulo 10 ou 11, e mostra o tipo de contribuinte. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Ruc
- 1710034065001
- Tipo
- natural_person
- Rótulo do tipo
- Natural person (persona natural)
- Terceiro dígito
- 1
- Código da província
- 17
O RUC equatoriano (Registro Único de Contribuyentes) é o identificador fiscal de treze dígitos emitido pelo Servicio de Rentas Internas para pessoas naturais, sociedades privadas e entidades públicas. Os dois primeiros dígitos codificam a província, o terceiro seleciona a classe do contribuinte, um dígito de controle ponderado ocupa a posição nove ou dez conforme essa classe, e o bloco final é o código de estabelecimento ou filial. Esta capacidade valida um RUC de treze dígitos puros conforme o terceiro dígito: valores de zero a cinco usam a regra de módulo dez de pessoa natural compartilhada com a cédula, o seis usa os pesos de módulo onze de entidade pública, e o nove usa os de sociedade privada. A resposta indica se o dígito de controle armazenado coincide com o recalculado, qual tipo foi detectado, o código da província, o bloco de estabelecimento e o dígito esperado quando existe.
Como funcionam os tipos de RUC e os dígitos de controle no Equador
Um RUC bem formado tem sempre treze dígitos decimais quando a pontuação é removida. As posições um e dois são o código da província e devem estar no intervalo de zero-um a vinte e quatro para jurisdições nacionais, ou trinta para residentes estrangeiros registrados no Equador.
A posição três é o discriminador de tipo que escolhe a categoria legal e a aritmética: os dígitos de zero a cinco marcam pessoa natural, incluindo regimes especiais que ainda seguem o corpo no estilo da cédula; o seis marca entidade pública (setor público); o nove marca sociedade privada. Os dígitos sete e oito são reservados e não são códigos de tipo válidos, por isso esta ferramenta os rejeita antes de qualquer soma ponderada.
Em pessoas naturais os primeiros dez dígitos coincidem com a cédula e o dígito de controle é a posição dez sob módulo dez com coeficientes dois-um repetidos: cada produto de nove ou mais é reduzido em nove (soma dos dígitos), a soma é tomada módulo dez, e o controle é dez menos esse resto, ou zero quando o resto já é zero.
Em sociedades privadas o dígito de controle também é a posição dez, mas os pesos são quatro, três, dois, sete, seis, cinco, quatro, três, dois sobre os primeiros nove dígitos e o resto da soma módulo onze mapeia para zero quando o resto é zero; caso contrário, onze menos o resto; um valor mapeado de dez significa que não existe um único dígito decimal de controle e o número não pode ser válido.
Em entidades públicas o dígito de controle é a posição nove, os pesos são três, dois, sete, seis, cinco, quatro, três, dois sobre os primeiros oito dígitos, e o mesmo mapeamento de módulo onze se aplica. Após o dígito de controle, os RUC naturais e privados carregam um código de estabelecimento de três dígitos entre um e novecentos e noventa e nove (a matriz costuma ser zero-zero-um); entidades públicas carregam um bloco de filial de quatro dígitos entre um e nove mil novecentos e noventa e nove.
Casos de uso
Auditar colunas RUC em exportações de faturamento eletrônico
Valide em lote cada RUC de um CSV de vendas ou retenções e coloque em quarentena as linhas cujo dígito de controle já não coincida com o valor recalculado ou cujo terceiro dígito seja um código reservado.
Perguntas frequentes
O que é o dígito de controle do RUC equatoriano?
É o dígito verificador dentro de um RUC de treze dígitos, calculado a partir do corpo inicial com pesos que dependem do terceiro dígito: módulo dez para pessoas naturais (posições 0–5) e módulo onze para entidades públicas (6) e sociedades privadas (9).
O que significa o terceiro dígito?
0–5 significa pessoa natural (controle módulo 10 na posição 10), 6 entidade pública (módulo 11 na posição 9) e 9 sociedade privada (módulo 11 na posição 10).
O que acontece com letras, hífens, comprimento errado ou códigos de província ruins?
Tarefas de validação com falha não são cobradas. Remova a formatação no seu cliente antes de chamar.
A ferramenta de dígito de controle do RUC do Equador é gratuita?
A ferramenta do navegador é gratuita e roda localmente.
Um RUC válido prova que o contribuinte está cadastrado?
Não. A ferramenta só confere se a estrutura e o dígito verificador estão corretos. Ela não consulta o cadastro do SRI, então não sabe se o número foi emitido ou se continua ativo.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/ruc-ecuador \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"ruc":"1710034065001"}'const res = await fetch("https://api.kit.forhosting.com/enc/ruc-ecuador", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"ruc": "1710034065001"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/ruc-ecuador",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"ruc": "1710034065001"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/ruc-ecuador", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"ruc":"1710034065001"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"ruc":"1710034065001"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/ruc-ecuador", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"ruc": "1710034065001"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.ruc_ecuador",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Caracteres não numéricos, comprimentos incorretos, códigos de província inválidos e terceiros dígitos reservados são rejeitados com um erro invalid_input claro. Execute grátis no navegador ou chame a API do KIT; ambos os caminhos compartilham a mesma aritmética pura, sem ida e volta de rede e sem consulta ao registro do SRI.
Como funcionam os tipos de RUC e os dígitos de controle no Equador
Como cada passo é aritmética modular de pesos fixos, os mesmos treze dígitos sempre produzem o mesmo veredito de validade no navegador, no Worker ou em um harness offline — por isso a capacidade é publicada como motor parse de nível A e não como chamada a um modelo nem consulta ao vivo ao SRI.
Como validar um RUC com esta API
Envie um campo ruc que contenha apenas caracteres de zero a nove e tenha exatamente treze dígitos. Cadeias vazias, ruc ausente, comprimentos diferentes de treze, códigos de província fora de zero-um a vinte e quatro e trinta, e terceiros dígitos sete ou oito falham antes de qualquer soma ponderada e não são faturados. Prefira esta capacidade quando precisar do relatório de tipo específico do Equador e do roteamento oficial dual módulo dez / módulo onze; um verificador genérico de formato de ID fiscal multi-país não aplicará os ramos do terceiro dígito do SRI nem as regras de estabelecimento. Espaços, pontos, hífens, letras e pontos decimais são rejeitados como entrada não numérica com invalid_input para que um formulário nunca aceite um valor limpo em silêncio: remova qualquer máscara de formatação no seu cliente antes da chamada. Em caso de sucesso, o motor devolve ruc como cadeia de dígitos normalizada, valid como booleano, type como um de natural_person, public_entity ou private_company, type_label como descrição breve, third_digit, province_code, algorithm como modulo_10 ou modulo_11, check_position (nove ou dez), check_digit conforme enviado, expected_check_digit quando um dígito decimal pôde ser calculado, establishment como bloco de filial final, length treze e algorithm_id ruc_ecuador. Valid é true apenas quando o dígito de controle coincide e o bloco de estabelecimento está no intervalo não nulo permitido para esse tipo; um dígito errado ainda devolve um payload estruturado com valid false para que você possa mostrar «esperado X, obtido Y» sem uma segunda requisição. Como o caminho é parse puro, sem relógio, fonte aleatória ou rede, a mesma entrada sempre produz o mesmo JSON na ferramenta gratuita do navegador e na API. A US$ 0,002 por solicitação bem-sucedida você pode proteger importações em massa de CRM, portões de faturamento eletrônico e auditorias de arquivos de parceiros sem negociar um nível personalizado.
Onde a validação do RUC se encaixa em fluxos reais de produto
Os fluxos de onboarding de fintech e marketplaces equatorianos pedem o RUC cedo; validar dígitos de controle e tipo no blur reduz envios falhos e tickets de suporte sem chamar o SRI a cada tecla. Sistemas contábeis e de faturamento eletrônico que emitem comprobantes electrónicos devem colocar em quarentena linhas cujo dígito de controle já não coincida ou cujo bloco de estabelecimento seja todo zeros antes de o documento chegar à autorização. Não trate um dígito de controle correto como prova de que o contribuinte existe nos sistemas do SRI, de que o RUC está ativo ou de que o estabelecimento está autorizado a emitir faturas — só prova que a cadeia de treze dígitos está aritmeticamente bem formada sob as regras oficiais dependentes do tipo, o mesmo critério de honestidade que se aplica a qualquer ferramenta de checksum fiscal. Importações de folha e RH de contratados independentes podem condicionar o armazenamento a valid true e exibir type_label para que o operador veja se o número é pessoa natural, sociedade privada ou entidade pública. Trabalhos de qualidade de dados recalculam expected_check_digit para cada coluna RUC de uma exportação ERP e marcam divergências antes de chegarem à declaração fiscal ou aos arquivos de retenção.
Casos de integração
Condicionar cadastro e formulários KYC a um RUC válido
Quando um cliente digitar um RUC de treze dígitos, valide no blur, mostre type_label e expected_check_digit se valid for false, e bloqueie o avanço até o dígito de controle e o bloco de estabelecimento passarem.
Classificar o tipo de contribuinte antes de rotear fluxos
Use o campo type devolvido (natural_person, private_company, public_entity) para escolher modelos de documento, alíquotas de retenção ou rotas de aprovação sem uma consulta separada ao registro.
Perguntas técnicas
Como valido um RUC com esta API?
Faça POST com ruc igual a exatamente treze dígitos (apenas 0-9). A resposta inclui valid, type, type_label, check_digit, expected_check_digit quando disponível, province_code, establishment e algorithm.