Create contact from web hook

Listen to a web hook and create a contact from a web hook.

You can’t do it directly. Mautic doesn’t accept webhooks without a Plugin.
However instead of envoking a webhook you can make a proper API call and create a contact.

OR you can create a form in Mautic with the fields you want and post to that form:

(Ajax Example)

Thank you for this clarification.

Is there any way to call a webhook with JSON payload?

Not sure what you are asking.
Which language are you using?

Here is an example, with a webhook already.

I want to push contacts of a campaign to my billing system that accepts webhooks with JSON payload.

Then you need an intermediate step.
Use webhook action in the campaign builder.
Create a script on your server, that accepts Mautic payload and send it further.