I'm planning to register a webhook to my public app.
I saw some documentation where they register the webhook (and billing charges) on the /shopify/callback. Since the /shopify/callback service is requested everytime we click on the app, what's the best way to register only one time the webhook and the billing charge?
The '/shopify/callback' URL which is used in the online tutorial is an example of one possible value for the webhook address. There is nothing special about the URL, and this can indeed be anything you would like it to be.
Webhook notifications are sent based on the topic you subscribe to, each being triggered by different events.
You should be able to create a single webhook subscription using the Webhook API. What exactly are you having trouble with?