MambuPy

MambuPy is a Python library designed to interact with the Mambu API, a leading cloud financial services platform. This library facilitates integration with Mambu, allowing developers to automate operations, manage clients, groups, loans, and transactions efficiently through an intuitive Pythonic interface.

Note

MambuPy is distributed under the GNU GPL v3 license, it is free software and your collaboration is welcome: https://gitlab.com/jstitch/MambuPy

Important

The basic conceptual idea behind MambuPy is to be a library that provides an abstraction layer over Mambu’s REST API, simplifying common tasks such as managing clients, groups, loans, among others.

It is designed to be easy to use while maintaining the flexibility needed for complex financial operations, abstracting low-level details such as request handling, authentication, pagination, data serialization/deserialization, timezones, retries on failures, idempotency for retrying write operations, etc. The idea here is: you want to interact with a Mambu Client or Group, not with the technical details behind the implementation of that interaction.

And even other not-so-low-level details, like the fact that Mambu handles encodedKeys to identify entities - why do you need to know that the assignedBranchKey field corresponds to the encodedKey of the Branch that a Group is assigned to when all you really need is to know and interact with that Branch? Or the “detail” that accessing custom fields must be done through the aspects with which Mambu implements them: using field sets and groups json objets. Do you really want to reach your “Nationality” field via client._client_details[“Nationality”]? If Nationality is a client property, why not simply reach it via client.Nationality?

Important References

Here are some official resources and relevant documentation:

Note

Some code conventions break certain 100% Pythonic code best practices. For example, camelCase is used instead of snake_case in entity properties. This is a design decision of the library dictated by how Mambu’s REST API, and Mambu itself, deliver their information. Mambu is built in Java and its endpoints handle nomenclature with camelCase. The decision to use camelCase in some parts of MambuPy goes hand in hand with maintaining certain compatibility but above all ensuring clean code reading in Python compared to the JSON that Mambu’s API delivers. It’s easier to understand that loanAmount of a credit account is the loanAmount from the response that obtains said account, rather than inferring that Mambu delivers a loanAmount but we decided to call it loan_amount.

Table of Contents

Indices and tables