sevdesk-agent-cli
Quando usar
Use esta skill quando as tarefas envolvem acesso à API Sevdesk a partir deste espaço de trabalho, especialmente quando um agente precisar:
- inspecionar o estado comercial/contábil por meio de endpoints somente leitura,
- pesquisar contatos, faturas, vouchers ou transações sem improvisar filtros brutos da API,
- criar ou atualizar contatos, orçamentos, faturas e vouchers por meio de fluxos de trabalho tipados,
- conciliar vouchers contra transações bancárias e preparar ou executar lançamentos contábeis,
- executar endpoints de gravação rapidamente, mantendo operações DELETE explicitamente protegidas,
- produzir um instantâneo de contexto para execuções posteriores do agente.
Pré-condições
- Garanta que o CLI esteja globalmente disponível no
PATHuma vez por máquina:- preferido:
npm install -g @codecell-germany/sevdesk-agent-skill - auxiliar de bootstrap para Codex:
npx -y -p @codecell-germany/sevdesk-agent-skill sevdesk-agent-skill install --force - verificar:
sevdesk-agent --help
- preferido:
- Se
sevdesk-agentainda não for encontrado após a instalação:- verifique o prefixo global do npm:
npm config get prefix - adicione
<prefix>/binaoPATHdo shell atual se necessário
- verifique o prefixo global do npm:
- Fallback temporário sem instalação global:
npx -y -p @codecell-germany/sevdesk-agent-skill sevdesk-agent --help
- Para ambientes de agente com suporte a skill, instale o payload da skill explicitamente:
sevdesk-agent-skill install --force
- Token da API disponível em env:
SEVDESK_API_TOKEN=<token>
- Env opcionais:
SEVDESK_BASE_URL(padrãohttps://my.sevdesk.de/api/v1)SEVDESK_USER_AGENT
SEVDESK_ALLOW_WRITE=true(necessário apenas para operaçõesDELETE, a menos que--allow-writeseja usado)
Detecção de primeira execução
Execute estes comandos antes do primeiro fluxo de trabalho real de contabilidade em uma máquina:
sevdesk-agent --help
sevdesk-agent doctor --json
sevdesk-agent read bookkeepingSystemVersion --output json
Trate o ambiente como não pronto se qualquer um destes for verdadeiro:
sevdesk-agentnão está disponível noPATHSEVDESK_API_TOKENestá ausentedoctorrelata uma verificação falhabookkeepingSystemVersionnão pode ser lido com sucesso
Se a configuração estiver incompleta, instale o pacote público primeiro, verifique o token e só então prossiga para fluxos de read, find-* ou gravação.
Fluxo de trabalho principal
- Descobrir IDs de operação:
sevdesk-agent ops list --read-onlysevdesk-agent op-show <operationId>sevdesk-agent ops-quirks- saída estável do parser:
sevdesk-agent ops-quirks --json-array
- Executar chamadas de leitura primeiro:
sevdesk-agent read <operationId> --query key=valuesevdesk-agent read find-contact --query term="<nome>" --output json(atalho para find-contact de nível superior)sevdesk-agent read resolve-billing-contact --query term="<nome>" --output json(atalho para comando auxiliar)sevdesk-agent read find-invoice --query term="<texto>" --query deepScan=true --output json(atalho para comando auxiliar)sevdesk-agent read find-transaction --query amount=119 --query booked=false --output json(atalho para comando auxiliar)sevdesk-agent read match-transaction --query voucherId=<id> --output json(atalho para comando auxiliar)- auxiliar de pesquisa local de contatos:
sevdesk-agent find-contact <termo> --output json - auxiliar de faturamento:
sevdesk-agent resolve-billing-contact <termo> --output json - pesquisa textual de faturas:
sevdesk-agent find-invoice <termo> --deep-scan --output json - pesquisa de transações:
sevdesk-agent find-transaction "<texto>" --amount <n> --booked false --output json - conciliação voucher-transação:
sevdesk-agent match-transaction --voucher-id <id> --output json - conciliação semântica de transações:
sevdesk-agent transaction find-match --supplier "<nome>" --amount <n> --date <aaaa-mm-dd> --direction expense --output json - inspeção de voucher:
sevdesk-agent voucher inspect --id <id> --output json - por padrão, as respostas de leitura são normalizadas para peculiaridades conhecidas da API ativa
- Citação no shell: parâmetros como
contact[id]devem ser citados:--query 'contact[id]=123' - Filtros de data de fatura (observados): em nossos testes,
getInvoicesfunciona comstartDate/endDatecomo timestamps Unix (segundos). Datas ISO como2026-01-01podem retornar resultados vazios. Exemplo:sevdesk-agent read getInvoices --query startDate=1767225600 --query endDate=1769903999 --output json - Gerar um documento de referência completo de operações de leitura:
sevdesk-agent docs read-ops --output knowledge/READ_OPERATIONS.md
- Para chamadas de gravação:
POST/PUT/PATCH:sevdesk-agent write <operationId> ...- edições ergonômicas de entidades:
sevdesk-agent order edit --order-id <id> ... --verifysevdesk-agent contact edit --contact-id <id> ... --verify
- gravações multipart estão disponíveis com
--form-field key=valuee--form-file file=/caminho/para/arquivo DELETE:sevdesk-agent write <operationId> --execute --confirm-execute yes --allow-write ...- para
createContact/createOrder, a validação local de preflight é executada por padrão - para
createInvoiceByFactory, o preflight também valida a consistência das datas de fatura/entrega (--auto-fix-delivery-datedisponível) - para
voucherFactorySaveVoucherebookVoucher, o preflight local valida os campos contábeis de alto risco antes da chamada da API - adicione
--verifypara executar verificações pós-gravação somente leitura (incluindocreateInvoiceByFactory,voucherFactorySaveVoucherebookVoucher) - para fluxos de createContact, prefira
--verify-contact(inclui verificações de incompatibilidade de customerNumber; correção automática habilitada por padrão e pode ser desabilitada via--no-fix-contact)
- Persistir contexto de handoff do agente:
- stdout (padrão):
sevdesk-agent context snapshot - exportação opcional de arquivo:
sevdesk-agent context snapshot --output .context/sevdesk-context-snapshot.json
- stdout (padrão):
Runbook padrão: Contato + Orçamento + PDF
- Descoberta:
sevdesk-agent ops list --read-onlysevdesk-agent op-show createContactsevdesk-agent op-show createOrder
- Encontrar/Criar Contato:
sevdesk-agent find-contact "<nome ou customerNumber>" --output jsonsevdesk-agent write createContact ... --verify-contact
- Criar Orçamento:
sevdesk-agent write createOrder ... --verify
- Exportação PDF sem efeito colateral de status:
sevdesk-agent read orderGetPdf --path orderId=<id> --decode-pdf output/<arquivo>.pdf --suppress-contentpreventSendBy=1é definido por padrão (--no-safe-pdfdesativa isso)
- Handoff:
sevdesk-agent context snapshot --include-default
Auxiliares adicionais de fatura
- Parcelamento a partir de fatura existente:
sevdesk-agent create-invoice-installment --from-invoice <id> --percent 70 --label "..." [--execute --verify]
- Clonar fatura para fluxos recorrentes:
sevdesk-agent invoice clone --from <id> --date <...> --period <...> with selective position overrides
- Substituição segura de fatura quando a mutação genérica de fatura não está disponível:
sevdesk-agent invoice recreate --from <id> --patch-file payloads/invoice.patch.json --verify
- Captura de voucher a partir de PDF local:
sevdesk-agent create-voucher-from-pdf --file /caminho/absoluto/para/beleg.pdf ... [--execute --verify]
- Auxiliares de lançamento de voucher:
sevdesk-agent voucher inspect --id <id> --output jsonsevdesk-agent voucher book-existing --voucher-id <id> --transaction-id <id> [--execute --verify]sevdesk-agent book-voucher --voucher-id <id> --check-account-id <id> --amount <n> [--transaction-id <id>] [--execute --verify]sevdesk-agent assign-voucher-to-transaction --voucher-id <id> --check-account-id <id> --transaction-id <id> --amount <n> [--execute --verify]sevdesk-agent expense process-paid --file /caminho/absoluto/para/beleg.pdf --transaction-id <id> ... [--execute --verify]
- Auto-verificação e sincronização de comandos:
sevdesk-agent doctor --json
Salvaguardas
- O comportamento padrão é favorável ao fluxo de trabalho:
POST/PUT/PATCHsão executados diretamente;DELETEé bloqueado a menos que flags de proteção sejam definidas. - Em fluxos de trabalho de produção, prefira testes somente leitura e sondas somente leitura primeiro.
- Para endpoints
*GetPdf, as respostas são tipicamente JSON encapsuladas emdata.objects(muitas vezes contendofilename,mimetypee conteúdocontentem base64). - para
orderGetPdf/invoiceGetPdf, o CLI agora aplicapreventSendBy=1por padrão (modo PDF seguro). - use
--decode-pdf <caminho>para saída direta de arquivo PDF semjq/base64. - com
--decode-pdf, use--suppress-content(padrão) para manter grandes payloads base64 fora da saída do CLI. create-voucher-from-pdf,book-vouchereassign-voucher-to-transactionsão dry-run por padrão; gravações reais ocorrem apenas com--execute.voucher book-existingeexpense process-paidtambém são dry-run por padrão; use--executesomente após verificar o payload derivado.order edit,contact editeinvoice recreatesão executados diretamente como fluxosPUT/POSTnormais; use--verifypara validar o resultado imediatamente.- Quando uma resposta de gravação ou verificação embutida retorna
ok: false, o CLI sai com status de shell não zero. Não trate isso como sucesso em automação. - Se o servidor retornar um tipo de conteúdo binário não JSON (pdf/xml/zip/csv), o CLI imprime metadados (
binary,bytes,contentType) em vez de bytes brutos. - Peculiaridades de consulta exigidas em tempo de execução são aplicadas para operações selecionadas (por exemplo,
contactCustomerNumberAvailabilityCheckrequercustomerNumberem tempo de execução). - Use
op-showouops-quirkspara ver peculiaridades de tempo de execução específicas da operação. ops-quirks --jsonretorna um objeto de mapeamento; para análise de array estável, useops-quirks --json-array.- se você precisar de orientação sobre mutação de fatura e
updateInvoiceestiver ausente, executesevdesk-agent docs invoice-edit. - se você precisar alterar o conteúdo de uma fatura, prefira
sevdesk-agent invoice recreate --from <id> ...em vez de adivinhar um payloadupdateInvoicebruto. - para sequência de numeração/finalização após a criação da fatura, execute
sevdesk-agent docs invoice-finalize.
Referências
- Folha de consulta de comandos:
references/command-cheatsheet.md - Notas de gravação de oferta/pedido (comportamento ativo):
knowledge/SEVDESK_ORDER_WRITE_LEARNINGS.md