alma-client 3.0.2
Python API client for the Alma Installments API
License: MIT

# alma-python-client

[![Travis Build Status](https://travis-ci.org/alma/alma-python-client.svg?branch=main)](https://travis-ci.org/alma/alma-python-client) [![PyPI](https://img.shields.io/pypi/v/alma-client.svg)](https://pypi.python.org/pypi/alma-client)

Python API Client for the Alma API.

Support Python >= 3.8

## Install

```bash
pip install alma-client
```

## Demo

We support both a sync and async client.

### Synchronous client


```python
from alma_client import Client

alma_client = Client.with_api_key("sk_test..")
payments = alma_client.payments.fetch_all()

for p in payments:
    print(f"{p.id}: Paiement en {len(p.payment_plan)} fois")


payment_data = {
    "payment": {
        "purchase_amount": 10000,
        "return_url": "http://merchant.com/payment-success",
        "shipping_address": {
            "first_name": "Martin",
            "last_name": "Dupond",
            "line1": "1 rue de Rivoli",
            "postal_code": "75004",
            "city": "Paris"
        }
    }
}

eligibility = alma_client.payments.eligibility(payment_data)
if eligibility.eligible:
    payment = alma_client.payments.create(payment_data)

print(payment.raw_data)
```


### Asynchronous client


```python
from alma_client import AsyncClient

alma_client = AsyncClient.with_api_key("sk_test..")
payments = await alma_client.payments.fetch_all()

for p in payments:
    print(f"{p.id}: Paiement en {len(p.payment_plan)} fois")


payment_data = {
    "payment": {
        "purchase_amount": 10000,
        "return_url": "http://merchant.com/payment-success",
        "shipping_address": {
            "first_name": "Martin",
            "last_name": "Dupond",
            "line1": "1 rue de Rivoli",
            "postal_code": "75004",
            "city": "Paris"
        }
    }
}

eligibility = await alma_client.payments.eligibility(payment_data)
if eligibility.eligible:
    payment = await alma_client.payments.create(payment_data)

print(payment.raw_data)
```


# Changelog

3.0.2 (2022-12-07)
------------------

- Fix dump for null-body requests.


3.0.1 (2022-12-05)
------------------

- Configure credentials later in the flow.


3.0.0 (2022-06-29)
------------------

**Breaking change**

- Move the code from the `alma` namespace into the `alma_client` namespace.
- Remove support for Python 3.6 and Python 3.7


2.0.2 (2022-06-22)
------------------

- Fix `potential-fraud` method URLs (#27)


2.0.1 (2022-06-17)
------------------

- Adds `include_child_accounts` and `custom_fields` params to the DataExport creation endpoint


2.0.0 (2021-08-12)
------------------

**Breaking changes**

- Move from requests to HTTPX
- Handle both sync and async python clients
- Remove support for Python 3.5
- Add support for Python 3.9


1.2.0 (2020-09-01)
------------------

- Add support for different authentication methods
- Add Black & isort checks on pull requests


1.1.0 (2020-03-25)
------------------

- Add support for Python 3.5+


1.0.1 (2020-03-24)
------------------

- Automatically detects the API mode from the api_key.


1.0.0 (2020-03-24)
------------------

- Create a Python client for Alma
- Handle Order entity for Payment
- Handle the refund endpoint
- Handle pagination for orders
- Handle the send-sms API for payments.