Once you've configured your webhook URL (Chargebee console -> Settings -> Webhook Settings), events will be posted back based on the event type. The event data will be posted as request body with content type set as application/JSON. 


Sample code snippets to get subscription / customer details from the RAW POST DATA:


PHP:

 

$webhook_request = file_get_contents('php://input');
$event = ChargeBee_Event::deserialize($webhook_request);
$eventType = $event->eventType;  // to get the event type
$content = $event->content();
$subscription_id = $content->subscription()->id;   //get subscription ID
$customer_email = $content->customer()->email;   // get customer email ID

 


JAVA:

 

BufferedReader reader = request.getReader();
Event event = new Event(reader);
EventType eventType = event.eventType();   // to get the event type
Event.Content content = event.content();
String subscriptionId = content.subscription().id();  //get subscription ID
String customerEmail = content.customer().email();    // get customer email ID

 

Ruby:


event =  ChargeBee::Event.deserialize(request.body.string)
event_type = event.event_type   // to get the event type
content = event.content
subscription_id = content.subscription.id  //get subscription ID
customer_email = content.customer.email    // get customer email ID

 

.NET:

 

Event events = new Event(Request.InputStream);
EventTypeEnum eventType = (EventTypeEnum)events.EventType;  // to get the event type
Event.EventContent content = events.Content;
String subscriptionId = content.Subscription.Id;  //get subscription ID
String customerEmail = content.Customer.Email;     // get customer email ID  


Make sure you do basic authentication for the webhook URL. More details here.