Hey there,
In fact, this is an error and not something normal that must be respected because the system must wait for payment.
I tested this with the Stripe plugin. If the payment fields aren’t filled in, the checkout page doesn’t proceed and no order is created. The order is only created if the process can proceed past the checkout. On your site, the payment gateway is allowing the transaction to proceed even though the correct information hasn’t been filled in.
This isn’t strictly a WooCommerce core function – the payment gateway determines which fields it needs to show at checkout and which need to be required. As you mentioned, some payment gateways don’t require this validation (like a bank transfer), but credit card payments do require it. And that comes back to the gateway plugin.
But the only means of payment is the credit card and the person is obliged to put all the data there.
Exactly, this is up to the payment gateway plugin to validate. If your payment gateway isn’t doing that, I’d recommend trying another to see if that works properly, or reaching out to the developer of the current gateway.
I thought about the option of placing all fields as mandatory, but they are already.
You’d be able to do that for the standard checkout fields, like name and address. That won’t affect the payment gateway itself, though, as it usually has additional fields like credit card number – the validation (which fields are required) is handled by the payment gateway and not core WooCommerce.
To reiterate, I recommend that you try a different payment gateway, as it sounds like this one doesn’t have the validation that you need. Or reach out to the payment gateway’s developer to see if this option can be added.