Sending raw card details to Chargebee via API is not a recommended approach for 3DS.

3DS authorises card payments by collecting user-verifiable information and Gateways play the role of collecting the background information of the customer from the browser using their JS. Once they collect the information, they send it to the issuing Bank and authorise the payments.

Apart from communicating customer's background data to the issuing Bank, Gateways also seamlessly handle 3DS flows. Hence, it is recommended that you incorporate the Gateway JS and collect the card information from your customers. The gateway would then return a token using which you can create subscriptions in Chargebee.