06-01-2017 03:23 AM
I am using Webhooks to receive notification of failures. When I get the `net.authorize.payment.authcapture.created` event, I check whether the transaction is part of a subscription. If it is, I then look up the response code (1 meaning accepted, anything else meaning failed for some reason, as per the docs), and if so I will mark that transaction as failed in my system.
So, can you tell me how (on the sandbox) I can actually trigger an ARB payment to fail? Everything I have tried succeeds.
I tried using the test card number 4111111111111111 but it settled successfully - I spoke with someone on the phone and they told me that using that number would get declined, but it did not. I also tried setting the ZIP code to 46282 to trigger a decline, but this also went through.
Example sandbox transaction ID: 40004602425
For the use of the ZIP code, it is subscription 4640587 - this payment is due to come out shortly but I fear this is going to settle properly as well.
06-01-2017 03:50 AM
To confirm, with the ZIP code, I had to create the ARB subscription without that ZIP and then afterwards, modify the payment profile to include it. Otherwise, it is declined immediately and my system won't set up the subscription at all. So, when it comes time to issue this recurring payment, even though it wasn't specified at the beginning, can I be certain that this will get declined as it should?
As noted, this is subscription 4640587 in my sandbox account.
06-01-2017 12:55 PM
Off the top of my head, I believe once you put the test zip code in the transaction will decline, but I confess I've never tested that exact scenario. Can you please let me know what happens when the transaction actually runs?
06-02-2017 02:58 AM
The transaction (60024623460) is currently in the queue to be settled overnight. It has triggered the 'net.authorize.payment.authcapture.created' event, which has marked in my system that the transaction looks good.
When it goes to be settled and then, presumably, fails, what webhook event will be triggered?
06-02-2017 11:28 AM
Once the net.authorize.payment.authcapture.created is received showing that the transaction was succesful, I wouldn't expect any failure at settlement unless there was some error at the processor level. We don't currently have any webhooks event for that kind of error.
However, assuming this transaction is actually successful, that brings us back to the initial question, which is wondering how to make a subscription transaction fail for testing.
I'll have to look into this a bit more. In the meantime, what about the amount triggers in the testing guide? I know the testing guide says they're phased out, but they still work for now. I wonder if you could set up a subscription with a trial amount of, let's say, $1.00, but with the subscription amount of 70.02? I wonder if that would fail once it got past the trial period?
06-02-2017 05:11 PM
In that case, the ZIP code doesn't fail the charge properly then right? Because 60024623460 reported that it's gone through just fine and that's a transaction tied to a payment profile with the ZIP code that's meant to trigger declines.
I've set up a new subscription (4647960) set to charge me $70.02 and check how this behaves. Can you look at that and confirm when the payment will be queued for settlement please? I'm expecting it to be imminently (~24 hours).
If we ignore trying to repeat this for testing and look at what happens if a recurring payment is declined, what happens? Would the net.authorize.payment.authcapture.created event trigger but, upon checking it's status, show it as declined immediately? That's what I'm expecting and at least lets me know that my implementation is doing the right thing, even if I can't test it until it's live and against real money.
06-05-2017 04:05 AM
I've had bad news on this. I set up a transaction (60024659593) to fail for subscription (4647960) by making it a charge for $70.02 as you suggested, and it was declined properly, but I received no notification of this at all.
Does this mean there is no way to tell, from a webhook or otherwise, when a payment gets declined? Surely this is an absolutely huge limitation of ARB that should be noted somewhere very prominently, that it's completely impossible to automatically know when a payment is declined if it's part of a subscription? How are you supposed to cancel someone's access to a recurring training programme for example if you cannot know when a payment was declined?
Does the status of the subscription change to something else when this happens? Will it be set to expired or will it just stay active but without generating further transactions? (I read confusing reports on this from other forum posts so would like official confirmation of this please)
As a side note, can you tell me how to use the API to return just the transactions relating to one specific subscription? I've seen http://developer.authorize.net/api/reference/index.html#transaction-reporting-get-customer-profile-t... for getting them based on a customer profile but can I do it just for a single subscription as well?
06-05-2017 02:22 PM
There is no Webhooks event for a declined transaction, whether in or out of a subscription. Right now, the ways to be notified of a subscription-related transactions are either through email notification of the decline specifically or by querying for lists of all transactions and parsing out subscription related transactions from there (and cross-referencing against what you're expecting on your side).
Better notification of transaction status in subscriptions or better ability to query for the status is an oft-requested feature.
I'd encourage you to take a look at our Ideas Forum where everyone can take a look, contribute feedback, and vote for new features. If you don't see something exactly like this already, feel free to add a new request there.