3
votes

I am using PAYPAL recurring payments for subscriptions and it is working well in case :

  • When user subscribes then INIT AMT, BILLING AMT, BILLING PERIOD has been set.

$request['CURRENCYCODE'] = ''USD;
$request['AMT'] = $amount;
$request['INITAMT'] = $amount;
$request['BILLINGPERIOD'] = $billingPeriod; // Month
$request['BILLINGFREQUENCY'] = $billingFrequency; // 1
$request['PROFILESTARTDATE'] = date('Y-m-d\Th:m:s', strtotime('+' . $billingFrequency ." ". $billingPeriod));

User would be charged with INIT AMT and then after the specific period (I have set INIT because I need TRANSACTION_ID. Paypal is only deducting the amount after specific period, not instantly on profile creation). But This case is OK.

For eg : User subscribes on on 4th/june with amount $10, with recurring period 'Month'. Then User will be charged on 4th/july


Now concern is :

I want to make a profile of user but not to deduct INIT AMT on profile creation, just want to deduct the recurring billing amount instantly when User creates a profile.

Instance : User subscribe on 4th/june and I want to charge after XX days(eg: if 10 days then on 14th/june).

I am not aware of such variable (if any) that paypal have to fulfill my requirement.
Paypal tigers please update me. Glad if anyone could help.

1

1 Answers

2
votes

You can't process an INITAMT as an Authorization so that wouldn't be an easy solution. If you're passing INITAMT it will always be billed right away and you can't have a Recurring Profile charge right away.

The Recurring Profiles are billed in groups during the day so there isn't a guarantee that it will be charged right away.

You can use Instant Payment Notification (IPN) to get an update with the transaction ID when the Profile is charged. That may help you out. You can remove the INITAMT variable and value and wait for the IPN post to update your records.