Pular para o conteúdo principal
A DIAN (Dirección de Impuestos y Aduanas Nacionales) é a autoridade tributária da Colômbia, e cada fatura eletrônica, nota de crédito e débito, documento de suporte, documento de folha de pagamento e evento passa pelo seu sistema de faturamento eletrônico. Uma conta ali guarda tudo o que a empresa ou pessoa emitiu e recebeu. Estes endpoints leem essa conta com a conexão própria do contribuinte.

Conecte sua conta

O sistema de faturamento eletrônico da DIAN não tem senha: o acesso é um link que a DIAN envia ao e-mail registrado no RUT de quem o solicita (para uma empresa, seu representante legal). Solicite-o com o endpoint de solicitações de acesso abaixo, ou no sistema de faturamento eletrônico da DIAN, e registre o link aqui dentro dos 60 minutos em que a DIAN o aceita. A DIAN mantém esse acesso aberto por cerca de uma hora, então registre o link quando for consultar e rode o que precisar nessa janela. Depois, as consultas respondem 422 connection_rejected: solicite um link novo e registre-o de novo, e a mesma conexão é renovada, mantendo seu id. POST /co/dian-facturacion/connections/v1 Registre uma conexão uma vez. A Croma a verifica com a fonte antes de salvá-la e responde com seu id e um nome mascarado.
A partir daí, cada consulta roda como uma das conexões da sua organização. A Croma escolhe uma, mantém sua sessão aberta entre as consultas e passa para a próxima quando uma atinge sua cota diária. Registre mais de uma para ter mais capacidade por dia. Para usar uma específica, envie seu id como connection_id. Registrar uma conta que já está conectada a renova: a conexão recebe os novos valores, mantém seu id e responde 200, então nada que guarde o id precisa mudar. Como o fluxo funciona, passo a passo: Conexões. Liste e exclua:
Por MCP, os mesmos verbos são as ferramentas dian_facturacion_connect, dian_facturacion_list_connections, dian_facturacion_delete_connection. Conectar a partir de um agente nunca passa as credenciais pela conversa: o agente recebe um link seguro e o usuário informa os dados da conta no console da Croma. Quando uma consulta não pode rodar com nenhuma conexão:
As credenciais são criptografadas assim que chegam à Croma, ficam vinculadas à sua organização e só podem ser abertas pelo serviço isolado que faz login na fonte em seu nome. A API nunca as devolve nem as mostra a ninguém. Excluir uma conexão a destrói permanentemente.

Solicitações de acesso

POST /co/dian-facturacion/access-requests/v1 Live Faça a DIAN enviar o link de acesso com que uma conexão é registrada, sem sair do seu produto: a pessoa (ou o representante legal da empresa) o recebe no e-mail do seu RUT.

Resposta

sent é true quando a DIAN aceitou a solicitação e enviou o link ao e-mail do RUT da pessoa; message é a resposta da DIAN. O link vale por expires_in_minutes (60). Registre-o como conexão dentro desse tempo.
Esta chamada roda sem conexão: é assim que uma começa. É cobrada como qualquer outra chamada.

Documentos emitidos

POST /co/dian-facturacion/issued-documents/v1 Live

Resposta

Cada documento tem seu cufe (a chave), document_type_code e document_type, series e number, issued_on e received_at, o issuer e o recipient (nit, name), currency, payment_form e payment_method (códigos da DIAN), cada imposto que a DIAN totaliza em taxes e as withholdings (ReteIVA, ReteRenta, ReteICA), o total, o status de validação da DIAN e seu radian_status como título-valor. Além de faturas, as listas trazem notas de crédito e débito, documentos de suporte, folha de pagamento e os eventos (application responses) que a conta emitiu ou recebeu.
Cada chamada lê a DIAN ao vivo com a sua conexão, então a resposta está atualizada e nunca é compartilhada entre organizações.
Esta consulta pode demorar mais que uma solicitação típica. É um trabalho assíncrono. Por padrão, a solicitação espera de forma síncrona e retorna { data }, ou você pode fazer polling / usar um callback_url.

Documentos recebidos

POST /co/dian-facturacion/received-documents/v1 Live A mesma forma que os documentos emitidos.
Cada chamada lê a DIAN ao vivo com a sua conexão, então a resposta está atualizada e nunca é compartilhada entre organizações.
Esta consulta pode demorar mais que uma solicitação típica. É um trabalho assíncrono. Por padrão, a solicitação espera de forma síncrona e retorna { data }, ou você pode fazer polling / usar um callback_url.

Um documento

POST /co/dian-facturacion/document/v1 Live

Resposta

found diz se a conta tem o documento nessa data; quando é false o resto vem vazio. Caso contrário, você recebe o cabeçalho do documento (document_type, series, number, issued_on, issued_at, due_on, issuer, recipient, currency, payment_form, payment_method, notes), suas lines (description, quantity, unit, unit_price, line_total e os taxes de cada linha), seus próprios totals, os taxes e o total como o registro da DIAN os mostra, o legitimate_holder, as validations da DIAN, seus events (acuse de recibo, recibo del bien, aceptación, endoso…) e os arquivos originais: xml (UBL 2.1) e pdf_base64. Folha de pagamento, documentos de suporte e eventos não trazem linhas nem arquivos aqui; seu cabeçalho, validações e eventos sim.
Pegue cufe e issued_on de uma linha dos documentos emitidos ou recebidos.
Esta consulta pode demorar mais que uma solicitação típica. É um trabalho assíncrono. Por padrão, a solicitação espera de forma síncrona e retorna { data }, ou você pode fazer polling / usar um callback_url.

Relatório mensal

POST /co/dian-facturacion/monthly-reports/v1 Live A DIAN o emite às contas que faturam eletronicamente, normalmente nas primeiras semanas do mês seguinte.

Resposta

available diz se a DIAN emitiu um relatório para o mês; quando é false o resto vem vazio. Um relatório traz sua reference, dated_on, cutoff_date e replaces_previous; documents[] com, por tipo de documento, o issued e o received (month_count, month_amount, year_count, year_amount); e indicators[] do mês e dos dois anteriores (count, daily_average_count, amount, daily_average_amount, emitidos e recebidos).
Esta consulta pode demorar mais que uma solicitação típica. É um trabalho assíncrono. Por padrão, a solicitação espera de forma síncrona e retorna { data }, ou você pode fazer polling / usar um callback_url.

Perfil

POST /co/dian-facturacion/profile/v1 Live

Resposta

O nit, name, business_name e email da conta, seu status no sistema de faturamento eletrônico da DIAN, o reception_email onde recebe faturas, seus legal_representatives, seus operation_modes (software próprio, de um provedor tecnológico ou o da DIAN) e os numbering_ranges associados ao seu software (prefix, resolution, from_number, to_number, associated_on, expires_on).
Esta consulta pode demorar mais que uma solicitação típica. É um trabalho assíncrono. Por padrão, a solicitação espera de forma síncrona e retorna { data }, ou você pode fazer polling / usar um callback_url.

Referência completa

Esquemas, todos os campos de resposta e um playground interativo.