Integração da Nota Fiscal de Entrada via API
Essa integração permite tanto a consulta de dados dos documentos registrados no ERP senior X quanto o registro de notas fiscais de entrada de emissão de terceiros, utilizando APIs públicas. Dessa forma, as empresas ganham mais flexibilidade para automatizar processos, desenvolver soluções personalizadas e firmar parcerias estratégicas.
Webhook
O retorno sobre os processos de consulta e registro de notas fiscais de entrada é feito por meio de webhooks.
Um webhook é um mecanismo automatizado de comunicação entre sistemas, funcionando como uma "notificação em tempo real" enviada de um sistema para outro quando um evento específico ocorre. No contexto da consulta e do registro de notas fiscais de entrada, o webhook notifica imediatamente sobre o status da solicitação, informando se foi concluída com sucesso ou se houve erro, avisando automaticamente o parceiro. Isso elimina a necessidade de verificações constantes pelo sistema que aguarda a informação.
Para isso, é necessário configurar os webhooks, fornecendo os dados que serão acionados quando o evento ocorrer.
Veja os passos necessário para o cadastro de um webhook:
Na plataforma Senior X, siga o caminho: Tecnologia > Customização > Events Hub > Webhooks. Nessa seção, você deverá criar dois registros que serão responsáveis por notificar seu sistema sempre que um evento ocorrer.
- Criação de Webhooks:
- Crie um registro para o evento api.senior.com.br/erpx_sup_int/facade/invoiceIntegratedSuccess, que indica a integração com sucesso de uma nota fiscal.
- Crie outro registro para o evento api.senior.com.br/erpx_sup_int/facade/invoiceIntegratedError que indica a integração com erro de uma nota fiscal.
- Configuração:
- Para cada evento, adicione a URL que deverá ser chamada quando o evento ocorrer;
- Inclua as credenciais de autenticação, caso sejam necessárias;
- Se desejar, é possível cadastrar múltiplas URLs para o mesmo evento;
- Certifique-se de ativar o endpoint após a configuração.
- Verificação de logs:
- Em caso de falhas na integração, você pode verificar os logs. Acesse a seção Ações no endpoint cadastrado e clique em Detalhes para visualizar as informações.
Cadastros necessários
Para a geração da nota fiscal de entrada, é necessário realizar alguns cadastros obrigatórios conforme abaixo:
Consultar Dados da Nota Fiscal de Entrada
A consulta de dados da nota fiscal de entrada no módulo de suprimentos do ERP senior X é realizada de forma síncrona, utilizando uma chamada GET à seguinte API:
https://<domínio>.senior.com.br/erpx_sup_int/facade/apis/incomingInvoice/{notaFiscalId}
Essa API permite recuperar os dados completos de uma nota fiscal de entrada, incluindo informações da empresa, filial, remetente, itens da nota (produtos ou serviços), transações, condições de pagamento, impostos, entre outros.
notaFiscalId (UUID): Identificador único da nota fiscal de entrada. Deve ser informado diretamente na URL como parte do endpoint.
A resposta da API retorna um objeto contendo os seguintes campos:
- id (UUID): Identificador único da nota fiscal.
- company (genericRecord): Dados da empresa associada à nota fiscal.
- id: Identificador único da empresa.
- code: Código da empresa.
- name: Nome da empresa.
- branch (person): Dados da filial associada à nota fiscal.
- id: Identificador único da filial.
- code: Código da filial.
- name: Nome da filial.
- documentNumber: CPF ou CNPJ da filial.
- sender (person): Dados do remetente (fornecedor).
- id: Identificador único do remetente.
- code: Código do remetente.
- name: Nome do remetente.
- documentNumber: CPF ou CNPJ do remetente.
- fiscalSeries (genericRecord): Dados da série fiscal da nota.
- id: Identificador único da série.
- code: Código da série.
- name: Descrição da série.
- invoiceNumber (string): Número da nota fiscal.
- entryDate (date): Data de entrada da nota fiscal.
- issueDate (date): Data de emissão da nota fiscal.
- productTransaction (transaction): Dados da transação de produtos.
- id: Identificador único da transação.
- code: Código da transação.
- name: Descrição da transação.
- cfop: Código Fiscal de Operações e Prestações (CFOP).
- serviceTransaction (transaction): Dados da transação de serviços.
- id: Identificador único da transação.
- code: Código da transação.
- name: Descrição da transação.
- cfop: Código Fiscal de Operações e Prestações (CFOP).
- invoiceKey (string): Chave da nota fiscal.
- observation (string): Observações da nota fiscal.
- payment (paymentData): Dados de pagamento.
- Installments (invoiceInstallments): Dados das parcelas.
- titleType: Tipo do título.
- titleNumber: Número do título.
- sequence: Sequência da parcela.
- percentage: Percentual referente ao valor total.
- paymentMethod: Forma de pagamento.
- dueDate: Data de vencimento da parcela.
- amount: Valor da parcela.
- barCode: Código de barras para pagamento.
- observation: Observações adicionais da parcela.
- items (invoiceItem*): Lista de itens da nota fiscal (produtos ou serviços).
- transaction (transaction): Dados da transação do item.
- entryUnit (string): Unidade de medida.
- quantity (money): Quantidade do item.
- unitPrice (money): Preço unitário do item.
- warehouse (genericRecord): Dados do depósito.
- discountValue (money): Valor de desconto aplicado ao item.
- financialAccount: Conta financeira do item.
- costCenter: Centro de custos do item.
- batch (batch*): Informações de lote do item.
- distributionSeries (distribuitionSeries*): Informações de série de distribuição do item.
- taxes: campos referentes aos impostos ICMS, ICMS Efetivamente Creditado, PIS Recuperar e COFINS Recuperar. Campo opcional. Caso não seja informado, o sistema calcula automaticamente os impostos conforme definido no perfil tributário.
- taxType: Tipo de imposto aplicado.
- PIS_RECUPERAR
- COFINS_RECUPERAR
- ICMS
- ICMS_CREDITADO
- cst: Código da situação tributária.
- origin: Origem fiscal da mercadoria.
- taxBase: Base de cálculo do imposto (valor sobre o qual o imposto será calculado).
- TaxRate: Alíquota do imposto (percentual aplicado sobre a base de cálculo).
- TaxValue: Valor do imposto calculado.
- taxReductionPercentage: Percentual de redução da base de cálculo do imposto.
- otherValues: Outros valores.
- exemptValues: Valor isentas.
- manualTax: Indica se o imposto foi inserido manualmente.
- taxType: Tipo de imposto aplicado.
- otherValues: Dados referentes à seção Outros Valores das Informações Adicionais da Nota Fiscal de Entrada.
- insuranceValue: Valor de seguro.
- packagingValue: Valor de embalagens.
- chargesValue: Valor de encargos.
- thirdPartyValue: Valor cobrado em nome de terceiros.
- otherExpensesValue: Valor de outras despesas.
- highlightedOtherExpensesValue: Valor de outras despesas destacado.
- additionalDiscountValue: Valor de desconto adicional.
- additionalDiscountPercentage: Percentual de desconto adicional.
- roundingValue: Valor de arredondamento.
curl -X GET "https://<domínio>.senior.com.br/erpx_sup_int/facade/apis/incomingInvoice/123e4567-e89b-12d3-a456-426614174000" \ -H "Authorization: Bearer <seu_token_de_acesso>"
- 200: Consulta realizada com sucesso.
- 400: Requisição inválida (parâmetros obrigatórios não fornecidos ou incorretos).
- 401: Usuário não autenticado.
- 403: Usuário sem permissão para acessar os dados.
- 404: Nota fiscal não encontrada para o identificador fornecido.
Integração de Nota Fiscal de Entrada de Emissão de Terceiros
A integração de notas fiscais de emissão de terceiros no módulo de suprimentos do ERP senior X é realizada de forma assíncrona, por meio da chamada à seguinte API:
https://<domínio>.senior.com.br/erpx_sup_int/facade/apis/integrateThirdPartyIncomingInvoice
A funcionalidade somente permite a criação. Para utilizá-la, é essencial que todos os pré-requisitos sejam atendidos. Abaixo, detalhamos os parâmetros de requisição e fornecemos um exemplo mínimo de request.
Parâmetros da Requisição
- company (genericRecord): Dados da empresa. Campo obrigatório. Pode ser informado o id ou o code, sendo o id prioritário na busca.
- branch (person): Dados da filial. Campo obrigatório. Podem ser informados o id, code e documentNumber, com prioridade de busca na ordem descrita.
- sender (person): Dados do fornecedor. Campo obrigatório. Podem ser informados o id, code e documentNumber, com prioridade de busca na ordem descrita.
- series (genericRecord): Dados da série da nota. Campo obrigatório. Pode ser informado o id ou o code, sendo o id prioritário na busca.
- invoiceNumber (integer): Número da nota fiscal. Campo obrigatório.
- entryDate (dateTime): Data de entrada da nota. Campo opcional.
- issueDate (dateTime): Data de emissão da nota. Campo opcional.
- productTransaction (transaction): Dados da transação de produto. Campo opcional, caso não sejam informados produtos. Pode ser informado id, code ou cfop. A prioridade de busca será pelo id, e para code ou cfop, o primeiro registro encontrado será utilizado.
- serviceTransaction (transaction): Dados da transação de serviço. Campo opcional, caso não sejam informados serviços. Pode ser informado id, code ou cfop. A prioridade de busca será pelo id, e para code ou cfop, o primeiro registro encontrado será utilizado.
- invoiceKey (string): Chave da nota fiscal. Campo opcional.
- observation (string): Observação da nota fiscal. Campo opcional, com limite de 1000 caracteres.
- payment (paymentData): Dados de pagamento. Campo opcional. Caso informado, preencher também:
- otherValues: Dados referentes à seção Outros Valores das Informações Adicionais da Nota Fiscal de Entrada.
- insuranceValue: Valor de seguro.
- packagingValue: Valor de embalagens.
- chargesValue: Valor de encargos.
- thirdPartyValue: Valor cobrado em nome de terceiros.
- otherExpensesValue: Valor de outras despesas.
- highlightedOtherExpensesValue: Valor de outras despesas destacado.
- additionalDiscountValue: Valor de desconto adicional. Se este parâmetro for utilizado, não é permitido informar o campo additionalDiscountPercentage.
- additionalDiscountPercentage: Percentual de desconto adicional. Se este parâmetro for utilizado, não é permitido informar o campo additionalDiscountValue.
- roundingValue: Valor de arredondamento.
A lista de itens (items) é obrigatória e deve conter os seguintes campos:
- id (string?): Identificador único do item. Campo opcional. Deve ser informado caso não seja informado o code.
- code (string): Código do item. Campo opcional. Deve ser informado caso não seja informado o id.
- transaction (transaction): Dados obrigatórios da transação do item ou serviço. Pode ser informado id, code ou cfop. A prioridade de busca será pelo id, e para code ou cfop, o primeiro registro encontrado será utilizado.
- entryUnit (string): Código da unidade de medida. Campo opcional.
- quantity (money): Quantidade do item. Campo obrigatório.
- unitPrice (money): Preço unitário do item. Campo opcional.
- warehouse (genericRecord): Dados do depósito. Campo opcional. Pode ser informado o id ou o code, sendo o id prioritário na busca.
- discountValue (money): Valor de desconto aplicado ao item. Campo opcional.
- financialAccount: Conta financeira do item. Somente contas financeiras do tipo Analítica podem ser informadas. Campo opcional. É possível informar o id ou o code, sendo o id prioritário na busca.
- costCenter: Centro de custos do item. Somente centros de custos do tipo Analítico podem ser informados. Campo opcional. É possível informar o id ou o code, sendo o id prioritário na busca.
- batch (batch*): Lista de lotes do produto. Campo opcional. Caso informado, os campos obrigatórios são:
- code: Código do lote.
- batchQuantity: Quantidade do lote.
- Campos opcionais: manufactureDate (data de fabricação) e expirationDate (data de validade).
- distributionSeries (distribuitionSeries*): Lista de séries do produto. Campo opcional. Caso informado, o campo obrigatório é:
- seriesNumber: Número da série.
- Campos opcionais: manufactureDate (data de fabricação) e expirationDate (data de validade).
- taxes: campos referentes aos impostos ICMS, ICMS Efetivamente Creditado, PIS Recuperar e COFINS Recuperar. Campo opcional. Caso não seja informado, o sistema calcula automaticamente os impostos conforme definido no perfil tributário.
- taxType: Tipo de imposto aplicado.
- PIS_RECUPERAR
- COFINS_RECUPERAR
- ICMS
- ICMS_CREDITADO
- cst: Código da situação tributária.
- origin: Origem fiscal da mercadoria.
- taxBase: Base de cálculo do imposto (valor sobre o qual o imposto será calculado).
- TaxRate: Alíquota do imposto (percentual aplicado sobre a base de cálculo).
- TaxValue: Valor do imposto calculado.
- taxReductionPercentage: Percentual de redução da base de cálculo do imposto.
- otherValues: Outros valores.
- exemptValues: Valor isentas.
- manualTax: Indica se o imposto foi inserido manualmente.
- taxType: Tipo de imposto aplicado.
curl -X POST "https://<domínio>.senior.com.br/erpx_sup_int/facade/apis/integrateThirdPartyIncomingInvoice" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <seu_token_de_acesso>" \
-d '{
"company": {
"id": "c6b537f7-e16a-499d-99ba-f8391f1fb221"
},
"branch": {
"id": "c6b537f7-e16a-499d-99ba-f8391f1fb221"
},
"sender": {
"id": "c6b537f7-e16a-499d-99ba-f8391f1fb221"
},
"series": {
"code": "NFT"
},
"invoiceNumber": 123456,
"entryDate": "2023-10-01T10:00:00Z",
"issueDate": "2023-09-30T10:00:00Z",
"items": [
{
"id": "c6b537f7-e16a-499d-99ba-f8391f1fb221",
"transaction": {
"id": "c6b537f7-e16a-499d-99ba-f8391f1fb221"
},
"quantity": 10,
"unitPrice": 100.0
}
]
}'
Fechar Nota Fiscal de Entrada
O fechamento de notas fiscais no módulo de suprimentos do ERP senior X é realizada de forma assíncrona, por meio da chamada à seguinte API:
https://<domínio>.senior.com.br/erpx_sup_int/facade/apis/closeIncomingInvoice
invoiceId:(UUID): Identificador único da nota fiscal de entrada.
curl -X POST "https://<domínio>.senior.com.br/erpx_sup_int/facade/apis/closeIncomingInvoice" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <seu_token_de_acesso>" \ -d '{ "invoiceId": <Identificador da nota fiscal> }'
Ao solicitar o fechamento de uma nota fiscal que ainda está em digitação, são iniciados os eventos de integração da nota com os demais módulos do ERP senior X. Após a conclusão do processo de fechamento:
- Em caso de sucesso, o evento invoiceClosedSuccess é publicado;
- Em caso de erro, o evento invoiceClosedError é publicado.
Bloqueio e Desbloqueio de Notas Fiscais de Entrada de Emissão de Terceiros
A API abaixo permite o controle de bloqueio e desbloqueio das notas fiscais de entrada de terceiros via API.
Essa funcionalidade permite que sistemas externos gerenciem o bloqueio temporário de notas fiscais, assumindo também o controle do tempo limite para desbloqueio automático. Com isso, é possível garantir maior flexibilidade e segurança no gerenciamento de documentos fiscais, especialmente em processos que dependem de validações ou análises externas.
https://<domínio>.senior.com.br/erpx_sup_int/facade/apis/manageInvoiceLock
Para utilizá-la, é essencial que todos os pré-requisitos sejam atendidos. Abaixo, detalhamos os parâmetros de requisição e fornecemos um exemplo mínimo de request.
- invoiceId: Identificador da nota fiscal;
- observation: Motivo do bloqueio;
- origin: Origem do bloqueio.
curl --location 'https://<domínio>.senior.com.br/erpx_sup_int/facade/apis/manageInvoiceLock ' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer zDE4xvFWMtjwZ3cmf7uUYKXN8qdmQarD' \ --data '{ "invoiceId": "42e52769-83b6-464b-812d-1086d09b186d", "observation": "Desbloqueada por agente externo", "origin": "Externo" }'
- Sucesso no bloqueio: O campo locked retorna com o valor True;
- Sucesso no desbloqueio: O campo locked retorna com o valor False.
- Caso a nota não esteja com o status Em Digitação:
- message: Não é possível bloquear uma nota fiscal com situação diferente de EM DIGITAÇÃO;
- errorCode: 400;
- reason: BAD_REQUEST.
- Caso a nota não seja de emissão de terceiro:
- message: Não é possível bloquear uma nota fiscal de emissão própria;
- errorCode: 400;
- reason: BAD_REQUEST.
Observação
Este recurso é opcional, e específico para notas fiscais de entrada de emissão de terceiros.
Integração do XML da Nota Fiscal de Entrada
A API abaixo permite receber Notas Fiscais de Entrada e Conhecimentos de Transporte de forma assíncrona a partir das informações do XML, processando e gerando a nota no ERP senior X:
https://<domínio>.senior.com.br/erpx_sup_int/facade/apis/integrateIncomingInvoiceXml
Para utilizá-la, é essencial que todos os pré-requisitos sejam atendidos. Abaixo, detalhamos os parâmetros de requisição e fornecemos um exemplo mínimo de request.
- company (genericRecord): Dados da empresa. Campo obrigatório. Pode ser informado o id ou o code, sendo o id prioritário na busca.
- branch (person): Dados da filial. Campo obrigatório. Podem ser informados o id, code ou documentNumber, com a prioridade para a busca na ordem descrita.
- issuerDocumentNumber (string): CPF, CNPJ ou NIF (Número de Identificação Fiscal) do emissor. Campo obrigatório.
- issuerName (string): Nome do emissor. Campo obrigatório.
- stateAbbreviation (string): UF do emissor. Campo obrigatório.
- issueDate (dateTime): Data de emissão da nota. Campo obrigatório.
- invoiceModel (integer): Modelo da nota (55 ou 57). Campo obrigatório.
- invoiceNumber (integer): Número da nota fiscal. Campo obrigatório.
- invoiceSeries (integer): Número da série da nota. Campo obrigatório.
- invoiceAmount (decimal): Valor total da nota fiscal. Campo obrigatório.
- invoiceVersion (string): Versão do XML da nota fiscal. Campo obrigatório.
- xmlFile (string): XML completo da Nota Fiscal de Entrada. Campo obrigatório.
- documentType (documentType): Tipo de documento da nota. Campo obrigatório.
- accessKey (string): Chave de acesso à nota na SEFAZ. Campo obrigatório.
curl --location 'https://cloud-leaf.senior.com.br/t/senior.com.br/bridge/1.0/rest/erpx_sup_int/facade/apis/integrateIncomingInvoiceXml' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIzdWtlb3JuMUdmS0RPS2cwek9EMmdQNER0X1RaVkd6cXNHNWVzTFZkWmh3In0.eyJleHAiOjE3NTgxMzY4MTMsImlhdCI6MTc1ODEzMzIxMywianRpIjoiY2QyN2QxNmItNmYyMy00OTNkLTg4MmEtZGNiN2NjNDVmMzU2IiwiaXNzIjoiaHR0cHM6Ly9zc28uY2xvdWQtbGVhZi5zZW5pb3IuY29tLmJyL3JlYWxtcy9zZW5pb3IteCIsInR5cCI6IkJlYXJlciIsImF6cCI6InNlbmlvci14Iiwic2lkIjoiMzYyYWUxNTEtZTkwNC00OWEwLTg4YTctM2JmMmE0OTIxNjc3IiwiYWNyIjoiMSIsInNjb3BlIjoib3BlbmlkIiwidXNyIjoiYWRtaW5Acm9iZXJ0b2ZpbGhvLmNvbS5iciIsInRudCI6InJvYmVydG9maWxoby5jb20uYnIifQ.jFPbuK1jfIBZ7ZdqdYzaIESVVOgnKWEYK20bcdlVGB6aHnJvTfPozBHhQMdNPlhWfz1If6aRFj8bN9M8w7HVfCwymrUSu3a3JIW-fgYOa4OI2IcVNy6osXZfawpj3r3HHaUlydbLqwIAgGgsd8dpHQwhp0oZ2BSn2_Y4vqQfVDWS_rg0i5IEgFjLMeY5l6KcqEioZX3CmI3QW0W80GNJr54DmWEQZ1wS-45vLckXDW5DAk1NsoUMaycFp_WO19oIdk-10Qb5qrPJ9-UVnNLZu5_f27hYUlraAKgoVrU5Aj2V7hxKUptEdOWtfsqchuhAyIpdp5KFPz9McLbsjGFpDw' \ --data-raw '{ "company": { "code": "1" }, "branch": { "code": "1" }, "issuerDocumentNumber": "123445", "issuerName": "Nome do emissor", "stateAbbreviation": "SC", "issueDate": "2025-09-11T18:26:50.953Z", "invoiceModel": 57, "invoiceNumber": 1424799, "invoiceSeries": 14, "invoiceAmount": 111111, "invoiceVersion": "4.00", "xmlFile": "<xml> CONTEÚDO DO XML</xml>", "documentType": "TRANSPORTATION_DOCUMENT", "accessKey": "43250900428307000511570140014247921014212354" }'
Observação
A validação da assinatura do XML e do schema é de responsabilidade do consumidor da API.
Após a conclusão do processo de integração, são publicados os seguintes eventos:
Em caso de sucesso
- O evento invoiceIntegratedSuccess é publicado, indicando que a nota fiscal está gerada.
- O evento incomingInvoiceCalculated é publicado, indicando que a nota fiscal finalizou o processo de calculo após geração.
- Se o campo invoiceStatus for igual a DRAFT, indica que a nota está apta a ser fechada
Em caso de erro
- O evento invoiceIntegratedError é publicado.
Representação do XML da Nota Fiscal de Entrada via API
É possível consultar ou excluir representações do XML de notas fiscais por meio da chamada à seguinte API:
https://<domínio>.senior.com.br/erpx_sup_int/facade/apis/incomingInvoiceXml/<ID>
Para utilizá-la, é essencial que todos os pré-requisitos sejam atendidos. Abaixo, detalhamos os parâmetros de requisição e fornecemos um exemplo mínimo de request.
O identificador da representação da nota fiscal a ser consultada ou excluída deve ser incluído no final da URL. Deve ser informado também o verbo HTTP correspondente, GET ou DELETE.
curl --location 'https://cloud-leaf.senior.com.br/t/senior.com.br/bridge/1.0/rest/erpx_sup_int/facade/apis/incomingInvoiceXml/d0bad841-6d63-4804-a67e-cadea2d4d1ee' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOi' \ --data ''
|
Veja também: |
- Nota Fiscal de Entrada
- Para mais detalhes sobre os campos das APIs e exemplos completos, consulte o Portal de APIs da Senior.
English
Español
English
Español


