Skip to content

fintech-sdk/checkout_client

Repository files navigation

CheckoutClient

Production-grade Elixir client for the Checkout.com API.

Covers a wide range of APIs including Payments, Flow, Disputes, Instruments, Customers, Tokens, Workflows, Transfers, Balances, Forex, Card Issuing, Platforms, Reports, Financial Actions, Network Tokens, Identity Verification, Apple Pay, Google Pay, Forward, Compliance, and Agentic Commerce.


Features

  • OAuth 2.0 authentication with automatic token refresh
  • Idempotent request handling
  • Exponential backoff retry strategy
  • HTTP/2 support via Finch
  • AWS PrivateLink support
  • Mutual TLS (mTLS)
  • Telemetry instrumentation
  • Mox-compatible behaviours for testing

Installation

Add checkout_client to your list of dependencies in mix.exs:

def deps do
  [
    {:checkout_client, "~> 1.0"}
  ]
end

Configuration

Configure the client in config/runtime.exs:

config :checkout_client,
  prefix:            System.fetch_env!("CHECKOUT_PREFIX"),
  access_key_id:     System.get_env("CHECKOUT_ACCESS_KEY_ID"),
  access_key_secret: System.get_env("CHECKOUT_ACCESS_KEY_SECRET"),
  environment:       :sandbox

Quick Start

Make your first payment:

{:ok, payment} =
  CheckoutClient.Payments.request(%{
    amount:    1000,
    currency:  "GBP",
    source:    %{type: "token", token: "tok_..."},
    reference: "my-first-payment"
  })

Project Info


Development

Install dependencies and compile:

mix setup

Run checks:

mix check

Run tests:

mix test

Run full test suite (including integration):

mix test.all

License

MIT License


Links

Packages

 
 
 

Contributors

Languages