My merchant-system package does that, but it doesn't currently interface with credit card payment service contracts.