CL-Creditcard & CL-Authorize-net: Processing credit card payments with common lisp

I just pushed cl-creditcard to my github account. CL-Creditcard( and sub-library cl-authorize-net) is a library that we use to process payments with Authorize.Net. We have a large internal application that tracks and manages all our business and customer logic including billing and invoicing. (Invoices are generated using cl-typesetting). This application charges credit card payments through this cl-authorize-net.

It has been stable and charging cards for years and I just got around to releasing it. Soon it will also support ACH (echeck) transactions and we will be moving to lisp-unit from lift.

As with all payment processing, test very well before putting into production :)

2 thoughts on “CL-Creditcard & CL-Authorize-net: Processing credit card payments with common lisp

  1. Cool! I recently freed https://github.com/vsedach/cl-moneris which is an API to the Moneris payment processing service. Also in production for a few years (invoices generated using cl-pdf; Marc Battyani is awesome). Would you be interested if I made cl-moneris a sub-library of cl-creditcard? It would be nice to have a de-facto standard Common Lisp payment processing library.

  2. The original idea behind cl-creditcard was that it looked like we would be implementing a couple different payment processors starting with authorize, and would like to have them share API. However, we have had relatively little reason to switch and so haven’t ended up implementing any more (other than an incomplete / unused monetra connector). I think it would be nice to have a unified payment processing library, but it would be work to make these libraries share an api and neither of us are familiar with the others library. If one of us gets motivated to combine the two systems, I think it would be great, but my suspicion is that neither of us have a real need, and there is always way more fun code to write than payment processing :/

Leave a Reply

Your email address will not be published. Required fields are marked *