That is, their credit card is to be debited every month according a price they pay upon checkout. For example, a user's credit card expired and the payment processor denies their payment, how can I let my app know that with LimeLM?
A few ways. Firstly set your IsGenuine() call to re-check every 30 days to re-download the latest custom license field data (also, handle edge cases where the customer couldn't reverify but the data on the computer says the "subscription" has expired -- fopr example give the customer a prompt dialog).
Also, check the "subscription expires" custom license field that you create, and if the subscription has indeed expired, then don't let the customer use your app.
Next, on the renewal event, have the payment provider contact your website (e.g. PayPal IPN). On success extend the "subscription expires" custom license field to the new expiration date (use the LimeLM web API). On failure either leave the product key as-is, or revoke the key (again, use the LimeLM web API). It's up to you.
That way customers that have payed up can keep using your app. Customers that haven't, can't.
So, all the LimeLM web API stuff will be on your web server (where it belongs), and not in your app.
Does this make sense?