Checkout Toolkit Integration with 3DS?

Hi Rapyd Community,

We have an embedded Rapyd Collect via Checkout Tookit integration within our application.

When doing some quick production QA, I am having trouble getting card payments to work. In a previous interaction a Rapyd Tem member mentioned it is likely due to the fact that the card would require 3DS. However after some digging I cant seem to figure this one out.

After the user enters the payment card data into the embedded checkout and hits the “Pay with Card” data. I am seeing a 400 error in the network activity of the browser when the Javascript Toolkit SDK sends the card data to the checkout endpoint.

{
  "status": {
    "error_code": "INVALID_PAYMENT_METHOD",
    "status": "ERROR",
    "message": "The request tried to perform an operation that requires a payment method, but the payment method was not found. The request was rejected. Corrective action: Use the correct payment method ID or payment method object.",
    "response_code": "INVALID_PAYMENT_METHOD",
    "operation_id": "1263e0d4-f750-4941-968f-5fa0d7bf52b9"
  }
}

This leaves me with 3 questions:

  1. Is there any known limitations around the 3DS flow with the checkout toolkit integration? We are not doing the hosted checkout page, but the toolkit checkout.

  2. If not, do any code samples exist that would show the correct handling if anything unique is needed to implement 3DS via the checkout toolkit? We already handle redirect URL flows for bank and wallet payments.

  3. Is there anyway to simulate the 3DS via checkout toolkit in the Rapyd sandbox? I have tried the $1001 SGD amount, but it seems to go through successfully with no prompts on our rapyd sandbox test form.

Thanks again for your help. :+1:

1 Like

Hi @may191

The error you shared happens because you are using a Production account (as you mentioned) that has not been activated. This is the process to activate the account.

I see that you are testing card acquiring in Europe. These specific payment methods required this “onboarding” process. Once your account passes this process, Rapyd will activate the payment methods; currently, your account does not have those payment methods, hence the “payment method was not found” error.

Regarding your questions:

  1. No limitations that come to my mind.
  2. Nothing unique, other than listening to the Javascript events, and catching the 3DS redirect URL from the payment object json in the event. You are probably doing this for bank/wallet payments.
  3. Probably you are passing a customer object with a payment method that already passed 3DS? I was able to trigger 3DS in Sandbox with this example:
{
    "amount": 1050,
    "complete_payment_url": "http://example.com/complete",
    "country": "GB",
    "currency": "GBP",
    "error_payment_url": "http://example.com/error",
    "merchant_reference_id": "950ae8c6-78",
    "cardholder_preferred_currency": true,
    "language": "en"
}

Hope this is helpful!

Thanks for this info.

That all makes sense that the root of the issue is not 3DS based.

I was able to switch to a GB, GBP Checkout, for 1050 and receive the 3DS Sandbox window prompt using the Checkout Toolkit. :+1:

As you mentioned this follows the same flow as Bank/Wallet redirect which was what I had hoped.

Thanks again for your help!

1 Like