Webhook is not working for NCW transactions

Hello, we are testing the NCW setup with the sandbox, using the guides ncw-web-demo and ncw-backend-demo.

We receive the events through a webhook when transactions are made from fireblocks web. However, when i conduct a transaction using the frontend running locally with an NCW, i don’t receive any events.

I have already configured the webhook in both the General tab and Notifications under Settings.

I am validating the webhook.

When i create a transaction with the frontend, i am able to retrieve information about it using the endpoint: sandbox-api.fireblocks. io/v1/{transaction_id}. This means that the transaction is being sent to fireblocks.

My webhook is https://certainly-famous-shrew.ngrok-free.app/api/webhook.

Could you help me understand why i am receiving events from the fireblocks web and not from my local frontend?

Hi Yurivvdantas,
You need to make sure that your Ngrok is forwarding the webhooks to your NCW backend server. If the webhooks are not received at the backend, you won’t see them on your frontend NCW wallets.
Can you confirm whether you have configured that?Quickstart

Thanks

Thanks for reply mnamakwala.

I conducted a new test and as you can see, Ngrok seems to be working fine. All five events were sent by the transaction I made from the web (I don’t know why the first two failed validation, but the others in sequence worked fine).

In the background window, you can see that I submitted a new transaction. This is the one for which I didn’t receive the events. Because of this, the application remains waiting for confirmation and the status stays as “SUBMITTED”.

The others are showing the status “PENDING_SIGNATURE” because I “forced” the event. If I don’t do this, the transaction will remain in the “SUBMITTED” status.

The transaction of this test is 9907833c-7338-410b-b6c5-60a2deda8943.

Do you have any idea what could be wrong?

Hi Yuri, As you can see, you get 500 internal server errors. You need to see 200 responses, as you saw earlier.
You can confirm whether you are receiving webhooks on your backend server, too.
I recommend ensuring that the backend server is running on the same port and that the webhooks are being forwarded to the same port.

Another point is that if one transaction is stuck in a pending signature, the other transactions for that wallet for the same asset will be queued until the previous one is signed.

Hi @mnamakwala. The 500 errors were caused by transactions I made from the Fireblocks web application. It seems that two transactions were sent with the description ‘submitted’ and without the ‘fireblocks-signature’ header. This is the reason for the 500 errors (Invalid signature). I just want to reaffirm that this happens when I make a transaction with Fireblocks web. The subsequent notifications are sent with the header, and the validation occurs correctly.

Regarding the possibility of the notification being in a queue, the image I sent shows that the other transactions were ‘PENDING_SIGNATURE’. This is because I forced the webhook and simulated the notification myself. Then, I signed but did not send this event, keeping the status without an update.

Anyway, I conducted a new test with a new wallet and I’m stuck with the status ‘SUBMITTED’ because I’m not receiving the event from the sandbox API. The transaction status is ‘PENDING_SIGNATURE’ (see print below). The transaction ID is 03a58ce4-5fa3-4a2f-8c97-5d003fee083d and the wallet ID is 82440226-b029-4882-a709-1efaffca0359.

Could you check if the webhook was sent for this transaction and wallet?

Hi Yuri,
The webhooks were not sent because no webhook URL was added to the workspace under settings.

Also, please ensure you use the public key mentioned in the above guide to validate the webhooks from sandbox workspaces. You must add this webhook public key to the backend server’s env file.

But it’s clear that I am receiving events when I make a transaction through the web platform, right?
I don’t understand. If it’s the same configuration for NCW, how can I receive notifications from the Fireblocks web and not from an NCW transaction? I assumed that the transaction was not sent, but when I search, it’s there.

So, if there’s some kind of misconfiguration with the webhook, I shouldn’t get receive notifications from anywhere, right?

Just for check the configurations, this is my Audit Log and i already has configured the webhook under “General” and “Notifications” tab.

Hey Yuri,
That is because the transactions were created by fireblocks but did not reach the front end.
That is why we use webhooks. They deliver the data to your backend, and then your backend sends it to your front end if the webhook connection is established correctly to the backend server. The transaction signing requests and Transaction statuses will not be updated on the NCW wallet (front end/client side) if the webhook is not delivered to the backend.
It is not true that notifications will not be received if a webhook is not configured. We have different types of logging and notifications.

The webhook can be configured in settings and the notification center.
Audit logs monitor all activity as well.

As far as I can see, the webhook URL is not present in the config in workspace Klever—Marlon Santos.
Please follow the guide below to add webhooks.
Thanks

Hi @mnamakwala, you were right. I was confused about workspaces. For me, they were all the same sandbox environment, and Marlon and I were just users.

After the configuration of Marlon’s workspace, the webhook was received successfully.

Thanks for your support.