Rapyd Checkout Payments not charged with Production keys and 3d secure not works


I want to achieve two goals with rapyd.

  1. Production enviroment with checkout api (should charge payments)
  2. it should show 3d secure payment page.

in case of sandbox payments are charged but no 3ds page appears.

kindly help me if it is merchant account settings fault or my code.

any help would be appreciated.

refrence page Checkout Toolkit Integration

If you can share you code for testing, it will be easier for us to find a solution to your problem otherwise the links below points to Rapyd documentations on how to implements 3D Secured Verification’s as requested by your code

API docs.

A Rapyd Blog Showing how to implement 3D Verification

Your google drive link is requesting me to ask for access to it. Besides you don’t need to send the link to your code. All you need to do is just to show only the portion of code where you are having an issue just like in stackoverflow.com. In that way all developers in this community will look into it and you will get a faster response.

Please paste only the portion the code where you having an issue here in this community. Thanks


Thanks for your reply

I have given access to every to download above code sample.

actually i am using “CheckoutToolkit” to take 3ds payments, now i dont know how to turn on this option and where to turn on this option.

as the above mentioned code works perfectly and not giving me any error at all and charging payments in sandbox but on live it does not charge payments and payment status remain active always.

let me know if you need any other information from me.

any help would be appreaciated.

@Jack_Honner, This is very simple.

Things you will need to know about the API Docs for 3D Secure Payments

1.) To use the sandbox to simulate a payment that requires 3DS authentication, set the ‘amount’ between 1000.00 and 1999.99.

Here, I set mine to 1001.

2.) Run the tested code below and view the request response.

Copy the redirect_url parameter/value in the response and paste on the browser url it will then redirect you to 3D Verification site. You will be required
there to enter certain code/numbers eg 12345. Once enter successfully, you will be redirected to page to complete payments. Once payment is completed

The Status will change from ACT to CLO.

 [redirect_url] => https://sandboxcheckout.rapyd.net?token=checkout_18118b8a65abcc4f90e47fb3d4d50fec

Run the tested Code below


$body = [

"amount" => "1001.00",

"complete_checkout_url" => "http://example.com/complete",

"country" => "GB",

"currency" => "GBP",

"merchant_reference_id" => "950ae8c6-78",


"payment_method_types_include" => [





echo "fred<br><br>";
try {
    $object = make_request('post', '/v1/checkout', $body);

$json = json_decode(json_encode($object), true);

} catch(Exception $e) {
    echo "<div style='background:red;color:white;padding:8px;border:none;'>Error: $e</div>";
1 Like

Different cards have different thresholds for requiring 3DS - it might be 300 USD or 200 GBP or whatever the bank wants. Obviously, you can’t simulate that precise behavior in the sandbox - you would have to know how each of a thousand banks does it. Instead, the sandbox simulator forces a 3DS when you set amount between certain stated values, as @fredjinbility said. The sandbox simulator gives you a simulated 3DS authentication page. In production, each bank will have its own way of doing this. Some might require entering digits sent by SMS to your phone, others might send it in an email, others might give you a choice, etc., etc., etc.

When you run your code in production, you can override the bank’s 3DS requirement by setting 3d_required (not *3ds_required). I don’t think this functions in the sandbox because we are using the amount to do that. (It’s easy to check).