Soft Decline
1. Introduction
Following the introduction of the PSD2 guideline, 3-D Secure is mandatory for online transactions. Nevertheless, SCA exclusions/exemptions allow you to skip SCA altogether for some transactions. However, there is always a chance that your customers’ bank insists on 3-D Secure, resulting in a declined transaction.
Our Soft Decline mechanism is a great way to recover these declined transactions. It allows you to resend the transaction once more to our platform after a first rejection due to missing 3-D Secure. Sending the authentication data in the second request will raise the chance that your transaction is accepted after all.
2. Implement Soft Decline
A typical flow of a Soft Decline transactions goes like this:
- For requests via Hosted Checkout Page, send CardPaymentMethodSpecificInput.ThreeDSecure.SkipAuthentication=true and cardPaymentMethodSpecificInput.threeDSecure.exemption with the appropriate value in a standard request, but no further authentication parameters
For requests via Server-to-server, send CardPaymentMethodSpecificInput.ThreeDSecure.SkipAuthentication=true together with the mandatory parameters for 3DSv2
This way you indicate that you wish to skip 3-D Secure with the appropriate cardPaymentMethodSpecificInput.threeDSecure.exemptionRequest in a PSD2 compliant way. Two scenarios are possible:
a) The issuer accepts the transactions without 3-D Secure. We submit the actual financial transaction to the acquirer to process it. We receive the transaction result, ending the flow
b) The issuer insists on 3-D Secure. The flow continues at 2) - In our response, the property CreatedPaymentOutput.StatusCode=2 indicates that issuer declined the transaction, insisting on 3-D Secure. The transaction’s error code is errors.errorCode=40001139
- Our platform automatically resubmits the transaction, this time rolling out 3-D Secure v2
- Your customer will have to pass the 3-D Secure authentication during this second request. Finally, the transaction will reach either CreatedPaymentOutput.StatusCode=2 or CreatedPaymentOutput.StatusCode=9. This depends on whether your customer passed the authentication and both your acquirer/your customers' issuer accept the transaction
3. Perform tests
Use the following test data to simulate a full Soft Decline cycle. Add them to a standard CreateHostedCheckout/CreatePayment request during the first step.
- Make sure to send order.amountOfMoney.amount always with fixed value 1604 as described in the code sample. This fixed amount ensures that our platform rolls out the Soft Decline feature.
- Make sure to use 3-D Secure V2 test cards only when performing tests. This will ensure our simulator produces the desired results
{
"cardPaymentMethodSpecificInput": {
"card": {
"cvv": "451",
"cardNumber": "4874970686672022",
"expiryDate": "1220",
"cardholderName": "Wile E. Coyote"
},
"isRecurring": false,
"paymentProductId": 1,
"transactionChannel": "ECOMMERCE",
"threeDSecure": {
"skipAuthentication": true,
"skipSoftDecline": false
},
},
"order": {
"amountOfMoney": {
"currencyCode": "EUR",
"amount": 1604
},
"customer": {
"billingAddress": {
"countryCode": "NL"
}
},
"references": {
"merchantOrderId": 123456,
"merchantReference": "oGPc8xJURfpFitBa6ORrpkBuPoGpvD"
}
}
}