There's credit card validation/charging services that have perl libraries, e.g, CyberSource, CyberCash. If you just want to validate credit card checksums there's Business::CreditCard, which is a good idea to do first anyway before you go through the time and trouble of calling the validation routines of the other services.