An open API service indexing awesome lists of open source software.

https://github.com/maisak/monobank-api

This library is a wrapper on Monobank open API
https://github.com/maisak/monobank-api

api monobank wrapper

Last synced: 6 months ago
JSON representation

This library is a wrapper on Monobank open API

Awesome Lists containing this project

README

          

# [Monobank](https://www.monobank.ua) API library
[![NuGet version (Monobank.API.Core)](https://img.shields.io/nuget/v/Monobank.API.Core.svg?style=flat-square)](https://www.nuget.org/packages/Monobank.API.Core/)
[![Build and test](https://github.com/maisak/monobank-api/actions/workflows/build-and-test.yaml/badge.svg)](https://github.com/maisak/monobank-api/actions/workflows/build-and-test.yaml)
[![Package and publish](https://github.com/maisak/monobank-api/actions/workflows/package.yaml/badge.svg)](https://github.com/maisak/monobank-api/actions/workflows/package.yaml)

This library is a wrapper on Monobank open API. To use it you will need to get a personal token at https://api.monobank.ua/.
## How to use:
### Public API:
Available without a personal token. Just intitialize MonoClient with it's default constructor.
```
static async Task Main(string[] args)
{
var mono = new MonoClient();
var currencies = await mono.Currency.GetCurrencies();
}
```
### Client API:
Available only with a personal token.
#### User information

```
static async Task Main(string[] args)
{
var mono = new MonoClient("YOUR_TOKEN");
var userInfo = await mono.Client.GetClientInfo();
}
```
#### Statements
```
static async Task Main(string[] args)
{
var mono = new MonoClient("YOUR_TOKEN");
var statements = await mono.Client.GetStatements(from: new DateTime(2019, 6, 1),
to: new DateTime(2019, 6, 30));
}
```
#### Webhook
Allows to be notified when there are transactions on user account.

According to [documentation](https://api.monobank.ua/docs), you need a POST endpoint to listen to webhook and the same GET endpoint for backing services to check availability. If you set webhook at ```https:\\example.com\webhook\test``` url - you will actually need two endpoints:
**GET https:\\example.com\webhook\test**
**POST https:\\example.com\webhook\test**

```
static async Task Main(string[] args)
{
var mono = new MonoClient("YOUR_TOKEN");
bool success = await mono.Client.SetWebhook("https:\\example.com\webhook\test");
}
```
To check webhook url - query user information and refer to ```webHookUrl``` property:
```
static async Task Main(string[] args)
{
var mono = new MonoClient("YOUR_TOKEN");
var userInfo = await mono.Client.GetClientInfo();
var webHookUrl = userInfo.WebHookUrl;
}
```
## How to test:
In a test project create `appsettings.test.json` file. Set its `Copy to output directory` property to `Copy if newer`. Fill in the `ApiKey` field and enjoy safe testing :)
```
{
"ApiKey": ""
}
```
Note: `appsettings.test.json` added to `.gitignore`, so it won't be commited and pushed to the repository.