Integração VC Digital Documentação Markdown Exemplo JSON Mark exported Exemplos cURL Jobs VC Endpoint GET Due options Atividade 0
Painel operacional

Documentação API VC Digital

Contrato interno para consumo de guias e extratos pelo backend do VC Digital.

INTEGRAÇÃO INTERNA

API VC Digital

Contrato interno para o backend do VC Digital consumir DAREs e extratos do ICMS SaaS por controladora e CNPJ.

Comece pelo guia rápido: /docs/vc-digital-consumo-app.md

Resumo do que mudou em 13/05/2026: /docs/vc-digital-changelog.md

Autenticação

Enviar Authorization: Bearer <token da controladora> em todas as requisições. O token limita o acesso à carteira da própria controladora.

Controladora ID ICMS2
Token da controladoranão configurado
Company ID VC
Base URLhttps://icms.vcnodigital.com

Arquivos para o outro programador

ArquivoObjetivoLink
vc-digital-consumo-app.mdGuia curto de integração para o time do app: chaves, polling, importação, confirmação e reemissão.Abrir guia rápido
vc-digital-changelog.mdResumo curto das mudanças de contrato publicadas em `2026-05-13` para alinhamento do time do app.Abrir changelog
vc-digital.mdContrato técnico completo em markdown.Abrir markdown
vc-digital-readiness.mdStatus atual de prontidão da integração por controladora.Abrir checklist
vc-digital-readiness.jsonVersão JSON do checklist de prontidão.Abrir JSON
vc-digital-rollout-priority.mdRegra de consumo incremental e ordem prioritária de empresas para iniciar ingestão.Abrir prioridade
vc-digital-rollout-priority.jsonVersão JSON da fila prioritária para consumo imediato.Abrir JSON
vc-digital-example-response.jsonExemplo real de resposta do endpoint principal.Abrir JSON
vc-digital-due-options-example.jsonExemplo real da consulta de datas disponíveis para reemissão pontual.Abrir JSON
vc-digital-error-catalog.jsonCatálogo de erros reais da API interna.Abrir JSON
vc-digital-empty-response.jsonExemplo real de resposta sem documentos.Abrir JSON
vc-digital-mark-exported-example.jsonExemplo de payload para marcar exportação concluída.Abrir JSON
vc-digital-mark-delivered-example.jsonExemplo de payload para confirmar envio ao cliente via WhatsApp.Abrir JSON
vc-digital-curl-examples.txtChamadas prontas com curl.Abrir exemplos
vc-digital-notificacao-imediata.mdPlaybook de notificação incremental para atualizar a vitrine fiscal assim que entrar guia nova no ICMS.Abrir playbook
vc-digital-vencimentos-ajuste.mdGuia operacional do ajuste de vencimentos e do reconsumo necessário.Abrir markdown
vc-digital-vencimentos-ajuste.jsonFila publicada das guias restantes para reconsumo e itens já reingeridos.Abrir JSON
vc-digital-automacao-vencidas.mdContrato para acionar o desktop, rodar o monitor D+1 e atualizar automaticamente a vitrine com guias recalculadas pela lista real de datas da SEFIN.Abrir markdown
vc-digital-automacao-vencidas.jsonExemplo JSON do payload do orquestrador para guias vencidas.Abrir JSON
vc-digital-sefin-scrape-schema.mdContrato da grade SEFIN: campos extraídos do scrape, pedido direto de guia e mapeamento para a API do ICMS.Abrir markdown
vc-digital-sefin-scrape-schema.jsonVersão JSON do contrato da grade SEFIN para consumo técnico pelo time do app.Abrir JSON
vc-digital-implantacao-escritorio.mdChecklist de implantação por escritório parceiro.Abrir guia
vc-digital-playbook-comercial.mdRoteiro comercial e posicionamento do produto na cidade.Abrir playbook
vc-digital-sla-operacional.mdMetas, rituais e ações corretivas para sustentação do serviço.Abrir SLA
/orchestrator/jobsTela operacional do ICMS para cruzar jobs, datas reais e prontidão documental.Abrir painel
/operations/slaPainel de SLA com cobertura real, entrega final e reemissões por controladora.Abrir painel

Consumo incremental

RegraComportamento publicado
Não esperar lote completoO VC Digital pode consumir assim que a primeira guia estiver disponível na API.
Guia sem extratoSe o dare já existir e o extrato ainda não tiver subido, o endpoint entrega apenas dare.
Extrato sem guiaSe o extrato existir antes do PDF da guia, ele fica só no hub interno; documents[] não libera extrato_dare nesse caso.
AgrupamentoDARE e extrato continuam agrupáveis pelo mesmo numeroDocumento e pelos externalIds.
Polling recomendadoConsumir com pending_only=1 para buscar só os itens ainda não exportados.
Notificação imediataUsar /api/internal/fiscal-documents/upload-events com cursor para disparar sincronização da vitrine assim que surgir nova guia. Esse feed também leva snapshots SEFIN recentes.
Pagamento rápidoUsar /api/internal/fiscal-documents/payment-events como cursor curto para reagir quando uma guia for marcada como paga.
Auditoria finalUsar workflowStatus, delivery.status e, se necessário, pending_delivery_only=1 para a fila de envio ao cliente.

Fila prioritária WNS

Para homologação inicial, a recomendação é consumir primeiro as empresas com mais DAREs já capturados e com maior cobertura de artefatos úteis.

PrioridadeEmpresaGuiasArtefatos úteisObservação
1ERA COMERCIO DE ALIMENTOS LTDA221 guia PDF, 7 extrato PDFMelhor massa inicial para validar ingestão em volume.
2DROGA MIL COMERCIO DE MEDICAMENTOS LTDA131 guia PDF, 10 extrato PDFBoa cobertura de extratos para vitrine fiscal.
3F DOS REIS SANTOS86 guia PDF, 16 extrato PDF/suporteMelhor cobertura documental já publicada no site.
4BARAO AGROPECUARIA E MATERIAIS PARA CONSTRUCAO LTDA51 guia PDF, 5 extrato PDFCarteira pequena e limpa para validar fluxo ponta a ponta.
5PIANNA CLOSET LTDA51 guia PDF, 5 extrato PDFÚtil para validar repetição de guias por mesma empresa.

Endpoints

RotaMétodoObjetivo
/api/internal/fiscal-documentsGETListar DAREs e extratos prontos para consumo.
/api/internal/fiscal-documents/upload-eventsGETNotificação incremental por cursor para sincronização imediata da vitrine do app VC Digital. O feed também carrega snapshots SEFIN recentes.
/api/internal/fiscal-documents/payment-eventsGETDelta curto de mudanças de pagamento inferido para reagir sem varrer a carteira inteira.
/api/internal/fiscal-documents/snapshotsGETLista os artefatos de imagem anual/mensal da grade SEFIN em contrato dedicado.
/api/internal/fiscal-documents/due-optionsGETConsultar datas reais disponíveis na SEFIN antes de pedir reemissão pontual.
/api/internal/fiscal-documents/mark-exportedPOSTMarcar artefato como exportado para o VC Digital.
/api/internal/fiscal-documents/mark-deliveredPOSTConfirmar envio ao cliente ou registrar falha de entrega no WhatsApp.
/api/internal/fiscal-documents/force-republishPOSTRepublicar guias/extratos finais com novo artifactId para substituição operacional no VC Digital.
/api/internal/orchestrator/jobsGET/POSTListar jobs por documento/parcela e criar remissões pontuais ou lotes vencidos.

Reenvio compulsório de manutenção

Use esse fluxo quando o VC Digital já tiver importado um PDF antigo/errado e precisar substituir o documento sem depender de reset local do outro lado.

CanalEfeito
Botão ✈ Reenviar na tela de GuiasRepublica os PDFs finais mais recentes da empresa/guia filtrada com novo artifactId.
POST /api/internal/fiscal-documents/force-republishTem o mesmo efeito para automação do VC Digital.
EscopoSomente guia_pdf e extrato_pdf. Artefatos de auditoria não entram.
Obrigação do consumidorSe o mesmo numeroDocumento + documentType voltar com novo artifactId, substituir o documento antigo.
curl -X POST
  -H "Authorization: Bearer <token-da-controladora>"
  -H "Content-Type: application/json"
  -d '{
    "controladoraId": "2",
    "companyId": 3,
    "numeroDocumento": "20261200047276"
  }'
  "https://icms.vcnodigital.com/api/internal/fiscal-documents/force-republish"

Configuração esperada no VC Digital

Para a primeira conexão, o outro sistema deve ativar o módulo fiscal da empresa, usar a base do ICMS SaaS e informar o identificador da controladora selecionada abaixo.

fiscalApiEnabled = true
fiscalApiBaseUrl = "https://icms.vcnodigital.com"
fiscalApiKey = "<token-da-controladora>"
fiscalApiSubdomain = ""
fiscalApiImportPath = ""
fiscalApiExtraFields = {
  "controladoraId": "2",
  "markExportedPath": "/api/internal/fiscal-documents/mark-exported",
  "markDeliveredPath": "/api/internal/fiscal-documents/mark-delivered",
  "markExportedAfterImport": true
}

Se o backend do VC Digital já assumir o padrão /api/internal/fiscal-documents, o campo fiscalApiImportPath pode ficar vazio no primeiro teste.

Autenticação e headers

ItemObrigatórioObservação
Authorization: Bearer <token>simToken real da controladora. Não é token de usuário do painel.
Content-Type: application/jsonsim no POSTNecessário no mark-exported e no mark-delivered.
Headers extrasnãoHoje a API não exige subdomain, tenant, workspaceId ou headers adicionais.

Consulta principal

Com token de controladora, o filtro de carteira já é aplicado automaticamente. Use cnpj e/ou numeroDocumento para refinar.

ParâmetroObrigatórioDescrição
controladora_idnãoOpcional para token global; com token da controladora é ignorado se vier divergente.
cnpjnãoFiltra o contribuinte pelo CNPJ.
numeroDocumentonãoFiltra uma guia específica.
pending_onlynão1 por padrão; retorna apenas itens cujo artefato vigente ainda não foi importado pelo app VC Digital.
pending_delivery_onlynão1 para listar só itens já importados mas ainda sem confirmação final de envio ao cliente.
delivery_statusnãoFiltra por PENDENTE_IMPORTACAO, IMPORTADO_PENDENTE_ENVIO, PENDENTE_REENVIO, FALHA_ENTREGA ou ENVIADO_CLIENTE.
includeAuditArtifactsnão1 para incluir artefatos opcionais de auditoria, sem misturar isso com os PDFs finais.
outros filtrosnãoHoje não há outros query params úteis publicados neste endpoint.
curl -H "Authorization: Bearer <token-da-controladora>" "https://icms.vcnodigital.com/api/internal/fiscal-documents?cnpj=60789911000171&pending_only=1"

curl -H "Authorization: Bearer <token-da-controladora>" "https://icms.vcnodigital.com/api/internal/fiscal-documents?cnpj=60789911000171&pending_only=1&includeAuditArtifacts=1"

Campos entregues por documento

CampoUso no VC Digital
guideIdIdentificador interno da guia no ICMS SaaS.
controladora.companyIdChave da empresa no VC Digital para vincular a carteira.
company.cnpjChave principal do contribuinte para localizar o destinatário interno.
company.inscricaoEstadualMetadado fiscal complementar.
company.nomeFantasiaOpcional; hoje pode vir vazio.
numeroDocumentoNúmero da guia que agrupa DARE e extrato.
parcelaParcela da obrigação.
dueDateVencimento real de consumo. Se a guia foi recalculada, usa a data emitida. Se não foi, usa a data original.
dueDateRealAlias explícito de dueDate para integração.
dueDateSourceOrigem do vencimento real: LISTA_SEFIN, EMISSAO_CONFIRMADA, EMISSAO_RECALCULADA ou EMISSAO_SEM_BASE_LISTA.
vencimentoOriginalVencimento originalmente capturado na lista da SEFIN, antes de qualquer recálculo.
vencimentoEmitidoVencimento efetivamente selecionado na emissão. Pode coincidir com o original.
availableDueDates[]Datas realmente disponibilizadas pela SEFIN para guias vencidas. O VC Digital deve consumir apenas essas opções ao pedir atualização automática.
valorTotalValor da obrigação para vitrine e conferência.
recalculadaIndica se vencimentoEmitido ficou diferente de vencimentoOriginal.
externalIds.dare / externalIds.extratoIDs externos prontos para agrupar DARE e extrato sem sobrescrever.
documents[].artifactIdIdentificador único e estável do artefato no ICMS SaaS.
documents[].downloadUrlURL direta do artefato no ICMS SaaS.
documents[].viewerUrlURL pronta para abrir PDF em nova aba via Google Viewer.
documents[].mimeTypeHoje os arquivos principais expostos são PDF. JSON e screenshot ficam no hub interno.
workflowStatusStatus operacional consolidado do documento: importação pendente, importado, falha ou enviado ao cliente.
delivery.*Auditoria devolvida pelo ICMS SaaS com dados do envio final ao cliente pela VPS Peramix.
documents[].notesResumo fiscal pronto para preencher mensagem ou auditoria.
documents[] parcialO array pode vir apenas com dare; extrato_dare só é liberado quando a mesma guia já possui guia_pdf.
auditArtifacts[]Artefatos opcionais de auditoria. Só aparecem se o consumidor pedir includeAuditArtifacts=1.

Tipos de documento expostos hoje

documentTypeStatusObservação
dareativoExposto pelo endpoint e baixável por downloadUrl.
extrato_dareativoExposto pelo endpoint e baixável por downloadUrl.
guia_meinão exposto aindaReservado para futura expansão da API.
guia_pgdasnão exposto aindaReservado para futura expansão da API.
parcelamento_pgfnnão exposto aindaReservado para futura expansão da API.
parcelamento_simples_nacionalnão exposto aindaReservado para futura expansão da API.
parcelamento_meinão exposto aindaReservado para futura expansão da API.

Semântica de vencimento

CampoRegra publicada
vencimentoOriginalData capturada na lista original da SEFIN, antes de qualquer recálculo.
vencimentoEmitidoData efetivamente selecionada no seletor de vencimento na emissão.
availableDueDates[]Lista das datas reais ofertadas pela SEFIN para a guia vencida no momento da captura.
dueDate / dueDateRealData operacional que o VC Digital deve consumir.
recalculadatrue quando vencimentoEmitido for diferente de vencimentoOriginal.
dueDateSourceLISTA_SEFIN, EMISSAO_CONFIRMADA, EMISSAO_RECALCULADA ou EMISSAO_SEM_BASE_LISTA.

Regra operacional: se a guia não foi recalculada, o consumo deve seguir vencimentoOriginal. Se foi recalculada, o consumo deve seguir vencimentoEmitido.

Resposta

{
  "error": false,
  "total": 1,
  "data": [
    {
      "guideId": 123,
      "company": {
        "id": 45,
        "cnpj": "60789911000171",
        "inscricaoEstadual": "0000000000000",
        "razaoSocial": "F DOS REIS SANTOS"
      },
      "controladora": {
        "id": 1,
        "nome": "Wns contabilidade",
        "companyId": "vc-company-001"
      },
      "numeroDocumento": "20261100080905",
      "parcela": "00",
      "dueDate": "2026-03-15",
      "dueDateReal": "2026-03-15",
      "dueDateSource": "LISTA_SEFIN",
      "vencimentoOriginal": "2026-03-15",
      "vencimentoEmitido": "2026-03-15",
      "valorTotal": "86.47",
      "externalIds": {
        "dare": "dare-20261100080905",
        "extrato": "extrato-20261100080905"
      },
      "recalculada": false,
      "documents": [
        {
          "documentType": "dare",
          "externalId": "dare-20261100080905",
          "title": "DARE Administrativo",
          "dueDate": "2026-03-15",
          "dueDateReal": "2026-03-15",
          "dueDateSource": "LISTA_SEFIN",
          "vencimentoOriginal": "2026-03-15",
          "vencimentoEmitido": "2026-03-15",
          "cnpj": "60789911000171",
          "numeroDocumento": "20261100080905",
          "downloadUrl": "https://icms.vcnodigital.com/artifact/view?id=140"
        },
        {
          "documentType": "extrato_dare",
          "externalId": "extrato-20261100080905",
          "title": "Extrato DARE",
          "dueDate": "2026-03-15",
          "dueDateReal": "2026-03-15",
          "dueDateSource": "LISTA_SEFIN",
          "vencimentoOriginal": "2026-03-15",
          "vencimentoEmitido": "2026-03-15",
          "cnpj": "60789911000171",
          "numeroDocumento": "20261100080905",
          "downloadUrl": "https://icms.vcnodigital.com/artifact/view?id=141"
        }
      ],
      "dare": {
        "available": true,
        "artifactId": 140,
        "downloadUrl": "https://icms.vcnodigital.com/artifact/view?id=140",
        "viewerUrl": "https://docs.google.com/gview?embedded=1&url=..."
      },
      "extrato": {
        "available": true,
        "artifactId": 141,
        "downloadUrl": "https://icms.vcnodigital.com/artifact/view?id=141"
      }
    }
  ]
}

Marcar exportado

curl -X POST \
  -H "Authorization: Bearer <token-da-controladora>" \
  -H "Content-Type: application/json" \
  -d '{"artifactId":140,"externalDocUrl":"https://doc.vcnodigital.com/documentos/abc"}' \
  "https://icms.vcnodigital.com/api/internal/fiscal-documents/mark-exported"
RegraComportamento atual
Quando chamarDepois que o VC Digital tiver baixado/importado o artefato com sucesso.
PayloadartifactId obrigatório e externalDocUrl opcional.
artifactIdÉ único por artefato e não muda após criação.
Status internoO ICMS SaaS grava transfer_status = ENVIADO_VCNO.
Chamar duas vezesHoje o endpoint é idempotente na prática: mantém o artefato exportado e atualiza transferred_at e externalDocUrl se enviado.

Arquivos

ItemRegra atual
Formato principalPDF para dare e extrato_dare.
Liberação do extratoextrato_dare só entra no payload consumível quando a mesma guia já possui guia_pdf. Extrato sem guia continua apenas no hub interno.
Screenshot/JSONPor padrão, extrato_screenshot, sefin_year_snapshot e sefin_pending_month_snapshot ficam apenas no hub interno do ICMS SaaS. Se o VC Digital quiser apoio visual de auditoria, pode pedir includeAuditArtifacts=1.
Tamanho observadoEntre 96 KB e 269 KB no acervo atual de PDFs.
downloadUrl exige token?Hoje não. O arquivo é servido pela URL interna do artefato.
viewerUrl pode abrir direto?Sim. É uma URL pronta para abrir PDF no navegador via Google Viewer.

Modo opcional de auditoria

ModoComo consumirRegra
Normal/api/internal/fiscal-documentsRetorna apenas documents[] com PDFs finais para cliente. extrato_dare só sai quando o guia_pdf correspondente já existe.
Auditoria/api/internal/fiscal-documents?includeAuditArtifacts=1Retorna os mesmos PDFs finais e acrescenta auditArtifacts[] com apoio visual opcional, incluindo snapshots SEFIN quando houver vínculo por guia.
Pagamento rápido/api/internal/fiscal-documents/payment-eventsDelta por cursor com mudanças de pagamento inferido para reagir sem recarregar a carteira inteira.
Snapshots SEFIN/api/internal/fiscal-documents/snapshotsLista o artefato anual/mensal mais recente por empresa ou tipo de snapshot.

O VC Digital deve tratar auditArtifacts[] como apoio interno. Documento fiscal final para cliente continua sendo PDF do DARE e PDF do extrato; os snapshots SEFIN são artefatos de apoio e não substituem o documento final.

Erros e consistência

StatusQuando aconteceMensagem atual
401Sem token ou token inválido.Não autorizado. / Token inválido para integração interna.
403Token tentando acessar outra controladora ou outro artefato.Token sem acesso a esta controladora. / Token sem acesso a este artefato.
404artifactId inexistente no mark-exported.Artefato não encontrado.
422Parâmetros insuficientes ou artifactId ausente.Informe controladora_id ou cnpj. / artifactId é obrigatório.
500Falha de persistência ao marcar exportação.Falha ao marcar artefato.
200 com lista vaziaCNPJ não encontrado ou sem documentos pendentes.total = 0 e data = []