git.iko.soy/typeable/connexpay
on master help sign in
git clone ssh://git.iko.soy/typeable/connexpay
#+TITLE: Connexpay API client for Haskell
#+AUTHOR: Nick <nick@typeable.io>

* What

ConnexPay is a credit card payment processing provider.

* How to use this library

Here is a short example:

#+begin_src
let logf msg = Text.putStrLn ("Connexpay log: " <> msg)
    cc = CreditCard ...
    amount = Money @USD 5.00
    vendor = Just "Best vendor out there"
httpmgr <- tlsManager
pay <- initConnexpay logf httpmgr deviceGuid cpHost True login password

runConnexpay pay $ do
  sale <- authorisePayment cc amount vendor
  capturePayment sale.paymentGuid
#+end_src

For more information, see Haddock docs.

NOTE:
'PaymentError' type isn't used yet, but it will after more testing.
Connexpay test environment doesn't seem to report errors adequately.

* The tool

This repo provides a command line tool to quickly test the API. You can run it with ~stack run~.
Examples:

  - ~stack run -- -c ./config.yaml auth CARDNUMBER "NAME" MMYY CVV SUM~
  - ~stack run -- -c ./config.yaml capture SALEGUID~
  - ~stack run -- -c ./config.yaml void-auth AUTHONLYGUID~
  - ~stack run -- -c ./config.yaml void-sale SALEGUID~
  - ~stack run -- -c ./config.yaml void-sale SALEGUID SUM~
  - ~stack run -- -c ./config.yaml cancel SALEGUID~
  - ~stack run -- -c ./config.yaml return SALEGUID~
  - ~stack run -- -c ./config.yaml return SALEGUID SUM~

Configuration file must include the values provided to you by Connexpay:

#+begin_src
login: <login>
password: <password>
device_guid: <device guid>
host: <hostname>

use_tls: true # Whether or not to use TLS connection
proxy_host: 127.0.0.1 # Optional, if you want to proxy your requests for debugging purposes
proxy_port: 8080
#+end_src

* Links

Credit card sales API: https://docs.connexpay.com/reference/credit-card-sales