Pré-requisitos antes de começar:
- PHP 8.4 ou superior instalado e disponível no
PATH - Composer 2 instalado globalmente
- Acesso ao Developer Portal com uma organização ativa
- Token Composer gerado para o seu usuário (você vai gerar um no Passo 2)
Acesse o Developer Portal e crie uma organização
Acesse developers.suot.dev e faça login. Se ainda não tiver uma organização, crie uma — a organização é a titular da licença e o ponto de partida para emitir tokens Composer.Após criar a organização, certifique-se de que há uma licença do Fiscal SDK associada a ela. Sem uma licença ativa, o registry irá rejeitar as requisições de download dos pacotes.
Veja o guia completo em Organizações para entender papéis, membros e associação de licenças.
Gere um token Composer
No Developer Portal, navegue até a seção de tokens da sua organização e gere um token Composer pessoal. Copie o valor gerado — ele será exibido apenas uma vez.Para gerenciar tokens depois, acesse platform/tokens-composer.
Configure o registry no composer.json
Adicione o registry privado da SUOT ao Em seguida, configure a autenticação via variável de ambiente. Nunca coloque o token diretamente no Substitua
composer.json do seu projeto. O Composer precisa saber onde buscar os pacotes suot/* antes de tentar o Packagist.composer.json
composer.json.SEU_TOKEN_AQUI pelo token gerado no passo anterior. Em pipelines de CI/CD, defina COMPOSER_AUTH como variável de ambiente secreta na plataforma de CI.Se preferir usar
auth.json localmente, certifique-se de adicioná-lo ao .gitignore. Veja detalhes em Tokens Composer.Instale os pacotes do Fiscal SDK
Com o registry configurado e a autenticação disponível, instale os pacotes necessários para emitir CT-e:
suot/fiscal-core— tipos base, Value Objects, interfaces e contratos do SDKsuot/fiscal-sefaz— comunicação com os webservices da SEFAZsuot/fiscal-cte— commands, handlers e schemas específicos de CT-e
Configure as credenciais da empresa
Antes de construir o primeiro Command, informe os dados da empresa emitente. Em um projeto framework-agnostic, você instancia a configuração diretamente:
Construa e envie um Command de CT-e
Com a configuração em mãos, construa o Command de autorização, passe ao Handler e aguarde o Result:
Inspecione o Result
O Handler retorna sempre um objeto
Result tipado. Rejeições esperadas pela SEFAZ são representadas como resultado — não como exceção. Falhas técnicas de infraestrutura lançam InfrastructureException.Em ambiente de homologação, a SEFAZ pode retornar rejeições específicas para dados de teste. Consulte o Guia de Homologação para configurar cenários de teste corretamente.
Para gerenciar, renovar ou revogar tokens Composer — incluindo tokens de CI/CD —, acesse Tokens Composer.