Paypal Express Checkout- reactivate suspended profile and balance - express

In sandbox I created a recurring profile with MAXFAILEDPAYMENTS set to 1 so if a payment fails the profile will be suspended(I check the profile of the profileId of paypal saved in db so if the status of paypal isn't 'Active' I know that there is something wrong'...
But when a customer wants to reactivate his profile I can't find anywhere in paypal documentation what happened... Let's say my customer has is profile suspended in 2015/01/24 and in 2015/03/13 he wants to reactivate the profile... Me I just to want that his new monthly payment cycle begin this date (2015/03/13) and don't care about outstanding balance and what he must has owed between these dates...
The question is I don't know if when profile is suspended if the interval between suspension and reactiviton the amount due to each cycle is added to the outsanding balance (I want that it's not the case) and if yes how can I change this behaviour?

If a profile becomes suspended you cannot reactivate it unless it has an outstanding balance of $0.00. You can use the BillOutstandingAmount API to do exactly that, and then you can reactivate the profile manually or via the ManageCreateRecurringPaymentsProfileStatus API after that.
If you don't want to collect the balance then you'll need to set it to $0 manually or via the UpdateRecurringPaymentsProfile API. Then you could reactivate it.

You can use the following link to re-Activate an agreement again.
Re-Activate.
PayPal has recently changed subscriptions from S- subscriptions to I- subscriptions.
The difference about I- subscriptions is that after a subscription payment fails, the subscription is suspended instead of canceled.

Related

How to test the 'unpaid' and 'incomplete_expired' status in subscriptions using stripe test cards?

I want to test the following scenarios which are included in the stripe subscription status documentation.
Can anyone please suggest a test card in stripe to test it?
Scenario 1
Incomplete_expired- The initial payment on the subscription failed and no successful payment was made within 23 hours of creating the subscription. These subscriptions do not bill customers. This status exists so you can track customers that failed to activate their subscriptions.
Scenario 2
Unpaid- The latest invoice hasn’t been paid but the subscription remains in place. The latest invoice remains open and invoices continue to be generated but payments aren’t attempted.
You should use a test card where the payment will be declined for the initial subscription invoice payment. There's a full list here, but 4000000000000002 will return a generic card_declined error which should be sufficient for this testing case.
Have a look at the SO question: Simulate Stripe Subscription Renewal Failure
The idea is to create a user with a valid payment method and then change the payment method later on via the dashboard for example.
For incomplete_expired - just pay with card which need 3d secure like 4000002500003155 and don't make card authentication, subscription will move to incomplete after 3 hours, after 23 hours subscription status will move from incomplete to incomplete_expired.
For unpaid status Stripe says some additional setting should be applied
https://stripe.com/docs/api/subscriptions/object#subscription_object-status

How to set trial period in shopify app?

I have created shopify app and setting up billing Api. In the App, I want to apply trial period of 20 days. I have created the charge during the app installation and send customers to confirmation url so that they can accept or decline the charge.. So I want to know that if customer decline the payment charge, then can he uses the app featurs till trial period?
If a customer declines the subscription, you still get the confirmation URL callback. Examine the charge. The status will say declined. At this point you can kill off their DB token and destroy their session. This will ensure they cannot use your App as they declined the terms.
It is one bad aspect of the whole billing scenario. I have lots of customers that are faced with a question they don't read. So they assume the trial you offer for free is activated by declining the subscription. Silly customers... still cannot operate the Internet :)

PayPal Sandbox transactions are not showing for seller

I've used my live PayPal account to login to developer.paypal.com where I created 2 new accounts buyer# (personal) and seller# (business). I've implemented a PayPal plugin for a shop (CubeCart + PayPal Standard Payment Gateway plugin https://www.cubecart.com/extensions/payment-gateways/paypal-standard). When I complete an order (sandbox testing) I sign using buyer# email and password and complete the order. I can then click to view account and it shows "payment to", "unclaimed" and the amount I've paid. When I logout of this account and login as my buyer#, I see no transactions. If I log back into developer.paypal.com and go to transactions under "Sandbox" section and select any of the email addresses I see the same statement for all of them "You don't have any transactions".
If I login to sandbox.paypal.com using james-facilitator# account (business) there are no transactions here either.
If I login to sanbox.paypal.com using james-buyer# account (personal) there is only the one initial transaction here for the initial 9,999 funds
I've obviously missed something but I can't think what, I'm not sure how a sandbox account knows who it's seller should be but I've checked both sandbox seller accounts. I find it strange that the buyer account I used has registered the transaction but it seems like it's orphaned as there isn't any other record of it any where else including the developer.paypal.com sandbox transaction. I've tried this several times to see if I could get it working and I've also allowed for 24 hours just in case there was a delay somewhere.
I just want to be able to test transactions before going live.
Any help/advice?
Much appreciated :)
Cheers
James
Solved - silly really now I know but it was simply the email address I used to test the API. I used my main live account and I should have used the fake email address in my API call. Since my live controls the test accounts I assumed that this should have been used.

SagePay Test account Pre-authorisation processing

I am currently setting up SagePay on the SagePay Test account. I want to Pre-authorise a payment (Hold) and then Capture the payment a few days later. It appears however that I only have the option to invoke payment immediately - does anyone know how to perform Authorise then Capture a payment.
Deferred will work. Authorisation with the bank is obtained at the point of sale and you have 30 days to Release the payment for settlement. Only at the point of Release will the process of transferring funds from the card issuing bank to the merchant bank begin.
You can Release a payment by clicking on the transaction in My Sage Pay or by sending a command across to Sage Pay from your internal web portal:
http://www.sagepay.co.uk/file/21071/download-document/SHARED_Protocol_Guidelines_010814.pdf?token=Bbx-WrTNysT6-HtttVME4so0nYzd-Tt8rWqLrQ_wdaA

Getting status on canceled/expired credit cards for recurring billing with authorize.net

We're setting up a system that will use the XML API for Automated Recurring Billing with Authorize.net.
It looks simple enough to set up a recurring billing. But we have two features that do not seem obvious
* providing customers with details on individual payments
* providing notification to customers of expired/canceled cards
Anyone familiar with a mechanism to retrieve this info in automated form? We're considering
* just listing out assumed payments based on our own calculations the start date
* emailing customers based on the expiration date of the ards
But I'm stymed on how to figure out when a transaction failed due to canceled card (and automatically notify the customer).
Can anyone comment on how they handled this issue when implementing a subscription-based service based on Authorize.net?
Authorize.Net has recently published a new ARB method "ARBGetSubscriptionStatus".
You may now easily query the status of a previously submitted ARB subscription without the need to depend on the "Silent Post Method".
Example:
<?xml version="1.0" encoding="utf-8"?> <ARBGetSubscriptionStatusRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> <merchantAuthentication> <name>mytestacct</name> <transactionKey>112223344</transactionKey> </merchantAuthentication> <refId>Sample</refId> <subscriptionId>100748</subscriptionId> </ARBGetSubscriptionStatusRequest>
You want to use Authorize.Net's silent post feature. It will notify you of all payments made through their system including declines and expired credit cards. Your script will then be able to suspend accounts and/or notify your customers that their payments has failed.
See these link for more info:
Handling Authorize.Net ARB Subscription Failures
All About Authorize.Net’s Silent Post
Handling Authorize.Net Silent Post with PHP
You need to use the Silent POST URL
ARBGetSubscriptionStatusRequest will not work. If the first transaction (or first transaction since the ARB profile was updated, either via API or manually) fails, the status of the subscription is set to suspended. Otherwise, the status of a subscription does not change when a transaction declines or a card expires.
Using the Silent POST URL, you'll be notified of successful transactions and you can use them to update your data such as tracking a next payment due date/expiration date. You can then run a cron job and if this field has not been updated, you will know that the card was cancelled or expired.
In the event that it is still an active card but gets declined, you'll get notified as such at the Silent POST URL