Eventos de webhooks

Quais eventos o Base ERP disponibiliza para sua integração?

É possível utilizar webhook para que seu sistema seja notificado sobre alterações que ocorram nas notas fiscais. Os eventos que o Base ERP notifica são:

  • INVOICE_NFE_CREATED - Geração de nova nota fiscal.
  • INVOICE_NFE_AUTHORIZED - Nota fiscal emitida.
  • INVOICE_NFE_ERROR - Erro na transmissão da nota fiscal.
  • INVOICE_NFE_CANCELED - Nota fiscal cancelada.
  • INVOICE_NFE_CANCELLATION_ERROR - Erro no cancelamento da nota fiscal.
  • INVOICE_NFE_CORRECTION_LETTER_SUCCESS - Envio de Carta de Correção com sucesso.
  • INVOICE_NFE_CORRECTION_LETTER_FAILED - Falha no envio de Carta de Correção.
  • PRODUCTS_STOCK_INPUT - Entrada de estoque de produto.
  • PRODUCTS_STOCK_OUTPUT - Saída de estoque de produto.

Exemplo de JSON a ser recebido [POST]

A notificação consiste em um POST contendo um JSON, conforme os exemplos abaixo.

👍

Muitas das ações listadas podem ser feitas via interface do Base ERP. Nesses casos, webhooks também serão enviados e, a depender da necessidade, alguns atributos podem variar. Por exemplo: é possível gerar pela interface do Base uma NF-e avulsa, independente de Pedido de Venda; para esta situação, não será retornado o atributo salesOrderId e será retornado um novo customerId no lugar. Fique atento a essas variações!

Criação de nota

{
  "id": "evt_00bfdbb32c9cd908d56e247e4a7622cd&10797506",
  "event": "INVOICE_NFE_CREATED",
  "dateCreated": "2025-10-16 11:32:14",
  "invoiceNfe": {
    "type": "invoiceNfe",
    "serie": "1",
    "value": 1,
    "object": "invoiceNfe",
    "status": "GRAVADA",
    "invoiceId": "100013321",
    "issueDate": "2025-10-16T11:32:09",
    "salesOrderId": "100191212"
  }
}

Nota autorizada

{
  "id": "evt_00d1bc4f9b6df17269ef76e1ded541ef&10797508",
  "event": "INVOICE_NFE_AUTHORIZED",
  "dateCreated": "2025-10-16 11:32:23",
  "invoiceNfe": {
    "serie": "1",
    "value": 1,
    "number": "45053",
    "pdfUrl": "https://api.sandbox.baseerp.com.br/link/download/eyJhbGciOiJIUzUxMiJ9.eyJ1c2VySWQiOjI4MzI2LCJlbnRpdHlJZCI6MTAwMDEzMzIxLCJsaW5rSWQiOjQ4NzJ9.wLTI0B94nxgaY3qlTmKpyEeBUuEvix57SNX7JlI4LNj_XNsQeGi6Qu8MbaHK3CAWpDa66SUN0-z6JV8-8yfdkA",
    "status": "ENVIADA",
    "xmlUrl": "https://api.sandbox.baseerp.com.br/link/download/eyJhbGciOiJIUzUxMiJ9.eyJ1c2VySWQiOjI4MzI2LCJlbnRpdHlJZCI6MTAwMDEzMzIxLCJsaW5rSWQiOjQ4NzN9.hx9x4syLtq9fXxl7ZPmpAUypT-WX5NLlr-BnWhTuHUE4hzl33bvGfxWGuf43k6ygyudzkcmgdDgPWa6lcTyeyg",
    "invoiceId": "100013321",
    "issueDate": "2025-10-16T11:32:10",
    "salesOrderId": "100191212"
  }
}

Nota com erro

{
  "id": "evt_883a78b5c6267760b3da557014884393&12460717",
  "event": "INVOICE_NFE_ERROR",
  "dateCreated": "2025-11-05 09:27:54",
  "invoiceNfe": {
    "type": "invoiceNfe",
    "serie": "1",
    "value": 1.1,
    "number": "45095",
    "object": "invoiceNfe",
    "status": "GRAVADA",
    "invoiceId": "100013659",
    "issueDate": "2025-11-05T09:21:58",
    "customerId": "101281128",
    "errorDetail": "Status 9003 - CNPJ da sua empresa com zeros, nulo ou digito verificador inválido.",
    "salesOrderId": "100191490"
  }
}

Nota cancelada

{
  "id": "evt_381cc2a52c98968b05c34e8743a16ab5&10797185",
  "event": "INVOICE_NFE_CANCELED",
  "dateCreated": "2025-10-16 11:15:35",
  "invoiceNfe": {
    "type": "invoiceNfe",
    "serie": "1",
    "value": 10,
    "number": "45046",
    "object": "invoiceNfe",
    "status": "ENVIADA",
    "invoiceId": "100013310",
    "issueDate": "2025-10-16T10:49:59",
    "customerId": "101281128"
  }
}

Erro no cancelamento

{
  "id": "evt_a4c0a82cac9a3a6dcf744931706a36dc&10797140",
  "event": "INVOICE_NFE_CANCELLATION_ERROR",
  "dateCreated": "2025-10-16 11:14:05",
  "invoiceNfe": {
    "type": "invoiceNfe",
    "serie": "1",
    "value": 10,
    "number": "45046",
    "object": "invoiceNfe",
    "status": "ENVIADA",
    "invoiceId": "100013310",
    "issueDate": "2025-10-16T10:49:59",
    "errorDetail": "Dados obrigat\u00f3rios para montar xml de envio n\u00e3o informados. {\"errorNfe\":[{\"errorCode\":\"9074\",\"description\":\"O motivo do cancelamento deve ter no m\u00ednimo 15 caracteres\"}]}."
  }
}

Envio de Carta de Correção com sucesso

{
  "id": "evt_f20e34793f490bb90af5888529a5e8a2&12566393",
  "event": "INVOICE_NFE_CORRECTION_LETTER_SUCCESS",
  "dateCreated": "2025-11-13 11:57:58",
  "invoiceNfe": {
    "type": "invoiceNfe",
    "serie": "1",
    "value": 1.1,
    "number": "45102",
    "object": "invoiceNfe",
    "status": "ENVIADA",
    "invoiceId": "100013924",
    "issueDate": "2025-11-13T11:46:06",
    "customerId": "101281128"
  }
}

Envio de Carta de Correção com erro

{
  "id": "evt_1cea225a526c84779d419df3596ba229&12566133",
  "event": "INVOICE_NFE_CORRECTION_LETTER_FAILED",
  "dateCreated": "2025-11-13 11:41:49",
  "invoiceNfe": {
    "type": "invoiceNfe",
    "serie": "1",
    "value": 50,
    "number": "45094",
    "object": "invoiceNfe",
    "status": "ENVIADA",
    "invoiceId": "100013595",
    "issueDate": "2025-11-04T00:00:00",
    "customerId": "101295284",
    "errorDetail": "O motivo da carta de correção deve ter no mínimo 15 caracteres.",
    "observations": ""
  }
}

Saída de estoque

{
  "id": "evt_503a150e89317d10c274740f10c2e4bc&10797783",
  "event": "PRODUCTS_STOCK_OUTPUT",
  "dateCreated": "2025-10-16 12:03:11",
  "productStock": {
    "type": "productStock",
    "object": "productStock",
    "salesOrderId": "100191214"
  }
}

Entrada de estoque

{
  "id": "evt_0d1c1c3a5f8d884529e5a81cbc68b47d&10797804",
  "event": "PRODUCTS_STOCK_INPUT",
  "dateCreated": "2025-10-16 12:06:53",
  "productStock": {
    "type": "productStock",
    "object": "productStock",
    "salesOrderId": "100191214"
  }
}

🚧

Com a entrada de novos produtos e funções dentro do Base ERP, é possível que novos atributos sejam incluídos no webhook. É muito importante que seu código esteja preparado para não gerar exceções caso o Base devolva novos atributos não tratados pela sua aplicação, pois isso poderá causar interrupção na fila de sincronização.