Regards,
Nitin
Doc says "When durations are specified in days Kill Bill will not allow a recurring price".
I need to make plan for weekly or daily subscription. Please let me know if there is any work around to bill this kind plan.
I am working on a mobile based subscription model where billing is very small.
Say a news provider push messages to users on their mobile. For this user can subscribe to a monthly, weekly, 3 day or daily plan. Periodically user will be charged for its opted plan. If user don't have enough money for its opted plan then plan should degrade to a lower duration plan for that particular cycle. So for daily plan we could be charging a customer on a daily basis but yes duration of days is required for my use case.
Now for mobile postpaid, there will be no issues but for prepaid micro-billing is required.
Plan price will vary on the basis of period therefore I needed granularity at number of days. Can I make a plugin to dilute the granularity or it's a limitation of the system. I am not clear about the problem with granularity on number of days. Please help me understanding the subscription period.
so for Weekly its granularity level 2 and numberofmonth depicts number of week (1) and BIWeeekly is level 2 and numberofmonth depicts 2 weeks for granularity the level is 3. I will refactor it and rename later.BillingPeriod code is a ugly fix for weekly period in which i reused numberofmonth as number in granule unit.
Thanks I after making changes have tested for weekly and its working fine.
Can I give extension of days on the basis of money in the payment in case of low balance. For example, lets a user has 6 INR in his mobile prepaid account at the time 10 INR subscription renewal is triggered. Gateway will response not sufficient balance, current balance 6 INR. It is required to give one time 2 week extension and charge 5 INR. After 2 weeks the same process need to repeat. Downgrading will make the billing cycle permanent of lower period.
regards,
Nitin
Can I give extension of days on the basis of money in the payment in case of low balance. For example, lets a user has 6 INR in his mobile prepaid account at the time 10 INR subscription renewal is triggered. Gateway will response not sufficient balance, current balance 6 INR. It is required to give one time 2 week extension and charge 5 INR. After 2 weeks the same process need to repeat. Downgrading will make the billing cycle permanent of lower period.
On Fri, Nov 15, 2013 at 7:24 AM, <nsi...@gmail.com> wrote:Can I give extension of days on the basis of money in the payment in case of low balance. For example, lets a user has 6 INR in his mobile prepaid account at the time 10 INR subscription renewal is triggered. Gateway will response not sufficient balance, current balance 6 INR. It is required to give one time 2 week extension and charge 5 INR. After 2 weeks the same process need to repeat. Downgrading will make the billing cycle permanent of lower period.Payment retries will happen automatically, as long as the payment plugin returns an ERROR status (see PaymentInfoPlugin).Stephane is more familiar than I am with the payment code, so I'll let him correct me if I'm wrong here, but I believe we don't support payment retries on partial payments today. Looking at the code though, we may be able to add this feature by creating a future notification in case of payment success if the returned paid amount is lower than the submitted payment amount. It seems that the overdue system already refreshes the overdue status when receiving a PaymentInfoInternalEvent event, so overdue would still be able to see the incomplete payment.
Can I play with 2 plans say one with one with evergreen and another with trial(partial payment with days duration)+evergreen. subscribe user to first plan and during renewal if insufficient amount trigger cancel plan along with invoice and switching to second plan. Or can I close the invoice with insufficient balance and trigger a new invoice do the payment and move next resubscription payment event to days bought.
Can you give me some pointers if I have to modify the code as per this usecase(implementing paritial payment).
regards,
Nitin
Can I play with 2 plans say one with one with evergreen and another with trial(partial payment with days duration)+evergreen. subscribe user to first plan and during renewal if insufficient amount trigger cancel plan along with invoice and switching to second plan.
Or can I close the invoice with insufficient balance and trigger a new invoice do the payment and move next resubscription payment event to days bought.
Can you give me some pointers if I have to modify the code as per this usecase(implementing paritial payment).
I'll look forward for the outcome of your discussion with stephane
Can you help me understanding the invoice payment overdue relationship.
Is something like this coming to killbill? I also need customized billingperiods. In my case bi-annual. Is recompiling with the changes I need my only option for the foreseeable future?
Hi Pierre,
I noticed the DAILY billing period in BillingPeriod class. We are using the following killbill jars - killbill-client-java-0.40.5.jar and killbill-api-0.50.jar.
public enum BillingPeriod {
DAILY(Period.days(1)),
WEEKLY(Period.weeks(1)),
BIWEEKLY(Period.weeks(2)),
THIRTY_DAYS(Period.days(30)),
MONTHLY(Period.months(1)),
QUARTERLY(Period.months(3)),
BIANNUAL(Period.months(6)),
ANNUAL(Period.years(1)),
BIENNIAL(Period.years(2)),
NO_BILLING_PERIOD(Period.ZERO);
private final Period period;
BillingPeriod(final Period period) {
this.period = period;
}
public Period getPeriod() {
return period;
}
}
I created a plan with 'DAILY' billing period and subscribed to it and tried to generate the invoice. I see the following in the log file (which reflects daily subscription) . Looks like DAILY is supported. Could it be because we are using a older version of killbill (not sure what the latest version is)
RECURRING{startDate=2018-04-11, endDate=2018-04-12, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-12, endDate=2018-04-13, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-13, endDate=2018-04-14, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-14, endDate=2018-04-15, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-15, endDate=2018-04-16, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-16, endDate=2018-04-17, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-17, endDate=2018-04-18, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-18, endDate=2018-04-19, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-19, endDate=2018-04-20, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-20, endDate=2018-04-21, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-21, endDate=2018-04-22, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-22, endDate=2018-04-23, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-23, endDate=2018-04-24, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-24, endDate=2018-04-25, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-25, endDate=2018-04-26, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-26, endDate=2018-04-27, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-27, endDate=2018-04-28, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-28, endDate=2018-04-29, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-29, endDate=2018-04-30, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
RECURRING{startDate=2018-04-30, endDate=2018-05-01, amount=10.00, rate=10, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, linkedItemId=null}
DefaultBillingEvent{type=BCD_CHANGE, effectiveDate=2018-05-01T23:06:31.000Z, planPhaseName=plan_0fa66863-8819-406d-8d91-de2e8f1a6fa8-evergreen, subscriptionId=8e5d0be0-2d3c-4191-bf03-00fd03ed7109, totalOrdering=1665}
I had one more question - if we have sample request - POST http://killbill1/1.0/kb/invoices?accountId=5283458b-a2d7-49ce-8b63-e10eab6a5e8b&targetDate=2018-05-01 -- this is to generate the invoice. Trying to understand the logic around targetDate. Does the targetDate mean, create invoice for those subscriptions for which the SUBSCRIPTIONS.START_DATE is 2018-05-01?
Thanks for your time.
Suhasini.
I created a plan with 'DAILY' billing period and subscribed to it and tried to generate the invoice. I see the following in the log file (which reflects daily subscription) . Looks like DAILY is supported.
Could it be because we are using a older version of killbill (not sure what the latest version is)
I had one more question - if we have sample request - POST http://killbill1/1.0/kb/invoices?accountId=5283458b-a2d7-49ce-8b63-e10eab6a5e8b&targetDate=2018-05-01 -- this is to generate the invoice. Trying to understand the logic around targetDate. Does the targetDate mean, create invoice for those subscriptions for which the SUBSCRIPTIONS.START_DATE is 2018-05-01?