I'm writing a system that will bill people a certain recurring amount per month/quarter/year. During that period, the customer may earn credits against his next bill.

The approach I'm considering is to alter the customer's billing amount before the next billing cycle, then adjust it back up after the cycle.

The problem I'm anticipating is that I know (from personal experience) that PayPal doesn't allow you to adjust a recurring billing amount by more than 20 or 25% (I forget which). I haven't managed to get a clear answer from the developer forums on Auth.NET (my question here - nobody has answered in over 2 days), so I'm hoping one of the nice developers here on SO will have some experience dealing with PayPal and/or Auth.NET, and can give me some pointers as to what the best approach is to deal with this.

Also, what should I do if the customer upgrades his account to a package that's more than the allowed increase percentage? Should I kill his old profile and make him fill in his card/PayPal details again? Or is there a way of doing this that obviates the need to make him pull out his credit card again?

  • This question is a good fit for Webmasters
    – John Conde
    Commented Jul 13, 2011 at 17:07
  • @John - I'm not a webmaster, I'm a programmer...
    – Shaul
    Commented Jul 13, 2011 at 17:14
  • 1
    the type of question determines where a question belongs. This isn't a programming question at all. It's about how two payment services work which is a topic covered at Webmasters.
    – John Conde
    Commented Jul 13, 2011 at 17:53

1 Answer 1


As far as Authorize.Net goes, when using ARB (Automated Recurring Billing) you can set a trial period where the cost is different the the regular subscription price. Once the trial period ends the regular subscription price will be charged for the remainder of the subscription. If you want to change the amount charged you will need cancel the current subscription and start a new one with the new amount to be charged. This naturally means that you will need the user's credit card information again.

An alternative option is to use CIM (Customer Information Manager). This allows you to create payment profiles which stores the user's payment information securely on Authorize.Net's servers. Then whenever you want to charge them you just use their payment profile ID number and amount to be charged and it's processed. This means no need to repeatedly ask users for their credit card information. The downside is you have to build your own payment scheduling engine as their is no built in recurring payment functionality built into CIM.

  • This sounds like a perfect fit for what I want to do - thank you!
    – Shaul
    Commented Jul 13, 2011 at 17:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.