Phriction DatingVIP Public Payment Application Project Rebills and step down History Version 7 vs 11
Version 7 vs 11
Version 7 vs 11
Content Changes
Content Changes
Rebils ran hourly according to schedule. Current rebill step-down setup looks like this:
NSF NON Prepaid
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 3 | no | 0.00 |
| 2 | 3 | yes | 20.00 |
| 3 | 3 | yes | 50.00 |
| 4 | 3 | yes | 50.00 |
| 5 | 3 | yes | 50.00 |
+-------+------------+-----------+-------------------+
```
Step down Prices (we use percent for non defined currencies)
```
+-------+----------+-------+
| retry | currency | price |
+-------+----------+-------+
| 2 | AUD | 24.99 |
| 2 | CAD | 24.99 |
| 2 | EUR | 24.99 |
| 2 | GBP | 24.99 |
| 2 | USD | 24.99 |
| 3 | AUD | 14.99 |
| 3 | CAD | 14.99 |
| 3 | EUR | 14.99 |
| 3 | GBP | 14.99 |
| 3 | USD | 14.99 |
| 4 | AUD | 9.99 |
| 4 | CAD | 9.99 |
| 4 | EUR | 9.99 |
| 4 | GBP | 9.99 |
| 4 | USD | 9.99 |
| 5 | AUD | 4.99 |
| 5 | CAD | 4.99 |
| 5 | EUR | 4.99 |
| 5 | GBP | 4.99 |
| 5 | USD | 4.99 |
+-------+----------+-------+
```
NSF PREPAID
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 1 | yes | 20.00 |
| 2 | 1 | yes | 50.00 |
| 3 | 1 | yes | 50.00 |
| 4 | 1 | yes | 50.00 |
| 5 | 1 | yes | 50.00 |
+-------+------------+-----------+-------------------+
```
Step down Prices (we use percent for non defined currencies)
```
+-------+----------+-------+
| retry | currency | price |
+-------+----------+-------+
| 1 | AUD | 24.99 |
| 1 | CAD | 24.99 |
| 1 | EUR | 24.99 |
| 1 | GBP | 24.99 |
| 1 | USD | 24.99 |
| 2 | AUD | 14.99 |
| 2 | CAD | 14.99 |
| 2 | EUR | 14.99 |
| 2 | GBP | 14.99 |
| 2 | USD | 14.99 |
| 3 | AUD | 9.99 |
| 3 | CAD | 9.99 |
| 3 | EUR | 9.99 |
| 3 | GBP | 9.99 |
| 3 | USD | 9.99 |
| 4 | AUD | 4.99 |
| 4 | CAD | 4.99 |
| 4 | EUR | 4.99 |
| 4 | GBP | 4.99 |
| 4 | USD | 4.99 |
| 5 | AUD | 1.99 |
| 5 | CAD | 1.99 |
| 5 | EUR | 1.99 |
| 5 | GBP | 1.99 |
| 5 | USD | 1.99 |
+-------+----------+-------+
```
Default Decline Plan
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 3 | no | 0.00 |
| 2 | 3 | no | 0.00 |
| 3 | 3 | no | 0.00 |
| 4 | 3 | no | 0.00 |
| 5 | 3 | yes | 50.00 |
+-------+------------+-----------+-------------------+
```
Step down Prices (we use percent for non defined currencies)
```
+-------+----------+-------+
| retry | currency | price |
+-------+----------+-------+
| 5 | AUD | 14.99 |
| 5 | CAD | 14.99 |
| 5 | EUR | 14.99 |
| 5 | GBP | 14.99 |
| 5 | USD | 14.99 |
+-------+----------+-------+
```
Default 3 month Decline Plan
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 4 | no | 0.00 |
| 2 | 4 | no | 0.00 |
| 3 | 4 | no | 0.00 |
| 4 | 4 | no | 0.00 |
+-------+------------+-----------+-------------------+
```
Notes:
1) Once we successfully step down, we always stay in that “retry” and price according to setup.
2) In case of expired cc and failed guess attempt, we immediately suspend subs (no further rebils)
3) In case of decline with restricted or invalid, codes we immediately suspend subs and mark cc as fraud
4) For defined step down pricing, if defined step down price is actually bigger than “regular” price, we go down trough defined price retries until we get the one which is lower. For example for NSF PREPAID, if regular rebill price is 2.99USD, we immediately go to retry 4 (so skipping 1,2,3 because defined step down price there is bigger). If each price is bigger, then we suspend subs.
5) For step downs in percent, if converted currency price is lower than 1USD, we immediately suspend subs.
6) We’re scheduling rebills in user’s time zone so it’s never between 1am till 4am
7) We also have list of banned bins, in that case we’re canceling sub (not immediate stop, but no further rebils)
8) We literally use PHP’s built in Datetime class and calculate date by adding rebill unit (i.e. 1 month). In most situations it literally adds month, like for monthly rebills, it will calculate next rebill date for YYYY-MM-DD as YYYY-(MM+1)-DD. So: 2014-01-01 => 2014-02-01; 2014-05-07 => 2014-06-07; 2014-02-07 => 2014-03-07 etc. The only inconsistency is when next month doesn’t have that day as current month which obviously usually happen on 31st because in most situations it can’t just add month as for example for 2014-03-31 because there’s no 2014-04-31. In such situations PHP seems to go with 31 days so it schedule next rebill to 2014-05-01. And similarly happened with our with Jan 29th scheduled to March 1st. etc.
UPDATE (2016-05-18): Starting from today every Prepaid CC Decline will be assigned NSF PREPAID PLAN (per T5597).
UPDATE (2016-05-23): Added PCODE_CC_INVALID (PV2 code 601) to the list of rebil suspend codes
UPDATE (2016-05-24): Number of attempts will always match to the one defined in plan, even when some step down retries are skipped (T5624)
UPDATE (2016-05-24): Rebill Plans changed (T5623)
Rebils ran hourly according to schedule. Current rebill step-down setup looks like this:
NSF NON Prepaid
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 3 | no | 0.00 |
| 2 | 3 | yes | 20.00 |
| 3 | 3 | yes | 50.00 |
| 4 | 3 | yes | 50.00 |
| 5 | 3 | yes | 50.00 |
+-------+------------+-----------+-------------------+
```
Step down Prices (we use percent for non defined currencies)
```
+-------+----------+-------+
| retry | currency | price |
+-------+----------+-------+
| 2 | AUD | 24.99 |
| 2 | CAD | 24.99 |
| 2 | EUR | 24.99 |
| 2 | GBP | 24.99 |
| 2 | USD | 24.99 |
| 3 | AUD | 14.99 |
| 3 | CAD | 14.99 |
| 3 | EUR | 14.99 |
| 3 | GBP | 14.99 |
| 3 | USD | 14.99 |
| 4 | AUD | 9.99 |
| 4 | CAD | 9.99 |
| 4 | EUR | 9.99 |
| 4 | GBP | 9.99 |
| 4 | USD | 9.99 |
| 5 | AUD | 4.99 |
| 5 | CAD | 4.99 |
| 5 | EUR | 4.99 |
| 5 | GBP | 4.99 |
| 5 | USD | 4.99 |
+-------+----------+-------+
```
NSF PREPAID
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 1 | yes | 20.00 |
| 2 | 1 | yes | 50.00 |
| 3 | 1 | yes | 50.00 |
| 4 | 1 | yes | 50.00 |
| 5 | 1 | yes | 50.00 |
+-------+------------+-----------+-------------------+
```
Step down Prices (we use percent for non defined currencies)
```
+-------+----------+-------+
| retry | currency | price |
+-------+----------+-------+
| 1 | AUD | 24.99 |
| 1 | CAD | 24.99 |
| 1 | EUR | 24.99 |
| 1 | GBP | 24.99 |
| 1 | USD | 24.99 |
| 2 | AUD | 14.99 |
| 2 | CAD | 14.99 |
| 2 | EUR | 14.99 |
| 2 | GBP | 14.99 |
| 2 | USD | 14.99 |
| 3 | AUD | 9.99 |
| 3 | CAD | 9.99 |
| 3 | EUR | 9.99 |
| 3 | GBP | 9.99 |
| 3 | USD | 9.99 |
| 4 | AUD | 4.99 |
| 4 | CAD | 4.99 |
| 4 | EUR | 4.99 |
| 4 | GBP | 4.99 |
| 4 | USD | 4.99 |
| 5 | AUD | 1.99 |
| 5 | CAD | 1.99 |
| 5 | EUR | 1.99 |
| 5 | GBP | 1.99 |
| 5 | USD | 1.99 |
+-------+----------+-------+
```
Default Decline Plan
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 3 | no | 0.00 |
| 2 | 3 | no | 0.00 |
| 3 | 3 | no | 0.00 |
| 4 | 3 | no | 0.00 |
| 5 | 3 | yes | 50.00 |
+-------+------------+-----------+-------------------+
```
Step down Prices (we use percent for non defined currencies)
```
+-------+----------+-------+
| retry | currency | price |
+-------+----------+-------+
| 5 | AUD | 14.99 |
| 5 | CAD | 14.99 |
| 5 | EUR | 14.99 |
| 5 | GBP | 14.99 |
| 5 | USD | 14.99 |
+-------+----------+-------+
```
Default 3 month Decline Plan
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 4 | no | 0.00 |
| 2 | 4 | no | 0.00 |
| 3 | 4 | no | 0.00 |
| 4 | 4 | no | 0.00 |
+-------+------------+-----------+-------------------+
```
Notes:
1) In case of expired cc and failed guess attempt, we immediately suspend subs (no further rebils)
2) In case of decline with restricted or invalid, codes we immediately suspend subs and mark cc as fraud
3) For defined step down pricing, if defined step down price is actually bigger than “regular” price, we go down trough defined price retries until we get the one which is lower. For example for NSF PREPAID, if regular rebill price is 2.99USD, we immediately go to retry 4 (so skipping 1,2,3 because defined step down price there is bigger). If each price is bigger, then we suspend subs.
4) For step downs in percent, if converted currency price is lower than 1USD, we immediately suspend subs.
5) We’re scheduling rebills in user’s time zone so it’s never between 1am till 4am
6) We also have list of banned bins, in that case we’re canceling sub (not immediate stop, but no further rebils)
7) We literally use PHP’s built in Datetime class and calculate date by adding rebill unit (i.e. 1 month). In most situations it literally adds month, like for monthly rebills, it will calculate next rebill date for YYYY-MM-DD as YYYY-(MM+1)-DD. So: 2014-01-01 => 2014-02-01; 2014-05-07 => 2014-06-07; 2014-02-07 => 2014-03-07 etc. The only inconsistency is when next month doesn’t have that day as current month which obviously usually happen on 31st because in most situations it can’t just add month as for example for 2014-03-31 because there’s no 2014-04-31. In such situations PHP seems to go with 31 days so it schedule next rebill to 2014-05-01. And similarly happened with Jan 29th which gets scheduled to March 1st. etc.
UPDATE (2016-05-18): Starting from today every Prepaid CC Decline will be assigned NSF PREPAID PLAN (per T5597).
UPDATE (2016-05-23): Added PCODE_CC_INVALID (PV2 code 601) to the list of rebil suspend codes
UPDATE (2016-05-24): Number of attempts will always match to the one defined in plan, even when some step down retries are skipped (T5624)
UPDATE (2016-05-24): Rebill Plans changed (T5623)
UPDATE (2016-06-29): We are no longer sticking to the same price in case of successful step down, so if we manage successful rebill, for next rebill schedule we set default rebill price according to rebill plan. However since 2016-08-31 according to T6790 we also check last 2 successful rebills and if we have at least two of them, we set the next rebill amount to bigger amount of those two.
UPDATE (2016-11-18): For non-reloadable cards we block rebills or change scheduled amount as explained on T7676
Rebils ran hourly according to schedule. Current rebill step-down setup looks like this:
NSF NON Prepaid
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 3 | no | 0.00 |
| 2 | 3 | yes | 20.00 |
| 3 | 3 | yes | 50.00 |
| 4 | 3 | yes | 50.00 |
| 5 | 3 | yes | 50.00 |
+-------+------------+-----------+-------------------+
```
Step down Prices (we use percent for non defined currencies)
```
+-------+----------+-------+
| retry | currency | price |
+-------+----------+-------+
| 2 | AUD | 24.99 |
| 2 | CAD | 24.99 |
| 2 | EUR | 24.99 |
| 2 | GBP | 24.99 |
| 2 | USD | 24.99 |
| 3 | AUD | 14.99 |
| 3 | CAD | 14.99 |
| 3 | EUR | 14.99 |
| 3 | GBP | 14.99 |
| 3 | USD | 14.99 |
| 4 | AUD | 9.99 |
| 4 | CAD | 9.99 |
| 4 | EUR | 9.99 |
| 4 | GBP | 9.99 |
| 4 | USD | 9.99 |
| 5 | AUD | 4.99 |
| 5 | CAD | 4.99 |
| 5 | EUR | 4.99 |
| 5 | GBP | 4.99 |
| 5 | USD | 4.99 |
+-------+----------+-------+
```
NSF PREPAID
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 1 | yes | 20.00 |
| 2 | 1 | yes | 50.00 |
| 3 | 1 | yes | 50.00 |
| 4 | 1 | yes | 50.00 |
| 5 | 1 | yes | 50.00 |
+-------+------------+-----------+-------------------+
```
Step down Prices (we use percent for non defined currencies)
```
+-------+----------+-------+
| retry | currency | price |
+-------+----------+-------+
| 1 | AUD | 24.99 |
| 1 | CAD | 24.99 |
| 1 | EUR | 24.99 |
| 1 | GBP | 24.99 |
| 1 | USD | 24.99 |
| 2 | AUD | 14.99 |
| 2 | CAD | 14.99 |
| 2 | EUR | 14.99 |
| 2 | GBP | 14.99 |
| 2 | USD | 14.99 |
| 3 | AUD | 9.99 |
| 3 | CAD | 9.99 |
| 3 | EUR | 9.99 |
| 3 | GBP | 9.99 |
| 3 | USD | 9.99 |
| 4 | AUD | 4.99 |
| 4 | CAD | 4.99 |
| 4 | EUR | 4.99 |
| 4 | GBP | 4.99 |
| 4 | USD | 4.99 |
| 5 | AUD | 1.99 |
| 5 | CAD | 1.99 |
| 5 | EUR | 1.99 |
| 5 | GBP | 1.99 |
| 5 | USD | 1.99 |
+-------+----------+-------+
```
Default Decline Plan
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 3 | no | 0.00 |
| 2 | 3 | no | 0.00 |
| 3 | 3 | no | 0.00 |
| 4 | 3 | no | 0.00 |
| 5 | 3 | yes | 50.00 |
+-------+------------+-----------+-------------------+
```
Step down Prices (we use percent for non defined currencies)
```
+-------+----------+-------+
| retry | currency | price |
+-------+----------+-------+
| 5 | AUD | 14.99 |
| 5 | CAD | 14.99 |
| 5 | EUR | 14.99 |
| 5 | GBP | 14.99 |
| 5 | USD | 14.99 |
+-------+----------+-------+
```
Default 3 month Decline Plan
```
+-------+------------+-----------+-------------------+
| retry | delay_days | step_down | step_down_percent |
+-------+------------+-----------+-------------------+
| 1 | 4 | no | 0.00 |
| 2 | 4 | no | 0.00 |
| 3 | 4 | no | 0.00 |
| 4 | 4 | no | 0.00 |
+-------+------------+-----------+-------------------+
```
Notes:
1) Once we successfully step down1) In case of expired cc and failed guess attempt, we always stay in that “retry” and price according to setup.we immediately suspend subs (no further rebils)
2) In case of expired cc and failed guess attemptdecline with restricted or invalid, codes we immediately suspend subs (no further rebils)and mark cc as fraud
3) In case of decline with restricted or invalidFor defined step down pricing, if defined step down price is actually bigger than “regular” price, we go down trough defined price retries until we get the one which is lower. For example for NSF PREPAID, if regular rebill price is 2.99USD, we immediately go to retry 4 (so skipping 1,2,3 because defined step down price there is bigger). If each price is bigger, codes we immediatelythen we suspend subs and mark cc as frauds.
4) For defined step down pricing, if defined step down price is actually bigger than “regular” price, we go down trough defined price retries until we get the one which is lower. For example for NSF PREPAID, if regular rebill price is 2.99USD, we immediately go to retry 4 (so skipping 1,2,3 because defined step down price there is bigger).step downs in percent, If eachif converted currency price is biggerlower than 1USD, then wewe immediately suspend subs.
5) For step downs in percent, if converted currency price is lower than 1USD, we immediately suspend subs.5) We’re scheduling rebills in user’s time zone so it’s never between 1am till 4am
6) We’re scheduling rebills also have list of banned bins, in user’s time zone so it’s never between 1am till 4amthat case we’re canceling sub (not immediate stop, but no further rebils)
7) We also have list of banned bins, in that case we’re canceling sub (not immediate stop, but no further rebils)
8) We literally use PHP’s built in Datetime class and calculate date by adding rebill unit (i.e. 1 month). In most situations it literally adds month, like for monthly rebills, it will calculate next rebill date for YYYY-MM-DD as YYYY-(MM+1)-DD. So: 2014-01-01 => 2014-02-01; 2014-05-07 => 2014-06-07; 2014-02-07 => 2014-03-07 etc. The only inconsistency is when next month doesn’t have that day as current month which obviously usually happen on 31st because in most situations it can’t just add month as for example for 2014-03-31 because there’s no 2014-04-31. In such situations PHP seems to go with 31 days so it schedule next rebill to 2014-05-01. And similarly happened with our with Jan 29thJan 29th which gets scheduled to March 1st. etc.
UPDATE (2016-05-18): Starting from today every Prepaid CC Decline will be assigned NSF PREPAID PLAN (per T5597).
UPDATE (2016-05-23): Added PCODE_CC_INVALID (PV2 code 601) to the list of rebil suspend codes
UPDATE (2016-05-24): Number of attempts will always match to the one defined in plan, even when some step down retries are skipped (T5624)
UPDATE (2016-05-24): Rebill Plans changed (T5623)
UPDATE (2016-06-29): We are no longer sticking to the same price in case of successful step down, so if we manage successful rebill, for next rebill schedule we set default rebill price according to rebill plan. However since 2016-08-31 according to T6790 we also check last 2 successful rebills and if we have at least two of them, we set the next rebill amount to bigger amount of those two.
UPDATE (2016-11-18): For non-reloadable cards we block rebills or change scheduled amount as explained on T7676