Cadastrar e Gerenciar Webhooks

Nossa API de BaaS possui o modulo de Gerenciamento de Webhook, com esses serviços você consegue administrar suas rotas de Webhook sem precisar acionar o time da Celcoin, esse modulo contempla os seguintes serviços:


🚧

Importante

Informamos que, para garantir a estabilidade e previsibilidade das integrações, nunca removeremos campos de um contrato de webhook sem uma comunicação prévia aos clientes. No entanto, novos campos poderão ser adicionados conforme necessário para aprimorar as funcionalidades e o valor dos dados fornecidos. Recomendamos que nossos cliente evite restringir a entrada de webhooks com novos campos, assegurando que o sistema esteja preparado para receber essas atualizações e manter a compatibilidade contínua.

🚧

Importante

Nosso webhook é uma ferramenta transacional, projetada para notificar eventos específicos em tempo real. Ele não deve ser utilizado como base para a construção de extratos próprios pelo cliente. A fonte oficial e confiável para consulta de extratos é o extrato gerado pela Celcoin. O uso indevido do webhook para essa finalidade pode levar a inconsistências nos dados.


Confira o tutorial desse módulo


Eventos disponíveis.

Onboarding

EventoDescrição
onboarding-backgroundcheckEvento que informa o status do processo de Backgroundcheck
onboarding-documentscopyEvento que informa o status do processo de Documentoscopia
onboarding-fileEvento que envia a URL que contém os documentos enviados pelo cliente na jornada - Esse evento será enviado após o webhook onboarding-documentscopy com status Processing
onboarding-proposalEvento que informa o resultado da proposta, status Approved ou Reproved.
onboarding-createEvento responsável por receber informações de uma conta nova

KYC V1 (Descontinuado)

EventoDescrição
onboarding-createEvento responsável por receber informações de uma conta nova
kycEvento responsável por receber informações do resultado do KYC de uma conta

Transferência entre contas (P2P)

EventoDescrição
internal-transfer-inEvento responsável por receber informações de um recebimento de uma Transferência Interna
internal-transfer-outEvento responsável por receber informações de um envio de uma Transferência Interna

Pix

EventoDescrição
pix-payment-outEvento responsável por notificar a confirmação de um cash-out Pix.
pix-payment-inEvento responsável por notificar um recebimento Pix.
pix-reversal-outEvento responsável por notificar a confirmação da devolução de um Pix recebido.
pix-reversal-inEvento responsável por notificar o recebimento de uma devolução de um Pix-out realizado.

Pix Automático

EventoDescrição
pix-automatic-recurrency-awaiting-debtorEvento disparado quando o pagador recebe a solicitação de recorrência.
pix-automatic-recurrency-completedEvento disparado quando pagador aceita ou recusa a recorrência.
pix-automatic-payment-instruction-cashinEvento enviado tanto para casos de recebimento no dia do vencimento, quanto para casos onde o recebimento ocorreu em uma das 3 retentativas de recebimento após o vencimento.
pix-automatic-payment-instruction-expiredEvento com o resultado da retentativa de recebimento.
pix-automatic-payment-instruction-completedEvento com o resultado de recebimento.
pix-automatic-payment-instruction-cancelledEvento de Cancelamento de Agendamento

Portabilidade e reivindicação de chave Pix

EventoDescrição
pix-dict-claim-openEvento responsável notificar a abertura de um processo de portabilidade / reivindicação.
pix-dict-claim-waitingEvento responsável notificar que uma chave Pix está aguardando uma decisão de portabilidade / reivindicação.
pix-dict-claim-confirmedEvento responsável notificar a aprovação de uma solicitação de portabilidade / reivindicação.
pix-dict-claim-cancelledEvento responsável notificar o cancelamento do processo de portabilidade / reivindicação para uma chave Pix.
pix-dict-claim-completedEvento responsável notificar que o processo de portabilidade / reivindicação foi concluído.

TED

EventoDescrição
spb-transfer-outEvento responsável por notificar a confirmação de uma TED realizada.
spb-transfer-inEvento responsável por notificar o recebimento de uma TED.
spb-reversal-inEvento responsável por notificar o recebimento de uma devolução de TED realizada.

Cobranças Avulsas (Geração de boleto)

EventoDescrição
charge-inEvento responsável por receber informações do pagamento de uma cobrança
charge-createEvento responsável por receber informações de criação de uma cobrança
charge-canceledEvento responsável por notificar o cancelamento de uma cobrança
charge-expiredEvento responsável por notificar a baixa por decurso de prazo. Quando o boleto é emitido e não é pago

Pagamento de contas

EventoDescrição
billpaymentEvento responsável por receber informações de um pagamento de boleto realizado com sucesso
billpayment-occurrenceEvento responsável por receber informações de um pagamento de Boleto realizado com Erro

Recargas

EventoDescrição
topupEvento responsável por receber informações de uma efetivação de recarga

Recebimento de liquidações do arranjo de cartões via SLC (Domicílio Bancario)

EventoDescrição
slc-payment-inEvento responsável por receber informações de um recebimento de recebíveis do arranjo de pagamentos de cartões por meio do SLC

Bloqueios Judiciais

EventoDescrição
judicial-movement-inEvento disparado sempre que um valor bloqueado na conta do cliente for liberado
judicial-movement-outEvento disparado sempre que um novo valor for bloqueado na conta do cliente por ordem judicial.
account-statusEvento disparado sempre que uma conta for bloqueada ou desbloqueada

Lançamentos Manuais - Tesouraria

EventoDescrição
launch-inEvento disparado sempre que for realizado um lançamento à CRÉDITO na conta do cliente
launch-outEvento disparado sempre que for realizado um lançamento à DÉBITO na conta do cliente.

No ambiente de homologação, os eventos entrycredit e entrydebit estão disponíveis para uso pelos clientes com o objetivo de realizar testes e validar integrações com o sistema de movimentações financeiras.

📘

Os eventos pix-infraction e pix-med-refund deverão ser cadastrados por meio do Webhook Manager.

1. Cadastrar Webhook

O cadastro de webhooks permite configurar quais eventos serão recebidos e em qual rota (URL) esses eventos deverão ser enviados.

Passos para integrar

  1. Realizar autenticação na API - [API Reference]
  2. Cadastrar Webhook - [API Reference]

A requisição pode utilizar:

  • Request Basic, ou Request JWT

Descrição dos campos da chamada - Basic

Nome do CampoTipoDescrição
entitystringIdentificador do Evento.
webhookUrlstringRota que o cliente deseja receber o evento.
authobjetoDados de autenticação do Webhook.
loginstringLogin para Webhook.
pwdstringSenha para Webhook.
typestringTipo de autenticação (basic)

JSON da chamada

{
  "entity": "pix-payment-out",
  "webhookUrl": "https://www.celcoin.com.br/baas",
  "auth": {
    "login": "string",
    "pwd": "string",
    "type": "basic"
  }
}

cURL da Chamada

curl --location --request POST 'https://sandbox.openfinance.celcoin.dev/baas/v2/webhook/subscription' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "entity": "pix-payment-out",
  "webhookUrl": "https://www.celcoin.com.br/baas",
  "auth": {
    "login": "string",
    "pwd": "string",
    "type": "basic"
  }
}'

Descrição dos campos da chamada - JWT

Nome do Campo

Tipo

Descrição

entity

string

Identificador do Evento.

webhookUrl

string

Rota que o cliente deseja receber o evento.

auth

objeto

Dados de autenticação do Webhook.

responsePathToken

string

Propriedade do result da solicitação do token que retorna o token

requestType

string

Tipo de conteúdo de formulário que o endpoint de solicitação do token aceita.

  • form-data
  • body
  • x-www-urlencoded

type

string

Tipo de autenticação (jwt)

urlAuth

string

Rota para autenticação para retorno do token.

requestAuth

objeto que contem uma lista

Objeto de autorização para acessar API onde vai retornar o jwt. Campos para realizar a autenticação para buscar o token

requestAuth.key

string

Nome do campo usado na autenticação do token

requestAuth.value

string

Valor do campo usado na autenticação do token

requestAuth.type

string ou int

Tipo de dado do campo usado na autenticação do token

JSON da chamada

{
  "entity": "pix-payment-out",
  "webhookUrl": "https://webhook.d3fkon1.com/639f9618-f378-4e09-9f17-df1b46663429",
  "auth": {
    "responsePathToken": "access_token",
    "requestType": "body",
    "urlAuth": "www.test.com.br",
    "requestAuth":[
      {
        "key":"user",
        "value":"nomeUsuario",
        "type":"string"
      },
       {
        "key":"password",
        "value":"senha",
        "type":"string"
      }
    ]
    "type": "jwt"
  }
}

Exemplo de retorno

👍

Sucesso 200

{
    "body": {
        "subscriptionId": "684b45a5391dbba43a367f80"
    },
    "status": "SUCCESS",
    "version": "1.0.0"
}

Error 400

{
  "version": "1.0.0",
  "status": "ERROR",
  "error": {
    "errorCode": "CIE999",
    "message": "Ocorreu um erro interno durante a chamada da api."
  }
}

Tabela de errorCode

CodeMessage
CBE205Cliente já possui webhook cadastrado com esse evento
CBE206entity é obrigatório.
CBE207webhookUrl é obrigatorio e deve ser uma url valida.
CBE208O evento informado não existe.
CBE209Esse tipo de autenticação não está disponível no momento.
CBE211Esse tipo de autenticação não existe.
CBE212auth.login é obrigatorio.
CBE213auth.pwd é obrigatorio.
CBE214Não é permitido cadastrar esse webhook para Virtual BaaS.
CBE216auth.type é obrigatorio.

2. Consultar Webhooks cadastrados

A consulta de webhooks permite obter a lista de webhooks previamente cadastrados.

Passos para integrar

  1. Realizar autenticação na API - [API Reference]
  2. Consultar Webhooks cadastrados - [API Reference]
  • O endpoint aceita o parâmetro evento como query parameter. Exemplo: onboarding-create
  • Caso o parâmetro não seja informado, serão retornados todos os webhooks cadastrados.

cURL da Chamada

curl --location --request GET 'https://sandbox.openfinance.celcoin.dev/baas/v2/webhook/subscription' \
--header 'Authorization: Bearer {{token}}'

Você pode buscar um status especifico utilizando os seguintes parâmetros:

Entity -> Identificador do Evento.
Active -> true ou false

Exemplo de retorno

👍

Sucesso 200

{
    "body": {
        "subscriptions": [
            {
                "subscriptionId": "6778399a82f0238d133fae0c",
                "entity": "pix-payment-in",
                "webhookUrl": "https://kubernetes-prod.celcoin.dev/sandbox-baas-validation-webhook/validate/webhook",
                "active": true,
                "createDate": "2024-11-27T09:19:41.693Z",
                "lastUpdateDate":"2023-03-06T12:02:48.419Z",
                "auth": {
      						"login": "string",
      						"pwd": "string",
      						"type": "string"
          	 }
        ]
    },
    "status": "SUCCESS",
    "version": "1.0.0"
}

Error 400

{
  "version": "1.0.0",
  "status": "ERROR",
  "error": {
    "errorCode": "CIE999",
    "message": "Ocorreu um erro interno durante a chamada da api."
  }
}

3. Atualizar Webhook

A atualização de webhooks permite modificar informações relacionadas a um evento e à rota (URL) configurada.

Passos para integrar

  1. Realizar autenticação na API - [API Reference]
  2. Atualizar Webhook cadastrado - [API Reference]

Para clientes que possuem mais de uma rota configurada para o mesmo evento, é obrigatório informar o subscriptionId na requisição, a fim de identificar qual configuração deve ser atualizada.

Descrição dos campos da chamada

Nome do CampoTipoDescrição
entitystringIdentificador do Evento.
webhookUrlstringRota que o cliente deseja receber o evento.
authobjetoDados de autenticação do Webhook.
loginstringLogin para Webhook.
pwdstringSenha para Webhook.
typestringTipo de autenticação (basic)
subscriptionIdstringObrigatórios nos casos onde o cliente possui multiplas rotas para o mesmo evento

JSON da chamada

{
  "webhookUrl": "https://webhook.d3fkon1.com/61a254bd-a833-476c-8d8f-c625ecc40534",
  "auth": {
    "login": "string",
    "pwd": "string",
    "type": "basic"
  }
}

cURL da Chamada

curl --location --request PUT 'https://sandbox.openfinance.celcoin.dev/baas/v2/webhook/subscription/pix-payment-out' \
--header 'Authorization: Bearer {{token}}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "webhookUrl": "string",
  "auth": {
    "login": "login",
    "pwd": "password",
    "type": "basic"
  },
  "active": true,
  "subscriptionId": "64a340b7987ab1220a72ab66"
}'

Exemplo de retorno

👍

Sucesso 200

{
    "body": {
        "subscriptionId": "684b45a5391dbba43a367f80"
    },
    "status": "SUCCESS",
    "version": "1.0.0"
}

Error 400

{
    "status": "ERROR",
    "error": {
        "errorCode": "CBE205",
        "message": "Cliente já possui webhook cadastrado com esse evento."
    },
    "version": "1.0.0"
}

4. Excluir Webhook

A exclusão de webhooks permite remover configurações previamente cadastradas para um evento.

Passos para integrar

  1. Realizar autenticação na API - [API Reference]
  2. Excluir Webhook cadastrado - [API Reference]

Para clientes que possuem mais de uma rota configurada para o mesmo evento, é obrigatório informar o subscriptionId no query parameter para identificar qual configuração deve ser excluída.

cURL da Chamada

curl --location --request DELETE 'https://sandbox.openfinance.celcoin.dev/baas/v2/webhook/subscription/pix-payment-out?SubscriptionId=64a340b7987ab1220a72ab66' \
--header 'Authorization: Bearer {{token}}'

Exemplo de retorno

👍

Sucesso 200

{
  "version": "1.0.0",
  "status": "SUCCESS"
}

Error 400

{
    "status": "ERROR",
    "error": {
        "errorCode": "CBE205",
        "message": "Cliente já possui webhook cadastrado com esse evento."
    },
    "version": "1.0.0"
}