Is there any way we can restrict the prepaid card payments? Like VISA gift cards and etc?

If you use autocomplete=false, you can authorize the card without capturing it just yet. In the response there will be a Payment object, which will have a card object, which has a prepaid_type field (currently can be set to “UNKNOWN_PREPAID_TYPE”, “NOT_PREPAID”, or “PREPAID”). Thus, if you see the card is “PREPAID”, you can simply cancel the payment if you do not want to charge prepaid cards.