Add auto generator

This commit is contained in:
Illya Marchenko 2024-05-12 12:36:47 +03:00
parent 99b41780c6
commit 1f6dfa1b15
Signed by: stuzer05
GPG Key ID: A6ABAAA9268F9F4F
43 changed files with 1203 additions and 5901 deletions

11
.gitignore vendored

@ -23,4 +23,13 @@ _testmain.go
*.test
*.prof
.idea
# Editor and IDE files
/.idea/
# Swagger Codegen files
/.swagger-codegen-ignore
/.swagger-codegen/VERSION
/.travis.yml
# Swagger schema files
/openapi.json.yaml

@ -1,23 +0,0 @@
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.
# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md

@ -1,29 +0,0 @@
.gitignore
.openapi-generator-ignore
.travis.yml
README.md
api/openapi.yaml
api_.go
client.go
configuration.go
docs/CurrencyInfoInner.md
docs/DefaultApi.md
docs/Error.md
docs/SetWebHook.md
docs/StatementItemsInner.md
docs/UserInfo.md
docs/UserInfoAccountsInner.md
docs/UserInfoJarsInner.md
git_push.sh
go.mod
go.sum
model_currency_info_inner.go
model_error.go
model_set_web_hook.go
model_statement_items_inner.go
model_user_info.go
model_user_info_accounts_inner.go
model_user_info_jars_inner.go
response.go
test/api__test.go
utils.go

@ -1 +0,0 @@
7.4.0

@ -1,8 +0,0 @@
language: go
install:
- go get -d -v .
script:
- go build -v ./

112
README.md

@ -1,85 +1,19 @@
[![Go Reference](https://pkg.go.dev/badge/gitea.stuzer.link/stuzer05/go-monobank.svg)](https://pkg.go.dev/gitea.stuzer.link/stuzer05/go-monobank)
# Go API client for swagger
# Go API client for monobank
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання.
Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw).
API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту.
Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API.
Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки.
У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
## Overview
This API client was generated by the [OpenAPI Generator](https://monobank-generator.tech) project. By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.
This API client was generated by the [swagger-codegen](https://github.com/swagger-api/swagger-codegen) project. By using the [swagger-spec](https://github.com/swagger-api/swagger-spec) from a remote server, you can easily generate an API client.
- API version: v2303
- Package version: 1.0.0
- Generator version: 7.4.0
- Build package: org.monobanktools.codegen.languages.GoClientCodegen
- Build package: io.swagger.codegen.v3.generators.go.GoClientCodegen
## Installation
Install the following dependencies:
```sh
go get github.com/stretchr/testify/assert
go get golang.org/x/net/context
```
Put the package under your project folder and add the following in import:
```go
import monobank "gitea.stuzer.link/stuzer05/go-monobank"
```
To use a proxy, set the environment variable `HTTP_PROXY`:
```go
os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")
```
## Configuration of Server URL
Default configuration comes with `Servers` field that contains server objects as defined in the OpenAPI specification.
### Select Server Configuration
For using other server than the one defined on index 0 set context value `monobank.ContextServerIndex` of type `int`.
```go
ctx := context.WithValue(context.Background(), monobank.ContextServerIndex, 1)
```
### Templated Server URL
Templated server URL is formatted using default variables from configuration or from context value `monobank.ContextServerVariables` of type `map[string]string`.
```go
ctx := context.WithValue(context.Background(), monobank.ContextServerVariables, map[string]string{
"basePath": "v2",
})
```
Note, enum values are always validated and all unused variables are silently ignored.
### URLs Configuration per Operation
Each operation can use different server URL defined using `OperationServers` map in the `Configuration`.
An operation is uniquely identified by `"{classname}Service.{nickname}"` string.
Similar rules for overriding default operation server index and variables applies by using `monobank.ContextOperationServerIndices` and `monobank.ContextOperationServerVariables` context maps.
```go
ctx := context.WithValue(context.Background(), monobank.ContextOperationServerIndices, map[string]int{
"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), monobank.ContextOperationServerVariables, map[string]map[string]string{
"{classname}Service.{nickname}": {
"port": "8443",
},
})
```golang
import "./swagger"
```
## Documentation for API Endpoints
@ -88,45 +22,25 @@ All URIs are relative to *https://api.monobank.ua*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*DefaultApi* | [**BankCurrencyGet**](docs/DefaultApi.md#bankcurrencyget) | **Get** /bank/currency | Отримання курсів валют
*DefaultApi* | [**PersonalClientInfoGet**](docs/DefaultApi.md#personalclientinfoget) | **Get** /personal/client-info | Інформація про клієнта
*DefaultApi* | [**PersonalStatementAccountFromToGet**](docs/DefaultApi.md#personalstatementaccountfromtoget) | **Get** /personal/statement/{account}/{from}/{to} | Виписка
*DefaultApi* | [**PersonalWebhookPost**](docs/DefaultApi.md#personalwebhookpost) | **Post** /personal/webhook | Встановлення WebHook
*_Api* | [**BankCurrencyGet**](docs/_Api.md#bankcurrencyget) | **Get** /bank/currency | Отримання курсів валют
*_Api* | [**PersonalClientInfoGet**](docs/_Api.md#personalclientinfoget) | **Get** /personal/client-info | Інформація про клієнта
*_Api* | [**PersonalStatementAccountFromToGet**](docs/_Api.md#personalstatementaccountfromtoget) | **Get** /personal/statement/{account}/{from}/{to} | Виписка
*_Api* | [**PersonalWebhookPost**](docs/_Api.md#personalwebhookpost) | **Post** /personal/webhook | Встановлення WebHook
## Documentation For Models
- [CurrencyInfoInner](docs/CurrencyInfoInner.md)
- [Error](docs/Error.md)
- [ModelError](docs/ModelError.md)
- [SetWebHook](docs/SetWebHook.md)
- [StatementItemsInner](docs/StatementItemsInner.md)
- [UserInfo](docs/UserInfo.md)
- [UserInfoAccountsInner](docs/UserInfoAccountsInner.md)
- [UserInfoJarsInner](docs/UserInfoJarsInner.md)
- [UserInfoAccounts](docs/UserInfoAccounts.md)
- [UserInfoJars](docs/UserInfoJars.md)
## Documentation For Authorization
Endpoints do not require authorization.
## Documentation for Utility Methods
Due to the fact that model structure members are all pointers, this package contains
a number of utility functions to easily obtain pointers to values of basic types.
Each of these functions takes a value of the given basic type and returns a pointer to it:
* `PtrBool`
* `PtrInt`
* `PtrInt32`
* `PtrInt64`
* `PtrFloat`
* `PtrFloat32`
* `PtrFloat64`
* `PtrString`
* `PtrTime`
## Author

@ -1,5 +1,6 @@
openapi: 3.0.3
info:
title: Monobank open API
description: |-
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання.
@ -10,7 +11,6 @@ info:
Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки.
У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
title: Monobank open API
version: v2303
x-logo:
url: logo.png
@ -18,65 +18,68 @@ info:
servers:
- url: https://api.monobank.ua
tags:
- description: Загальна інформація що надається без авторизації.
name: Публічні дані
- description: "Інформація, що надається тільки за наявстю token-а доступу, який к\
- name: Публічні дані
description: Загальна інформація що надається без авторизації.
- name: Клієнтські персональні дані
description: "Інформація, що надається тільки за наявстю token-а доступу, який к\
лієнт може отримати в особистому кабінеті https://api.monobank.ua/"
name: Клієнтські персональні дані
paths:
/bank/currency:
get:
tags:
- Публічні дані
summary: Отримання курсів валют
description: Отримати базовий перелік курсів валют monobank. Інформація кешується
та оновлюється не частіше 1 разу на 5 хвилин.
responses:
"200":
description: Інформація про курс валют
content:
application/json:
schema:
$ref: '#/components/schemas/CurrencyInfo'
description: Інформація про курс валют
summary: Отримання курсів валют
tags:
- Публічні дані
/personal/client-info:
get:
tags:
- Клієнтські персональні дані
summary: Інформація про клієнта
description: Отримання інформації про клієнта та переліку його рахунків і банок.
Обмеження на використання функції не частіше ніж 1 раз у 60 секунд.
parameters:
- description: Token для особистого доступу до API
example: u3AulkpZFI1lIuGsik6vuPsVWqN7GoWs6o_MO2sdf301
explode: false
- name: X-Token
in: header
name: X-Token
description: Token для особистого доступу до API
required: true
style: simple
explode: false
schema:
type: string
style: simple
example: u3AulkpZFI1lIuGsik6vuPsVWqN7GoWs6o_MO2sdf301
responses:
"200":
description: Statement list
content:
application/json:
schema:
$ref: '#/components/schemas/UserInfo'
description: Statement list
summary: Інформація про клієнта
tags:
- Клієнтські персональні дані
/personal/webhook:
post:
tags:
- Клієнтські персональні дані
summary: Встановлення WebHook
description: |-
Встановлення URL користувача:
- Для підтвердження коректності наданої адреси, на неї надсилається GET-запит. Сервер має відповісти строго HTTP статус-кодом 200, і ніяким іншим. Якщо валідацію пройдено, на задану адресу починають надсилатися POST запити з подіями.
- Події надсилаються у наступному вигляді: POST запит на задану адресу у форматі `{type:"StatementItem", data:{account:"...", statementItem:{#StatementItem}}}`. Якщо сервіс користувача не відповість протягом 5с на команду, сервіс повторить спробу ще через 60 та 600 секунд. Якщо на третю спробу відповідь отримана не буде, функція буде вимкнута. Відповідь сервера має строго містити HTTP статус-код 200.
parameters:
- description: Token для особистого доступу до API
explode: false
- name: X-Token
in: header
name: X-Token
description: Token для особистого доступу до API
required: true
style: simple
explode: false
schema:
type: string
style: simple
requestBody:
content:
application/json:
@ -86,11 +89,11 @@ paths:
responses:
"200":
description: ok
summary: Встановлення WebHook
tags:
- Клієнтські персональні дані
/personal/statement/{account}/{from}/{to}:
get:
tags:
- Клієнтські персональні дані
summary: Виписка
description: |-
Отримання виписки за час від {from} до {to} часу в секундах в форматі Unix time. Максимальний час, за який можливо отримати виписку — 31 доба + 1 година (2682000 секунд).
@ -98,65 +101,88 @@ paths:
Повертає 500 транзакцій з кінця, тобто від часу to до from. Якщо кількість транзакцій = 500, потрібно зробити ще один запит, зменшивши час to до часу останнього платежу, з відповіді. Якщо знову кількість транзакцій = 500, то виконуєте запити до того часу, поки кількість транзакцій не буде < 500. Відповідно, якщо кількість транзакцій < 500, то вже отримано всі платежі за вказаний період.
parameters:
- description: Token для особистого доступу до API
explode: false
- name: X-Token
in: header
name: X-Token
description: Token для особистого доступу до API
required: true
style: simple
explode: false
schema:
type: string
style: simple
- description: Ідентифікатор рахунку або банки з переліків Statement list або
- name: account
in: path
description: Ідентифікатор рахунку або банки з переліків Statement list або
0 - дефолтний рахунок.
explode: false
in: path
name: account
required: true
style: simple
explode: false
schema:
type: string
- name: from
in: path
description: Початок часу виписки.
required: true
style: simple
- description: Початок часу виписки.
explode: false
schema:
type: string
example: "1546304461"
explode: false
- name: to
in: path
name: from
required: true
schema:
type: string
style: simple
- description: "Останній час виписки (якщо відсутній, буде використовуватись\
description: "Останній час виписки (якщо відсутній, буде використовуватись\
\ поточний час)."
example: "1546306461"
explode: false
in: path
name: to
required: false
style: simple
explode: false
schema:
type: string
style: simple
example: "1546306461"
responses:
"200":
description: Statement list
content:
application/json:
schema:
$ref: '#/components/schemas/StatementItems'
description: Statement list
summary: Виписка
tags:
- Клієнтські персональні дані
components:
schemas:
SetWebHook:
description: "URL для надсиляння подій по зміні балансу рахунків фізичних ос\
іб, ФОП та банок"
example:
webHookUrl: https://example.com/some_random_data_for_security
type: object
properties:
webHookUrl:
example: https://example.com/some_random_data_for_security
type: string
type: object
example: https://example.com/some_random_data_for_security
description: "URL для надсиляння подій по зміні балансу рахунків фізичних ос\
іб, ФОП та банок"
UserInfo:
type: object
properties:
clientId:
type: string
description: Ідентифікатор клієнта (збігається з id для send.monobank.ua)
example: 3MSaMMtczs
name:
type: string
description: Ім'я клієнта
example: Мазепа Іван
webHookUrl:
type: string
description: URL для надсиляння подій по зміні балансу рахунку
example: https://example.com/some_random_data_for_security
permissions:
type: string
description: "Перелік прав, які які надає сервіс (1 літера на 1 permission)."
example: psfj
accounts:
type: array
description: Перелік доступних рахунків
items:
$ref: '#/components/schemas/UserInfo_accounts'
jars:
type: array
description: Перелік банок
items:
$ref: '#/components/schemas/UserInfo_jars'
description: Опис клієнта та його рахунків і банок.
example:
clientId: 3MSaMMtczs
@ -199,54 +225,84 @@ components:
id: kKGVoZuHWzqVoZuH
type: black
currencyCode: 980
properties:
clientId:
description: Ідентифікатор клієнта (збігається з id для send.monobank.ua)
example: 3MSaMMtczs
type: string
name:
description: Ім'я клієнта
example: Мазепа Іван
type: string
webHookUrl:
description: URL для надсиляння подій по зміні балансу рахунку
example: https://example.com/some_random_data_for_security
type: string
permissions:
description: "Перелік прав, які які надає сервіс (1 літера на 1 permission)."
example: psfj
type: string
accounts:
description: Перелік доступних рахунків
items:
$ref: '#/components/schemas/UserInfo_accounts_inner'
type: array
jars:
description: Перелік банок
items:
$ref: '#/components/schemas/UserInfo_jars_inner'
type: array
type: object
StatementItems:
type: array
description: Перелік транзакцій за вказанний час
items:
$ref: '#/components/schemas/StatementItems_inner'
type: array
x-schema-name: StatementItems
CurrencyInfo:
type: array
description: "Перелік курсів. Кожна валютна пара може мати одне і більше пол\
ів з rateSell, rateBuy, rateCross."
items:
$ref: '#/components/schemas/CurrencyInfo_inner'
type: array
x-schema-name: CurrencyInfo
Error:
type: object
properties:
errorDescription:
type: string
description: "Текст помилки для кінцевого користувача, для автоматичного\
\ оброблення потрібно аналізувати HTTP код відповіді (200, 404, 429 та\
\ інші)"
type: string
UserInfo_accounts:
type: object
UserInfo_accounts_inner:
properties:
id:
type: string
description: Ідентифікатор рахунку
example: kKGVoZuHWzqVoZuH
sendId:
type: string
description: "Ідентифікатор для сервісу https://send.monobank.ua/{sendId}"
example: uHWzqVoZuH
balance:
type: number
description: "Баланс рахунку в мінімальних одиницях валюти (копійках, це\
нтах)"
format: int64
example: 10000000
creditLimit:
type: number
description: Кредитний ліміт
format: int64
example: 10000000
type:
type: string
description: Тип рахунку
example: black
enum:
- black
- white
- platinum
- iron
- fop
- yellow
- eAid
currencyCode:
type: number
description: Код валюти рахунку відповідно ISO 4217
format: int32
example: 980
cashbackType:
type: string
description: Тип кешбеку який нараховується на рахунок
example: UAH
enum:
- None
- UAH
- Miles
maskedPan:
type: array
description: Перелік замаскованних номерів карт (більше одного може бути
у преміальних карт)
example:
- 537541******1234
iban:
type: string
description: IBAN рахунку
example: UA733220010000026201234567890
example:
sendId: uHWzqVoZuH
balance: 10000000
@ -258,63 +314,42 @@ components:
id: kKGVoZuHWzqVoZuH
type: black
currencyCode: 980
UserInfo_jars:
type: object
properties:
id:
description: Ідентифікатор рахунку
example: kKGVoZuHWzqVoZuH
type: string
description: Ідентифікатор банки
example: kKGVoZuHWzqVoZuH
sendId:
type: string
description: "Ідентифікатор для сервісу https://send.monobank.ua/{sendId}"
example: uHWzqVoZuH
title:
type: string
balance:
description: "Баланс рахунку в мінімальних одиницях валюти (копійках, це\
нтах)"
example: 10000000
format: int64
type: number
creditLimit:
description: Кредитний ліміт
example: 10000000
format: int64
type: number
type:
description: Тип рахунку
enum:
- black
- white
- platinum
- iron
- fop
- yellow
- eAid
example: black
description: Назва банки
example: На тепловізор
description:
type: string
description: Опис банки
example: На тепловізор
currencyCode:
description: Код валюти рахунку відповідно ISO 4217
example: 980
format: int32
type: number
cashbackType:
description: Тип кешбеку який нараховується на рахунок
enum:
- None
- UAH
- Miles
example: UAH
type: string
maskedPan:
description: Перелік замаскованних номерів карт (більше одного може бути
у преміальних карт)
example:
- 537541******1234
type: array
iban:
description: IBAN рахунку
example: UA733220010000026201234567890
type: string
type: object
UserInfo_jars_inner:
description: Код валюти банки відповідно ISO 4217
format: int32
example: 980
balance:
type: number
description: "Баланс банки в мінімальних одиницях валюти (копійках, цент\
ах)"
format: int64
example: 1000000
goal:
type: number
description: "Цільова сума для накопичення в банці в мінімальних одиниця\
х валюти (копійках, центах)"
format: int64
example: 10000000
example:
sendId: uHWzqVoZuH
goal: 10000000
@ -323,42 +358,101 @@ components:
id: kKGVoZuHWzqVoZuH
title: На тепловізор
currencyCode: 980
StatementItems_inner:
type: object
properties:
id:
description: Ідентифікатор банки
example: kKGVoZuHWzqVoZuH
type: string
sendId:
description: "Ідентифікатор для сервісу https://send.monobank.ua/{sendId}"
example: uHWzqVoZuH
type: string
title:
description: Назва банки
example: На тепловізор
type: string
description: Унікальний id транзакції
example: ZuHWzqkKGVo=
time:
type: number
description: Час транзакції в секундах в форматі Unix time
format: int64
example: 1554466347
description:
description: Опис банки
example: На тепловізор
type: string
currencyCode:
description: Код валюти банки відповідно ISO 4217
example: 980
description: Опис транзакцій
example: Покупка щастя
mcc:
type: number
description: "Код типу транзакції (Merchant Category Code), відповідно ISO\
\ 18245"
format: int32
example: 7997
originalMcc:
type: number
description: "Оригінальний код типу транзакції (Merchant Category Code),\
\ відповідно ISO 18245"
format: int32
example: 7997
hold:
type: boolean
description: "Статус блокування суми (детальніше у [wiki](https://en.wikipedia.org/wiki/Authorization_hold))"
example: false
amount:
type: number
description: "Сума у валюті рахунку в мінімальних одиницях валюти (копій\
ках, центах)"
format: int64
example: -95000
operationAmount:
type: number
description: "Сума у валюті транзакції в мінімальних одиницях валюти (ко\
пійках, центах)"
format: int64
example: -95000
currencyCode:
type: number
description: Код валюти рахунку відповідно ISO 4217
format: int32
example: 980
commissionRate:
type: number
description: "Розмір комісії в мінімальних одиницях валюти (копійках, це\
нтах)"
format: int64
example: 0
cashbackAmount:
type: number
description: "Розмір кешбеку в мінімальних одиницях валюти (копійках, це\
нтах)"
format: int64
example: 19000
balance:
description: "Баланс банки в мінімальних одиницях валюти (копійках, цент\
ах)"
example: 1000000
format: int64
type: number
goal:
description: "Цільова сума для накопичення в банці в мінімальних одиниця\
х валюти (копійках, центах)"
example: 10000000
description: "Баланс рахунку в мінімальних одиницях валюти (копійках, це\
нтах)"
format: int64
type: number
type: object
StatementItems_inner:
example: 10050000
comment:
type: string
description: "Коментар до переказу, уведений користувачем. Якщо не вказа\
ний, поле буде відсутнім"
example: За каву
receiptId:
type: string
description: Номер квитанції для check.gov.ua. Поле може бути відсутнім
example: XXXX-XXXX-XXXX-XXXX
invoiceId:
type: string
description: "Номер квитанції ФОПа, приходить у випадку якщо це операція\
\ із зарахуванням коштів"
example: 2103.в.27
counterEdrpou:
type: string
description: "ЄДРПОУ контрагента, присутній лише для елементів виписки р\
ахунків ФОП"
example: "3096889974"
counterIban:
type: string
description: "IBAN контрагента, присутній лише для елементів виписки рах\
унків ФОП"
example: UA898999980000355639201001404
counterName:
type: string
description: Найменування контрагента
example: ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ «ВОРОНА»
example:
amount: -95000
commissionRate: 0
@ -378,101 +472,36 @@ components:
time: 1554466347
currencyCode: 980
receiptId: XXXX-XXXX-XXXX-XXXX
properties:
id:
description: Унікальний id транзакції
example: ZuHWzqkKGVo=
type: string
time:
description: Час транзакції в секундах в форматі Unix time
example: 1554466347
format: int64
type: number
description:
description: Опис транзакцій
example: Покупка щастя
type: string
mcc:
description: "Код типу транзакції (Merchant Category Code), відповідно ISO\
\ 18245"
example: 7997
format: int32
type: number
originalMcc:
description: "Оригінальний код типу транзакції (Merchant Category Code),\
\ відповідно ISO 18245"
example: 7997
format: int32
type: number
hold:
description: "Статус блокування суми (детальніше у [wiki](https://en.wikipedia.org/wiki/Authorization_hold))"
example: false
type: boolean
amount:
description: "Сума у валюті рахунку в мінімальних одиницях валюти (копій\
ках, центах)"
example: -95000
format: int64
type: number
operationAmount:
description: "Сума у валюті транзакції в мінімальних одиницях валюти (ко\
пійках, центах)"
example: -95000
format: int64
type: number
currencyCode:
description: Код валюти рахунку відповідно ISO 4217
example: 980
format: int32
type: number
commissionRate:
description: "Розмір комісії в мінімальних одиницях валюти (копійках, це\
нтах)"
example: 0
format: int64
type: number
cashbackAmount:
description: "Розмір кешбеку в мінімальних одиницях валюти (копійках, це\
нтах)"
example: 19000
format: int64
type: number
balance:
description: "Баланс рахунку в мінімальних одиницях валюти (копійках, це\
нтах)"
example: 10050000
format: int64
type: number
comment:
description: "Коментар до переказу, уведений користувачем. Якщо не вказа\
ний, поле буде відсутнім"
example: За каву
type: string
receiptId:
description: Номер квитанції для check.gov.ua. Поле може бути відсутнім
example: XXXX-XXXX-XXXX-XXXX
type: string
invoiceId:
description: "Номер квитанції ФОПа, приходить у випадку якщо це операція\
\ із зарахуванням коштів"
example: 2103.в.27
type: string
counterEdrpou:
description: "ЄДРПОУ контрагента, присутній лише для елементів виписки р\
ахунків ФОП"
example: "3096889974"
type: string
counterIban:
description: "IBAN контрагента, присутній лише для елементів виписки рах\
унків ФОП"
example: UA898999980000355639201001404
type: string
counterName:
description: Найменування контрагента
example: ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ «ВОРОНА»
type: string
type: object
CurrencyInfo_inner:
type: object
properties:
currencyCodeA:
type: number
description: Код валюти рахунку відповідно ISO 4217
format: int32
example: 840
currencyCodeB:
type: number
description: Код валюти рахунку відповідно ISO 4217
format: int32
example: 980
date:
type: number
description: Час курсу в секундах в форматі Unix time
format: int64
example: 1552392228
rateSell:
type: number
format: float
example: 27
rateBuy:
type: number
format: float
example: 27.2
rateCross:
type: number
format: float
example: 27.1
example:
date: 1552392228
currencyCodeA: 840
@ -480,32 +509,3 @@ components:
rateBuy: 27.2
rateSell: 27
rateCross: 27.1
properties:
currencyCodeA:
description: Код валюти рахунку відповідно ISO 4217
example: 840
format: int32
type: number
currencyCodeB:
description: Код валюти рахунку відповідно ISO 4217
example: 980
format: int32
type: number
date:
description: Час курсу в секундах в форматі Unix time
example: 1552392228
format: int64
type: number
rateSell:
example: 27
format: float
type: number
rateBuy:
example: 27.2
format: float
type: number
rateCross:
example: 27.1
format: float
type: number
type: object

471
api_.go

@ -1,471 +0,0 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"bytes"
"context"
"io"
"net/http"
"net/url"
"strings"
)
// DefaultApiService DefaultApi service
type DefaultApiService service
type ApiBankCurrencyGetRequest struct {
ctx context.Context
ApiService *DefaultApiService
}
func (r ApiBankCurrencyGetRequest) Execute() ([]CurrencyInfoInner, *http.Response, error) {
return r.ApiService.BankCurrencyGetExecute(r)
}
/*
BankCurrencyGet Отримання курсів валют
Отримати базовий перелік курсів валют monobank. Інформація кешується та оновлюється не частіше 1 разу на 5 хвилин.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiBankCurrencyGetRequest
*/
func (a *DefaultApiService) BankCurrencyGet(ctx context.Context) ApiBankCurrencyGetRequest {
return ApiBankCurrencyGetRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
// @return []CurrencyInfoInner
func (a *DefaultApiService) BankCurrencyGetExecute(r ApiBankCurrencyGetRequest) ([]CurrencyInfoInner, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue []CurrencyInfoInner
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultApiService.BankCurrencyGet")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/bank/currency"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}
type ApiPersonalClientInfoGetRequest struct {
ctx context.Context
ApiService *DefaultApiService
xToken *string
}
// Token для особистого доступу до API
func (r ApiPersonalClientInfoGetRequest) XToken(xToken string) ApiPersonalClientInfoGetRequest {
r.xToken = &xToken
return r
}
func (r ApiPersonalClientInfoGetRequest) Execute() (*UserInfo, *http.Response, error) {
return r.ApiService.PersonalClientInfoGetExecute(r)
}
/*
PersonalClientInfoGet Інформація про клієнта
Отримання інформації про клієнта та переліку його рахунків і банок. Обмеження на використання функції не частіше ніж 1 раз у 60 секунд.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiPersonalClientInfoGetRequest
*/
func (a *DefaultApiService) PersonalClientInfoGet(ctx context.Context) ApiPersonalClientInfoGetRequest {
return ApiPersonalClientInfoGetRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
// @return UserInfo
func (a *DefaultApiService) PersonalClientInfoGetExecute(r ApiPersonalClientInfoGetRequest) (*UserInfo, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue *UserInfo
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultApiService.PersonalClientInfoGet")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/personal/client-info"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.xToken == nil {
return localVarReturnValue, nil, reportError("xToken is required and must be specified")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarHeaderParams, "X-Token", r.xToken, "")
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}
type ApiPersonalStatementAccountFromToGetRequest struct {
ctx context.Context
ApiService *DefaultApiService
xToken *string
account string
from string
to string
}
// Token для особистого доступу до API
func (r ApiPersonalStatementAccountFromToGetRequest) XToken(xToken string) ApiPersonalStatementAccountFromToGetRequest {
r.xToken = &xToken
return r
}
func (r ApiPersonalStatementAccountFromToGetRequest) Execute() ([]StatementItemsInner, *http.Response, error) {
return r.ApiService.PersonalStatementAccountFromToGetExecute(r)
}
/*
PersonalStatementAccountFromToGet Виписка
Отримання виписки за час від {from} до {to} часу в секундах в форматі Unix time. Максимальний час, за який можливо отримати виписку 31 доба + 1 година (2682000 секунд).
Обмеження на використання функції не частіше ніж 1 раз на 60 секунд.
Повертає 500 транзакцій з кінця, тобто від часу to до from. Якщо кількість транзакцій = 500, потрібно зробити ще один запит, зменшивши час to до часу останнього платежу, з відповіді. Якщо знову кількість транзакцій = 500, то виконуєте запити до того часу, поки кількість транзакцій не буде < 500. Відповідно, якщо кількість транзакцій < 500, то вже отримано всі платежі за вказаний період.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@param account Ідентифікатор рахунку або банки з переліків Statement list або 0 - дефолтний рахунок.
@param from Початок часу виписки.
@param to Останній час виписки (якщо відсутній, буде використовуватись поточний час).
@return ApiPersonalStatementAccountFromToGetRequest
*/
func (a *DefaultApiService) PersonalStatementAccountFromToGet(ctx context.Context, account string, from string, to string) ApiPersonalStatementAccountFromToGetRequest {
return ApiPersonalStatementAccountFromToGetRequest{
ApiService: a,
ctx: ctx,
account: account,
from: from,
to: to,
}
}
// Execute executes the request
// @return []StatementItemsInner
func (a *DefaultApiService) PersonalStatementAccountFromToGetExecute(r ApiPersonalStatementAccountFromToGetRequest) ([]StatementItemsInner, *http.Response, error) {
var (
localVarHTTPMethod = http.MethodGet
localVarPostBody interface{}
formFiles []formFile
localVarReturnValue []StatementItemsInner
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultApiService.PersonalStatementAccountFromToGet")
if err != nil {
return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/personal/statement/{account}/{from}/{to}"
localVarPath = strings.Replace(localVarPath, "{"+"account"+"}", url.PathEscape(parameterValueToString(r.account, "account")), -1)
localVarPath = strings.Replace(localVarPath, "{"+"from"+"}", url.PathEscape(parameterValueToString(r.from, "from")), -1)
localVarPath = strings.Replace(localVarPath, "{"+"to"+"}", url.PathEscape(parameterValueToString(r.to, "to")), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.xToken == nil {
return localVarReturnValue, nil, reportError("xToken is required and must be specified")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarHeaderParams, "X-Token", r.xToken, "")
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarReturnValue, localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarReturnValue, localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
if err != nil {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: err.Error(),
}
return localVarReturnValue, localVarHTTPResponse, newErr
}
return localVarReturnValue, localVarHTTPResponse, nil
}
type ApiPersonalWebhookPostRequest struct {
ctx context.Context
ApiService *DefaultApiService
xToken *string
setWebHook *SetWebHook
}
// Token для особистого доступу до API
func (r ApiPersonalWebhookPostRequest) XToken(xToken string) ApiPersonalWebhookPostRequest {
r.xToken = &xToken
return r
}
func (r ApiPersonalWebhookPostRequest) SetWebHook(setWebHook SetWebHook) ApiPersonalWebhookPostRequest {
r.setWebHook = &setWebHook
return r
}
func (r ApiPersonalWebhookPostRequest) Execute() (*http.Response, error) {
return r.ApiService.PersonalWebhookPostExecute(r)
}
/*
PersonalWebhookPost Встановлення WebHook
Встановлення URL користувача:
- Для підтвердження коректності наданої адреси, на неї надсилається GET-запит. Сервер має відповісти строго HTTP статус-кодом 200, і ніяким іншим. Якщо валідацію пройдено, на задану адресу починають надсилатися POST запити з подіями.
- Події надсилаються у наступному вигляді: POST запит на задану адресу у форматі `{type:"StatementItem", data:{account:"...", statementItem:{#StatementItem}}}`. Якщо сервіс користувача не відповість протягом 5с на команду, сервіс повторить спробу ще через 60 та 600 секунд. Якщо на третю спробу відповідь отримана не буде, функція буде вимкнута. Відповідь сервера має строго містити HTTP статус-код 200.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return ApiPersonalWebhookPostRequest
*/
func (a *DefaultApiService) PersonalWebhookPost(ctx context.Context) ApiPersonalWebhookPostRequest {
return ApiPersonalWebhookPostRequest{
ApiService: a,
ctx: ctx,
}
}
// Execute executes the request
func (a *DefaultApiService) PersonalWebhookPostExecute(r ApiPersonalWebhookPostRequest) (*http.Response, error) {
var (
localVarHTTPMethod = http.MethodPost
localVarPostBody interface{}
formFiles []formFile
)
localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "DefaultApiService.PersonalWebhookPost")
if err != nil {
return nil, &GenericOpenAPIError{error: err.Error()}
}
localVarPath := localBasePath + "/personal/webhook"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
if r.xToken == nil {
return nil, reportError("xToken is required and must be specified")
}
if r.setWebHook == nil {
return nil, reportError("setWebHook is required and must be specified")
}
// to determine the Content-Type header
localVarHTTPContentTypes := []string{"application/json"}
// set Content-Type header
localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
if localVarHTTPContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHTTPContentType
}
// to determine the Accept header
localVarHTTPHeaderAccepts := []string{}
// set Accept header
localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
if localVarHTTPHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
}
parameterAddToHeaderOrQuery(localVarHeaderParams, "X-Token", r.xToken, "")
// body params
localVarPostBody = r.setWebHook
req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, formFiles)
if err != nil {
return nil, err
}
localVarHTTPResponse, err := a.client.callAPI(req)
if err != nil || localVarHTTPResponse == nil {
return localVarHTTPResponse, err
}
localVarBody, err := io.ReadAll(localVarHTTPResponse.Body)
localVarHTTPResponse.Body.Close()
localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody))
if err != nil {
return localVarHTTPResponse, err
}
if localVarHTTPResponse.StatusCode >= 300 {
newErr := &GenericOpenAPIError{
body: localVarBody,
error: localVarHTTPResponse.Status,
}
return localVarHTTPResponse, newErr
}
return localVarHTTPResponse, nil
}

359
api__.go Normal file

@ -0,0 +1,359 @@
/*
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
package monobank
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
)
// Linger please
var (
_ context.Context
)
type ApiService service
/*
ApiService Отримання курсів валют
Отримати базовий перелік курсів валют monobank. Інформація кешується та оновлюється не частіше 1 разу на 5 хвилин.
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
@return []CurrencyInfoInner
*/
func (a *ApiService) BankCurrencyGet(ctx context.Context) ([]CurrencyInfoInner, *http.Response, error) {
var (
localVarHttpMethod = strings.ToUpper("Get")
localVarPostBody interface{}
localVarFileName string
localVarFileBytes []byte
localVarReturnValue []CurrencyInfoInner
)
// create path and map variables
localVarPath := a.client.cfg.BasePath + "/bank/currency"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHttpContentTypes := []string{}
// set Content-Type header
localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
if localVarHttpContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHttpContentType
}
// to determine the Accept header
localVarHttpHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
if localVarHttpHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
}
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHttpResponse, err := a.client.callAPI(r)
if err != nil || localVarHttpResponse == nil {
return localVarReturnValue, localVarHttpResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
localVarHttpResponse.Body.Close()
if err != nil {
return localVarReturnValue, localVarHttpResponse, err
}
if localVarHttpResponse.StatusCode < 300 {
// If we succeed, return the data, otherwise pass on to decode error.
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
if err == nil {
return localVarReturnValue, localVarHttpResponse, err
}
}
if localVarHttpResponse.StatusCode >= 300 {
newErr := GenericSwaggerError{
body: localVarBody,
error: localVarHttpResponse.Status,
}
if localVarHttpResponse.StatusCode == 200 {
var v []CurrencyInfoInner
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHttpResponse, newErr
}
newErr.model = v
return localVarReturnValue, localVarHttpResponse, newErr
}
return localVarReturnValue, localVarHttpResponse, newErr
}
return localVarReturnValue, localVarHttpResponse, nil
}
/*
ApiService Інформація про клієнта
Отримання інформації про клієнта та переліку його рахунків і банок. Обмеження на використання функції не частіше ніж 1 раз у 60 секунд.
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param xToken Token для особистого доступу до API
@return UserInfo
*/
func (a *ApiService) PersonalClientInfoGet(ctx context.Context, xToken string) (UserInfo, *http.Response, error) {
var (
localVarHttpMethod = strings.ToUpper("Get")
localVarPostBody interface{}
localVarFileName string
localVarFileBytes []byte
localVarReturnValue UserInfo
)
// create path and map variables
localVarPath := a.client.cfg.BasePath + "/personal/client-info"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHttpContentTypes := []string{}
// set Content-Type header
localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
if localVarHttpContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHttpContentType
}
// to determine the Accept header
localVarHttpHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
if localVarHttpHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
}
localVarHeaderParams["X-Token"] = parameterToString(xToken, "")
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHttpResponse, err := a.client.callAPI(r)
if err != nil || localVarHttpResponse == nil {
return localVarReturnValue, localVarHttpResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
localVarHttpResponse.Body.Close()
if err != nil {
return localVarReturnValue, localVarHttpResponse, err
}
if localVarHttpResponse.StatusCode < 300 {
// If we succeed, return the data, otherwise pass on to decode error.
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
if err == nil {
return localVarReturnValue, localVarHttpResponse, err
}
}
if localVarHttpResponse.StatusCode >= 300 {
newErr := GenericSwaggerError{
body: localVarBody,
error: localVarHttpResponse.Status,
}
if localVarHttpResponse.StatusCode == 200 {
var v UserInfo
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHttpResponse, newErr
}
newErr.model = v
return localVarReturnValue, localVarHttpResponse, newErr
}
return localVarReturnValue, localVarHttpResponse, newErr
}
return localVarReturnValue, localVarHttpResponse, nil
}
/*
ApiService Виписка
Отримання виписки за час від {from} до {to} часу в секундах в форматі Unix time. Максимальний час, за який можливо отримати виписку 31 доба + 1 година (2682000 секунд). Обмеження на використання функції не частіше ніж 1 раз на 60 секунд. Повертає 500 транзакцій з кінця, тобто від часу to до from. Якщо кількість транзакцій &#x3D; 500, потрібно зробити ще один запит, зменшивши час to до часу останнього платежу, з відповіді. Якщо знову кількість транзакцій &#x3D; 500, то виконуєте запити до того часу, поки кількість транзакцій не буде &lt; 500. Відповідно, якщо кількість транзакцій &lt; 500, то вже отримано всі платежі за вказаний період.
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param xToken Token для особистого доступу до API
- @param account Ідентифікатор рахунку або банки з переліків Statement list або 0 - дефолтний рахунок.
- @param from Початок часу виписки.
- @param to Останній час виписки (якщо відсутній, буде використовуватись поточний час).
@return []StatementItemsInner
*/
func (a *ApiService) PersonalStatementAccountFromToGet(ctx context.Context, xToken string, account string, from string, to string) ([]StatementItemsInner, *http.Response, error) {
var (
localVarHttpMethod = strings.ToUpper("Get")
localVarPostBody interface{}
localVarFileName string
localVarFileBytes []byte
localVarReturnValue []StatementItemsInner
)
// create path and map variables
localVarPath := a.client.cfg.BasePath + "/personal/statement/{account}/{from}/{to}"
localVarPath = strings.Replace(localVarPath, "{"+"account"+"}", fmt.Sprintf("%v", account), -1)
localVarPath = strings.Replace(localVarPath, "{"+"from"+"}", fmt.Sprintf("%v", from), -1)
localVarPath = strings.Replace(localVarPath, "{"+"to"+"}", fmt.Sprintf("%v", to), -1)
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHttpContentTypes := []string{}
// set Content-Type header
localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
if localVarHttpContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHttpContentType
}
// to determine the Accept header
localVarHttpHeaderAccepts := []string{"application/json"}
// set Accept header
localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
if localVarHttpHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
}
localVarHeaderParams["X-Token"] = parameterToString(xToken, "")
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
if err != nil {
return localVarReturnValue, nil, err
}
localVarHttpResponse, err := a.client.callAPI(r)
if err != nil || localVarHttpResponse == nil {
return localVarReturnValue, localVarHttpResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
localVarHttpResponse.Body.Close()
if err != nil {
return localVarReturnValue, localVarHttpResponse, err
}
if localVarHttpResponse.StatusCode < 300 {
// If we succeed, return the data, otherwise pass on to decode error.
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
if err == nil {
return localVarReturnValue, localVarHttpResponse, err
}
}
if localVarHttpResponse.StatusCode >= 300 {
newErr := GenericSwaggerError{
body: localVarBody,
error: localVarHttpResponse.Status,
}
if localVarHttpResponse.StatusCode == 200 {
var v []StatementItemsInner
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"))
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHttpResponse, newErr
}
newErr.model = v
return localVarReturnValue, localVarHttpResponse, newErr
}
return localVarReturnValue, localVarHttpResponse, newErr
}
return localVarReturnValue, localVarHttpResponse, nil
}
/*
ApiService Встановлення WebHook
Встановлення URL користувача: - Для підтвердження коректності наданої адреси, на неї надсилається GET-запит. Сервер має відповісти строго HTTP статус-кодом 200, і ніяким іншим. Якщо валідацію пройдено, на задану адресу починають надсилатися POST запити з подіями. - Події надсилаються у наступному вигляді: POST запит на задану адресу у форматі &#x60;{type:\&quot;StatementItem\&quot;, data:{account:\&quot;...\&quot;, statementItem:{#StatementItem}}}&#x60;. Якщо сервіс користувача не відповість протягом 5с на команду, сервіс повторить спробу ще через 60 та 600 секунд. Якщо на третю спробу відповідь отримана не буде, функція буде вимкнута. Відповідь сервера має строго містити HTTP статус-код 200.
- @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- @param body
- @param xToken Token для особистого доступу до API
*/
func (a *ApiService) PersonalWebhookPost(ctx context.Context, body SetWebHook, xToken string) (*http.Response, error) {
var (
localVarHttpMethod = strings.ToUpper("Post")
localVarPostBody interface{}
localVarFileName string
localVarFileBytes []byte
)
// create path and map variables
localVarPath := a.client.cfg.BasePath + "/personal/webhook"
localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := url.Values{}
// to determine the Content-Type header
localVarHttpContentTypes := []string{"application/json"}
// set Content-Type header
localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
if localVarHttpContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHttpContentType
}
// to determine the Accept header
localVarHttpHeaderAccepts := []string{}
// set Accept header
localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
if localVarHttpHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
}
localVarHeaderParams["X-Token"] = parameterToString(xToken, "")
// body params
localVarPostBody = &body
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
if err != nil {
return nil, err
}
localVarHttpResponse, err := a.client.callAPI(r)
if err != nil || localVarHttpResponse == nil {
return localVarHttpResponse, err
}
localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
localVarHttpResponse.Body.Close()
if err != nil {
return localVarHttpResponse, err
}
if localVarHttpResponse.StatusCode >= 300 {
newErr := GenericSwaggerError{
body: localVarBody,
error: localVarHttpResponse.Status,
}
return localVarHttpResponse, newErr
}
return localVarHttpResponse, nil
}

363
client.go

@ -1,13 +1,11 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
@ -18,10 +16,8 @@ import (
"errors"
"fmt"
"io"
"log"
"mime/multipart"
"net/http"
"net/http/httputil"
"net/url"
"os"
"path/filepath"
@ -32,13 +28,12 @@ import (
"time"
"unicode/utf8"
"golang.org/x/oauth2"
)
var (
JsonCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:[^;]+\+)?json)`)
XmlCheck = regexp.MustCompile(`(?i:(?:application|text)/(?:[^;]+\+)?xml)`)
queryParamSplit = regexp.MustCompile(`(^|&)([^&]+)`)
queryDescape = strings.NewReplacer( "%5B", "[", "%5D", "]" )
jsonCheck = regexp.MustCompile("(?i:[application|text]/json)")
xmlCheck = regexp.MustCompile("(?i:[application|text]/xml)")
)
// APIClient manages communication with the Monobank open API API vv2303
@ -49,7 +44,7 @@ type APIClient struct {
// API Services
DefaultApi *DefaultApiService
Api *ApiService
}
type service struct {
@ -68,7 +63,7 @@ func NewAPIClient(cfg *Configuration) *APIClient {
c.common.client = c
// API Services
c.DefaultApi = (*DefaultApiService)(&c.common)
c.Api = (*ApiService)(&c.common)
return c
}
@ -101,10 +96,10 @@ func selectHeaderAccept(accepts []string) string {
return strings.Join(accepts, ",")
}
// contains is a case insensitive match, finding needle in a haystack
// contains is a case insenstive match, finding needle in a haystack
func contains(haystack []string, needle string) bool {
for _, a := range haystack {
if strings.EqualFold(a, needle) {
if strings.ToLower(a) == strings.ToLower(needle) {
return true
}
}
@ -120,157 +115,41 @@ func typeCheckParameter(obj interface{}, expected string, name string) error {
// Check the type is as expected.
if reflect.TypeOf(obj).String() != expected {
return fmt.Errorf("expected %s to be of type %s but received %s", name, expected, reflect.TypeOf(obj).String())
return fmt.Errorf("Expected %s to be of type %s but received %s.", name, expected, reflect.TypeOf(obj).String())
}
return nil
}
func parameterValueToString( obj interface{}, key string ) string {
if reflect.TypeOf(obj).Kind() != reflect.Ptr {
// parameterToString convert interface{} parameters to string, using a delimiter if format is provided.
func parameterToString(obj interface{}, collectionFormat string) string {
var delimiter string
switch collectionFormat {
case "pipes":
delimiter = "|"
case "ssv":
delimiter = " "
case "tsv":
delimiter = "\t"
case "csv":
delimiter = ","
}
if reflect.TypeOf(obj).Kind() == reflect.Slice {
return strings.Trim(strings.Replace(fmt.Sprint(obj), " ", delimiter, -1), "[]")
}
return fmt.Sprintf("%v", obj)
}
var param,ok = obj.(MappedNullable)
if !ok {
return ""
}
dataMap,err := param.ToMap()
if err != nil {
return ""
}
return fmt.Sprintf("%v", dataMap[key])
}
// parameterAddToHeaderOrQuery adds the provided object to the request header or url query
// supporting deep object syntax
func parameterAddToHeaderOrQuery(headerOrQueryParams interface{}, keyPrefix string, obj interface{}, collectionType string) {
var v = reflect.ValueOf(obj)
var value = ""
if v == reflect.ValueOf(nil) {
value = "null"
} else {
switch v.Kind() {
case reflect.Invalid:
value = "invalid"
case reflect.Struct:
if t,ok := obj.(MappedNullable); ok {
dataMap,err := t.ToMap()
if err != nil {
return
}
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, dataMap, collectionType)
return
}
if t, ok := obj.(time.Time); ok {
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, t.Format(time.RFC3339), collectionType)
return
}
value = v.Type().String() + " value"
case reflect.Slice:
var indValue = reflect.ValueOf(obj)
if indValue == reflect.ValueOf(nil) {
return
}
var lenIndValue = indValue.Len()
for i:=0;i<lenIndValue;i++ {
var arrayValue = indValue.Index(i)
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, arrayValue.Interface(), collectionType)
}
return
case reflect.Map:
var indValue = reflect.ValueOf(obj)
if indValue == reflect.ValueOf(nil) {
return
}
iter := indValue.MapRange()
for iter.Next() {
k,v := iter.Key(), iter.Value()
parameterAddToHeaderOrQuery(headerOrQueryParams, fmt.Sprintf("%s[%s]", keyPrefix, k.String()), v.Interface(), collectionType)
}
return
case reflect.Interface:
fallthrough
case reflect.Ptr:
parameterAddToHeaderOrQuery(headerOrQueryParams, keyPrefix, v.Elem().Interface(), collectionType)
return
case reflect.Int, reflect.Int8, reflect.Int16,
reflect.Int32, reflect.Int64:
value = strconv.FormatInt(v.Int(), 10)
case reflect.Uint, reflect.Uint8, reflect.Uint16,
reflect.Uint32, reflect.Uint64, reflect.Uintptr:
value = strconv.FormatUint(v.Uint(), 10)
case reflect.Float32, reflect.Float64:
value = strconv.FormatFloat(v.Float(), 'g', -1, 32)
case reflect.Bool:
value = strconv.FormatBool(v.Bool())
case reflect.String:
value = v.String()
default:
value = v.Type().String() + " value"
}
}
switch valuesMap := headerOrQueryParams.(type) {
case url.Values:
if collectionType == "csv" && valuesMap.Get(keyPrefix) != "" {
valuesMap.Set(keyPrefix, valuesMap.Get(keyPrefix) + "," + value)
} else {
valuesMap.Add(keyPrefix, value)
}
break
case map[string]string:
valuesMap[keyPrefix] = value
break
}
}
// helper for converting interface{} parameters to json strings
func parameterToJson(obj interface{}) (string, error) {
jsonBuf, err := json.Marshal(obj)
if err != nil {
return "", err
}
return string(jsonBuf), err
}
// callAPI do the request.
func (c *APIClient) callAPI(request *http.Request) (*http.Response, error) {
if c.cfg.Debug {
dump, err := httputil.DumpRequestOut(request, true)
if err != nil {
return nil, err
}
log.Printf("\n%s\n", string(dump))
return c.cfg.HTTPClient.Do(request)
}
resp, err := c.cfg.HTTPClient.Do(request)
if err != nil {
return resp, err
}
if c.cfg.Debug {
dump, err := httputil.DumpResponse(resp, true)
if err != nil {
return resp, err
}
log.Printf("\n%s\n", string(dump))
}
return resp, err
}
// Allow modification of underlying config for alternate implementations and testing
// Caution: modifying the configuration while live can cause data races and potentially unwanted behavior
func (c *APIClient) GetConfig() *Configuration {
return c.cfg
}
type formFile struct {
fileBytes []byte
fileName string
formFileName string
// Change base path to allow switching to mocks
func (c *APIClient) ChangeBasePath(path string) {
c.cfg.BasePath = path
}
// prepareRequest build the request
@ -281,7 +160,8 @@ func (c *APIClient) prepareRequest(
headerParams map[string]string,
queryParams url.Values,
formParams url.Values,
formFiles []formFile) (localVarRequest *http.Request, err error) {
fileName string,
fileBytes []byte) (localVarRequest *http.Request, err error) {
var body *bytes.Buffer
@ -300,7 +180,7 @@ func (c *APIClient) prepareRequest(
}
// add form parameters and file if available.
if strings.HasPrefix(headerParams["Content-Type"], "multipart/form-data") && len(formParams) > 0 || (len(formFiles) > 0) {
if strings.HasPrefix(headerParams["Content-Type"], "multipart/form-data") && len(formParams) > 0 || (len(fileBytes) > 0 && fileName != "") {
if body != nil {
return nil, errors.New("Cannot specify postBody and multipart form at the same time.")
}
@ -319,22 +199,20 @@ func (c *APIClient) prepareRequest(
}
}
}
for _, formFile := range formFiles {
if len(formFile.fileBytes) > 0 && formFile.fileName != "" {
if len(fileBytes) > 0 && fileName != "" {
w.Boundary()
part, err := w.CreateFormFile(formFile.formFileName, filepath.Base(formFile.fileName))
//_, fileNm := filepath.Split(fileName)
part, err := w.CreateFormFile("file", filepath.Base(fileName))
if err != nil {
return nil, err
}
_, err = part.Write(formFile.fileBytes)
_, err = part.Write(fileBytes)
if err != nil {
return nil, err
}
}
}
// Set the Boundary in the Content-Type
headerParams["Content-Type"] = w.FormDataContentType()
}
// Set Content-Length
headerParams["Content-Length"] = fmt.Sprintf("%d", body.Len())
@ -357,16 +235,6 @@ func (c *APIClient) prepareRequest(
return nil, err
}
// Override request host, if applicable
if c.cfg.Host != "" {
url.Host = c.cfg.Host
}
// Override request scheme, if applicable
if c.cfg.Scheme != "" {
url.Scheme = c.cfg.Scheme
}
// Adding Query Param
query := url.Query()
for k, v := range queryParams {
@ -376,11 +244,7 @@ func (c *APIClient) prepareRequest(
}
// Encode the parameters.
url.RawQuery = queryParamSplit.ReplaceAllStringFunc(query.Encode(), func(s string) string {
pieces := strings.Split(s, "=")
pieces[0] = queryDescape.Replace(pieces[0])
return strings.Join(pieces, "=")
})
url.RawQuery = query.Encode()
// Generate a new request
if body != nil {
@ -396,11 +260,16 @@ func (c *APIClient) prepareRequest(
if len(headerParams) > 0 {
headers := http.Header{}
for h, v := range headerParams {
headers[h] = []string{v}
headers.Set(h, v)
}
localVarRequest.Header = headers
}
// Override request host, if applicable
if c.cfg.Host != "" {
localVarRequest.Host = c.cfg.Host
}
// Add the user agent to the request.
localVarRequest.Header.Add("User-Agent", c.cfg.UserAgent)
@ -410,62 +279,43 @@ func (c *APIClient) prepareRequest(
// Walk through any authentication.
// OAuth2 authentication
if tok, ok := ctx.Value(ContextOAuth2).(oauth2.TokenSource); ok {
// We were able to grab an oauth2 token from the context
var latestToken *oauth2.Token
if latestToken, err = tok.Token(); err != nil {
return nil, err
}
latestToken.SetAuthHeader(localVarRequest)
}
// Basic HTTP Authentication
if auth, ok := ctx.Value(ContextBasicAuth).(BasicAuth); ok {
localVarRequest.SetBasicAuth(auth.UserName, auth.Password)
}
// AccessToken Authentication
if auth, ok := ctx.Value(ContextAccessToken).(string); ok {
localVarRequest.Header.Add("Authorization", "Bearer "+auth)
}
}
for header, value := range c.cfg.DefaultHeader {
localVarRequest.Header.Add(header, value)
}
return localVarRequest, nil
}
func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err error) {
if len(b) == 0 {
return nil
}
if s, ok := v.(*string); ok {
*s = string(b)
return nil
}
if f, ok := v.(*os.File); ok {
f, err = os.CreateTemp("", "HttpClientFile")
if err != nil {
return
}
_, err = f.Write(b)
if err != nil {
return
}
_, err = f.Seek(0, io.SeekStart)
return
}
if f, ok := v.(**os.File); ok {
*f, err = os.CreateTemp("", "HttpClientFile")
if err != nil {
return
}
_, err = (*f).Write(b)
if err != nil {
return
}
_, err = (*f).Seek(0, io.SeekStart)
return
}
if XmlCheck.MatchString(contentType) {
if strings.Contains(contentType, "application/xml") {
if err = xml.Unmarshal(b, v); err != nil {
return err
}
return nil
}
if JsonCheck.MatchString(contentType) {
if actualObj, ok := v.(interface{ GetActualInstance() interface{} }); ok { // oneOf, anyOf schemas
if unmarshalObj, ok := actualObj.(interface{ UnmarshalJSON([]byte) error }); ok { // make sure it has UnmarshalJSON defined
if err = unmarshalObj.UnmarshalJSON(b); err != nil {
return err
}
} else {
return errors.New("Unknown type with GetActualInstance but no unmarshalObj.UnmarshalJSON defined")
}
} else if err = json.Unmarshal(b, v); err != nil { // simple model
} else if strings.Contains(contentType, "application/json") {
if err = json.Unmarshal(b, v); err != nil {
return err
}
return nil
@ -475,14 +325,11 @@ func (c *APIClient) decode(v interface{}, b []byte, contentType string) (err err
// Add a file to the multipart request
func addFile(w *multipart.Writer, fieldName, path string) error {
file, err := os.Open(filepath.Clean(path))
if err != nil {
return err
}
err = file.Close()
file, err := os.Open(path)
if err != nil {
return err
}
defer file.Close()
part, err := w.CreateFormFile(fieldName, filepath.Base(path))
if err != nil {
@ -498,13 +345,6 @@ func reportError(format string, a ...interface{}) error {
return fmt.Errorf(format, a...)
}
// A wrapper for strict JSON decoding
func newStrictDecoder(data []byte) *json.Decoder {
dec := json.NewDecoder(bytes.NewBuffer(data))
dec.DisallowUnknownFields()
return dec
}
// Set request body from an interface{}
func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err error) {
if bodyBuf == nil {
@ -513,22 +353,16 @@ func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err e
if reader, ok := body.(io.Reader); ok {
_, err = bodyBuf.ReadFrom(reader)
} else if fp, ok := body.(*os.File); ok {
_, err = bodyBuf.ReadFrom(fp)
} else if b, ok := body.([]byte); ok {
_, err = bodyBuf.Write(b)
} else if s, ok := body.(string); ok {
_, err = bodyBuf.WriteString(s)
} else if s, ok := body.(*string); ok {
_, err = bodyBuf.WriteString(*s)
} else if JsonCheck.MatchString(contentType) {
} else if jsonCheck.MatchString(contentType) {
err = json.NewEncoder(bodyBuf).Encode(body)
} else if XmlCheck.MatchString(contentType) {
var bs []byte
bs, err = xml.Marshal(body)
if err == nil {
bodyBuf.Write(bs)
}
} else if xmlCheck.MatchString(contentType) {
xml.NewEncoder(bodyBuf).Encode(body)
}
if err != nil {
@ -536,7 +370,7 @@ func setBody(body interface{}, contentType string) (bodyBuf *bytes.Buffer, err e
}
if bodyBuf.Len() == 0 {
err = fmt.Errorf("invalid body type %s\n", contentType)
err = fmt.Errorf("Invalid body type %s\n", contentType)
return nil, err
}
return bodyBuf, nil
@ -598,9 +432,8 @@ func CacheExpires(r *http.Response) time.Time {
lifetime, err := time.ParseDuration(maxAge + "s")
if err != nil {
expires = now
} else {
expires = now.Add(lifetime)
}
expires = now.Add(lifetime)
} else {
expiresHeader := r.Header.Get("Expires")
if expiresHeader != "" {
@ -617,44 +450,24 @@ func strlen(s string) int {
return utf8.RuneCountInString(s)
}
// GenericOpenAPIError Provides access to the body, error and model on returned errors.
type GenericOpenAPIError struct {
// GenericSwaggerError Provides access to the body, error and model on returned errors.
type GenericSwaggerError struct {
body []byte
error string
model interface{}
}
// Error returns non-empty string if there was an error.
func (e GenericOpenAPIError) Error() string {
func (e GenericSwaggerError) Error() string {
return e.error
}
// Body returns the raw bytes of the response
func (e GenericOpenAPIError) Body() []byte {
func (e GenericSwaggerError) Body() []byte {
return e.body
}
// Model returns the unpacked model of the error
func (e GenericOpenAPIError) Model() interface{} {
func (e GenericSwaggerError) Model() interface{} {
return e.model
}
// format error message using title and detail when model implements rfc7807
func formatErrorMessage(status string, v interface{}) string {
str := ""
metaValue := reflect.ValueOf(v).Elem()
if metaValue.Kind() == reflect.Struct {
field := metaValue.FieldByName("Title")
if field != (reflect.Value{}) {
str = fmt.Sprintf("%s", field.Interface())
}
field = metaValue.FieldByName("Detail")
if field != (reflect.Value{}) {
str = fmt.Sprintf("%s (%s)", str, field.Interface())
}
}
return strings.TrimSpace(fmt.Sprintf("%s %s", status, str))
}

@ -1,20 +1,15 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"context"
"fmt"
"net/http"
"strings"
)
// contextKeys are used to identify the type of value in the context.
@ -28,17 +23,17 @@ func (c contextKey) String() string {
}
var (
// ContextServerIndex uses a server configuration from the index.
ContextServerIndex = contextKey("serverIndex")
// ContextOAuth2 takes a oauth2.TokenSource as authentication for the request.
ContextOAuth2 = contextKey("token")
// ContextOperationServerIndices uses a server configuration from the index mapping.
ContextOperationServerIndices = contextKey("serverOperationIndices")
// ContextBasicAuth takes BasicAuth as authentication for the request.
ContextBasicAuth = contextKey("basic")
// ContextServerVariables overrides a server configuration variables.
ContextServerVariables = contextKey("serverVariables")
// ContextAccessToken takes a string oauth2 access token as authentication for the request.
ContextAccessToken = contextKey("accesstoken")
// ContextOperationServerVariables overrides a server configuration variables using operation specific values.
ContextOperationServerVariables = contextKey("serverOperationVariables")
// ContextAPIKey takes an APIKey as authentication for the request
ContextAPIKey = contextKey("apikey")
)
// BasicAuth provides basic http authentication to a request passed via context using ContextBasicAuth
@ -53,163 +48,26 @@ type APIKey struct {
Prefix string
}
// ServerVariable stores the information about a server variable
type ServerVariable struct {
Description string
DefaultValue string
EnumValues []string
}
// ServerConfiguration stores the information about a server
type ServerConfiguration struct {
URL string
Description string
Variables map[string]ServerVariable
}
// ServerConfigurations stores multiple ServerConfiguration items
type ServerConfigurations []ServerConfiguration
// Configuration stores the configuration of the API client
type Configuration struct {
BasePath string `json:"basePath,omitempty"`
Host string `json:"host,omitempty"`
Scheme string `json:"scheme,omitempty"`
DefaultHeader map[string]string `json:"defaultHeader,omitempty"`
UserAgent string `json:"userAgent,omitempty"`
Debug bool `json:"debug,omitempty"`
Servers ServerConfigurations
OperationServers map[string]ServerConfigurations
HTTPClient *http.Client
}
// NewConfiguration returns a new Configuration object
func NewConfiguration() *Configuration {
cfg := &Configuration{
BasePath: "https://api.monobank.ua",
DefaultHeader: make(map[string]string),
UserAgent: "OpenAPI-Generator/1.0.0/go",
Debug: false,
Servers: ServerConfigurations{
{
URL: "https://api.monobank.ua",
Description: "No description provided",
},
},
OperationServers: map[string]ServerConfigurations{
},
UserAgent: "Swagger-Codegen/1.0.0/go",
}
return cfg
}
// AddDefaultHeader adds a new HTTP header to the default header in the request
func (c *Configuration) AddDefaultHeader(key string, value string) {
c.DefaultHeader[key] = value
}
// URL formats template on a index using given variables
func (sc ServerConfigurations) URL(index int, variables map[string]string) (string, error) {
if index < 0 || len(sc) <= index {
return "", fmt.Errorf("index %v out of range %v", index, len(sc)-1)
}
server := sc[index]
url := server.URL
// go through variables and replace placeholders
for name, variable := range server.Variables {
if value, ok := variables[name]; ok {
found := bool(len(variable.EnumValues) == 0)
for _, enumValue := range variable.EnumValues {
if value == enumValue {
found = true
}
}
if !found {
return "", fmt.Errorf("the variable %s in the server URL has invalid value %v. Must be %v", name, value, variable.EnumValues)
}
url = strings.Replace(url, "{"+name+"}", value, -1)
} else {
url = strings.Replace(url, "{"+name+"}", variable.DefaultValue, -1)
}
}
return url, nil
}
// ServerURL returns URL based on server settings
func (c *Configuration) ServerURL(index int, variables map[string]string) (string, error) {
return c.Servers.URL(index, variables)
}
func getServerIndex(ctx context.Context) (int, error) {
si := ctx.Value(ContextServerIndex)
if si != nil {
if index, ok := si.(int); ok {
return index, nil
}
return 0, reportError("Invalid type %T should be int", si)
}
return 0, nil
}
func getServerOperationIndex(ctx context.Context, endpoint string) (int, error) {
osi := ctx.Value(ContextOperationServerIndices)
if osi != nil {
if operationIndices, ok := osi.(map[string]int); !ok {
return 0, reportError("Invalid type %T should be map[string]int", osi)
} else {
index, ok := operationIndices[endpoint]
if ok {
return index, nil
}
}
}
return getServerIndex(ctx)
}
func getServerVariables(ctx context.Context) (map[string]string, error) {
sv := ctx.Value(ContextServerVariables)
if sv != nil {
if variables, ok := sv.(map[string]string); ok {
return variables, nil
}
return nil, reportError("ctx value of ContextServerVariables has invalid type %T should be map[string]string", sv)
}
return nil, nil
}
func getServerOperationVariables(ctx context.Context, endpoint string) (map[string]string, error) {
osv := ctx.Value(ContextOperationServerVariables)
if osv != nil {
if operationVariables, ok := osv.(map[string]map[string]string); !ok {
return nil, reportError("ctx value of ContextOperationServerVariables has invalid type %T should be map[string]map[string]string", osv)
} else {
variables, ok := operationVariables[endpoint]
if ok {
return variables, nil
}
}
}
return getServerVariables(ctx)
}
// ServerURLWithContext returns a new server URL given an endpoint
func (c *Configuration) ServerURLWithContext(ctx context.Context, endpoint string) (string, error) {
sc, ok := c.OperationServers[endpoint]
if !ok {
sc = c.Servers
}
if ctx == nil {
return sc.URL(0, nil)
}
index, err := getServerOperationIndex(ctx, endpoint)
if err != nil {
return "", err
}
variables, err := getServerOperationVariables(ctx, endpoint)
if err != nil {
return "", err
}
return sc.URL(index, variables)
}
type Array []string

@ -1,186 +1,14 @@
# CurrencyInfoInner
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**CurrencyCodeA** | Pointer to **float32** | Код валюти рахунку відповідно ISO 4217 | [optional]
**CurrencyCodeB** | Pointer to **float32** | Код валюти рахунку відповідно ISO 4217 | [optional]
**Date** | Pointer to **float32** | Час курсу в секундах в форматі Unix time | [optional]
**RateSell** | Pointer to **float32** | | [optional]
**RateBuy** | Pointer to **float32** | | [optional]
**RateCross** | Pointer to **float32** | | [optional]
## Methods
### NewCurrencyInfoInner
`func NewCurrencyInfoInner() *CurrencyInfoInner`
NewCurrencyInfoInner instantiates a new CurrencyInfoInner object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewCurrencyInfoInnerWithDefaults
`func NewCurrencyInfoInnerWithDefaults() *CurrencyInfoInner`
NewCurrencyInfoInnerWithDefaults instantiates a new CurrencyInfoInner object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetCurrencyCodeA
`func (o *CurrencyInfoInner) GetCurrencyCodeA() float32`
GetCurrencyCodeA returns the CurrencyCodeA field if non-nil, zero value otherwise.
### GetCurrencyCodeAOk
`func (o *CurrencyInfoInner) GetCurrencyCodeAOk() (*float32, bool)`
GetCurrencyCodeAOk returns a tuple with the CurrencyCodeA field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCurrencyCodeA
`func (o *CurrencyInfoInner) SetCurrencyCodeA(v float32)`
SetCurrencyCodeA sets CurrencyCodeA field to given value.
### HasCurrencyCodeA
`func (o *CurrencyInfoInner) HasCurrencyCodeA() bool`
HasCurrencyCodeA returns a boolean if a field has been set.
### GetCurrencyCodeB
`func (o *CurrencyInfoInner) GetCurrencyCodeB() float32`
GetCurrencyCodeB returns the CurrencyCodeB field if non-nil, zero value otherwise.
### GetCurrencyCodeBOk
`func (o *CurrencyInfoInner) GetCurrencyCodeBOk() (*float32, bool)`
GetCurrencyCodeBOk returns a tuple with the CurrencyCodeB field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCurrencyCodeB
`func (o *CurrencyInfoInner) SetCurrencyCodeB(v float32)`
SetCurrencyCodeB sets CurrencyCodeB field to given value.
### HasCurrencyCodeB
`func (o *CurrencyInfoInner) HasCurrencyCodeB() bool`
HasCurrencyCodeB returns a boolean if a field has been set.
### GetDate
`func (o *CurrencyInfoInner) GetDate() float32`
GetDate returns the Date field if non-nil, zero value otherwise.
### GetDateOk
`func (o *CurrencyInfoInner) GetDateOk() (*float32, bool)`
GetDateOk returns a tuple with the Date field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetDate
`func (o *CurrencyInfoInner) SetDate(v float32)`
SetDate sets Date field to given value.
### HasDate
`func (o *CurrencyInfoInner) HasDate() bool`
HasDate returns a boolean if a field has been set.
### GetRateSell
`func (o *CurrencyInfoInner) GetRateSell() float32`
GetRateSell returns the RateSell field if non-nil, zero value otherwise.
### GetRateSellOk
`func (o *CurrencyInfoInner) GetRateSellOk() (*float32, bool)`
GetRateSellOk returns a tuple with the RateSell field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetRateSell
`func (o *CurrencyInfoInner) SetRateSell(v float32)`
SetRateSell sets RateSell field to given value.
### HasRateSell
`func (o *CurrencyInfoInner) HasRateSell() bool`
HasRateSell returns a boolean if a field has been set.
### GetRateBuy
`func (o *CurrencyInfoInner) GetRateBuy() float32`
GetRateBuy returns the RateBuy field if non-nil, zero value otherwise.
### GetRateBuyOk
`func (o *CurrencyInfoInner) GetRateBuyOk() (*float32, bool)`
GetRateBuyOk returns a tuple with the RateBuy field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetRateBuy
`func (o *CurrencyInfoInner) SetRateBuy(v float32)`
SetRateBuy sets RateBuy field to given value.
### HasRateBuy
`func (o *CurrencyInfoInner) HasRateBuy() bool`
HasRateBuy returns a boolean if a field has been set.
### GetRateCross
`func (o *CurrencyInfoInner) GetRateCross() float32`
GetRateCross returns the RateCross field if non-nil, zero value otherwise.
### GetRateCrossOk
`func (o *CurrencyInfoInner) GetRateCrossOk() (*float32, bool)`
GetRateCrossOk returns a tuple with the RateCross field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetRateCross
`func (o *CurrencyInfoInner) SetRateCross(v float32)`
SetRateCross sets RateCross field to given value.
### HasRateCross
`func (o *CurrencyInfoInner) HasRateCross() bool`
HasRateCross returns a boolean if a field has been set.
**CurrencyCodeA** | **float64** | Код валюти рахунку відповідно ISO 4217 | [optional] [default to null]
**CurrencyCodeB** | **float64** | Код валюти рахунку відповідно ISO 4217 | [optional] [default to null]
**Date** | **float64** | Час курсу в секундах в форматі Unix time | [optional] [default to null]
**RateSell** | **float32** | | [optional] [default to null]
**RateBuy** | **float32** | | [optional] [default to null]
**RateCross** | **float32** | | [optional] [default to null]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

@ -1,283 +0,0 @@
# \DefaultApi
All URIs are relative to *https://api.monobank.ua*
Method | HTTP request | Description
------------- | ------------- | -------------
[**BankCurrencyGet**](DefaultApi.md#BankCurrencyGet) | **Get** /bank/currency | Отримання курсів валют
[**PersonalClientInfoGet**](DefaultApi.md#PersonalClientInfoGet) | **Get** /personal/client-info | Інформація про клієнта
[**PersonalStatementAccountFromToGet**](DefaultApi.md#PersonalStatementAccountFromToGet) | **Get** /personal/statement/{account}/{from}/{to} | Виписка
[**PersonalWebhookPost**](DefaultApi.md#PersonalWebhookPost) | **Post** /personal/webhook | Встановлення WebHook
## BankCurrencyGet
> []CurrencyInfoInner BankCurrencyGet(ctx).Execute()
Отримання курсів валют
### Example
```go
package main
import (
"context"
"fmt"
"os"
monobankclient "gitea.stuzer.link/stuzer05/go-monobank"
)
func main() {
configuration := monobankclient.NewConfiguration()
apiClient := monobankclient.NewAPIClient(configuration)
resp, r, err := apiClient.DefaultApi.BankCurrencyGet(context.Background()).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.BankCurrencyGet``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `BankCurrencyGet`: []CurrencyInfoInner
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.BankCurrencyGet`: %v\n", resp)
}
```
### Path Parameters
This endpoint does not need any parameter.
### Other Parameters
Other parameters are passed through a pointer to a apiBankCurrencyGetRequest struct via the builder pattern
### Return type
[**[]CurrencyInfoInner**](CurrencyInfoInner.md)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## PersonalClientInfoGet
> UserInfo PersonalClientInfoGet(ctx).XToken(xToken).Execute()
Інформація про клієнта
### Example
```go
package main
import (
"context"
"fmt"
"os"
monobankclient "gitea.stuzer.link/stuzer05/go-monobank"
)
func main() {
xToken := "u3AulkpZFI1lIuGsik6vuPsVWqN7GoWs6o_MO2sdf301" // string | Token для особистого доступу до API
configuration := monobankclient.NewConfiguration()
apiClient := monobankclient.NewAPIClient(configuration)
resp, r, err := apiClient.DefaultApi.PersonalClientInfoGet(context.Background()).XToken(xToken).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.PersonalClientInfoGet``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `PersonalClientInfoGet`: UserInfo
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.PersonalClientInfoGet`: %v\n", resp)
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiPersonalClientInfoGetRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**xToken** | **string** | Token для особистого доступу до API |
### Return type
[**UserInfo**](UserInfo.md)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## PersonalStatementAccountFromToGet
> []StatementItemsInner PersonalStatementAccountFromToGet(ctx, account, from, to).XToken(xToken).Execute()
Виписка
### Example
```go
package main
import (
"context"
"fmt"
"os"
monobankclient "gitea.stuzer.link/stuzer05/go-monobank"
)
func main() {
xToken := "xToken_example" // string | Token для особистого доступу до API
account := "account_example" // string | Ідентифікатор рахунку або банки з переліків Statement list або 0 - дефолтний рахунок.
from := "1546304461" // string | Початок часу виписки.
to := "1546306461" // string | Останній час виписки (якщо відсутній, буде використовуватись поточний час). (optional)
configuration := monobankclient.NewConfiguration()
apiClient := monobankclient.NewAPIClient(configuration)
resp, r, err := apiClient.DefaultApi.PersonalStatementAccountFromToGet(context.Background(), account, from, to).XToken(xToken).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.PersonalStatementAccountFromToGet``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
// response from `PersonalStatementAccountFromToGet`: []StatementItemsInner
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.PersonalStatementAccountFromToGet`: %v\n", resp)
}
```
### Path Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**account** | **string** | Ідентифікатор рахунку або банки з переліків Statement list або 0 - дефолтний рахунок. |
**from** | **string** | Початок часу виписки. |
**to** | **string** | Останній час виписки (якщо відсутній, буде використовуватись поточний час). |
### Other Parameters
Other parameters are passed through a pointer to a apiPersonalStatementAccountFromToGetRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**xToken** | **string** | Token для особистого доступу до API |
### Return type
[**[]StatementItemsInner**](StatementItemsInner.md)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)
## PersonalWebhookPost
> PersonalWebhookPost(ctx).XToken(xToken).SetWebHook(setWebHook).Execute()
Встановлення WebHook
### Example
```go
package main
import (
"context"
"fmt"
"os"
monobankclient "gitea.stuzer.link/stuzer05/go-monobank"
)
func main() {
xToken := "xToken_example" // string | Token для особистого доступу до API
setWebHook := *monobankclient.NewSetWebHook() // SetWebHook |
configuration := monobankclient.NewConfiguration()
apiClient := monobankclient.NewAPIClient(configuration)
r, err := apiClient.DefaultApi.PersonalWebhookPost(context.Background()).XToken(xToken).SetWebHook(setWebHook).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.PersonalWebhookPost``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
}
}
```
### Path Parameters
### Other Parameters
Other parameters are passed through a pointer to a apiPersonalWebhookPostRequest struct via the builder pattern
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**xToken** | **string** | Token для особистого доступу до API |
**setWebHook** | [**SetWebHook**](SetWebHook.md) | |
### Return type
(empty response body)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints)
[[Back to Model list]](../README.md#documentation-for-models)
[[Back to README]](../README.md)

@ -1,56 +0,0 @@
# Error
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**ErrorDescription** | Pointer to **string** | Текст помилки для кінцевого користувача, для автоматичного оброблення потрібно аналізувати HTTP код відповіді (200, 404, 429 та інші) | [optional]
## Methods
### NewError
`func NewError() *Error`
NewError instantiates a new Error object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewErrorWithDefaults
`func NewErrorWithDefaults() *Error`
NewErrorWithDefaults instantiates a new Error object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetErrorDescription
`func (o *Error) GetErrorDescription() string`
GetErrorDescription returns the ErrorDescription field if non-nil, zero value otherwise.
### GetErrorDescriptionOk
`func (o *Error) GetErrorDescriptionOk() (*string, bool)`
GetErrorDescriptionOk returns a tuple with the ErrorDescription field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetErrorDescription
`func (o *Error) SetErrorDescription(v string)`
SetErrorDescription sets ErrorDescription field to given value.
### HasErrorDescription
`func (o *Error) HasErrorDescription() bool`
HasErrorDescription returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

9
docs/ModelError.md Normal file

@ -0,0 +1,9 @@
# ModelError
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**ErrorDescription** | **string** | Текст помилки для кінцевого користувача, для автоматичного оброблення потрібно аналізувати HTTP код відповіді (200, 404, 429 та інші) | [optional] [default to null]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

@ -1,56 +1,9 @@
# SetWebHook
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**WebHookUrl** | Pointer to **string** | | [optional]
## Methods
### NewSetWebHook
`func NewSetWebHook() *SetWebHook`
NewSetWebHook instantiates a new SetWebHook object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewSetWebHookWithDefaults
`func NewSetWebHookWithDefaults() *SetWebHook`
NewSetWebHookWithDefaults instantiates a new SetWebHook object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetWebHookUrl
`func (o *SetWebHook) GetWebHookUrl() string`
GetWebHookUrl returns the WebHookUrl field if non-nil, zero value otherwise.
### GetWebHookUrlOk
`func (o *SetWebHook) GetWebHookUrlOk() (*string, bool)`
GetWebHookUrlOk returns a tuple with the WebHookUrl field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetWebHookUrl
`func (o *SetWebHook) SetWebHookUrl(v string)`
SetWebHookUrl sets WebHookUrl field to given value.
### HasWebHookUrl
`func (o *SetWebHook) HasWebHookUrl() bool`
HasWebHookUrl returns a boolean if a field has been set.
**WebHookUrl** | **string** | | [optional] [default to null]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

@ -1,498 +1,26 @@
# StatementItemsInner
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | Pointer to **string** | Унікальний id транзакції | [optional]
**Time** | Pointer to **float32** | Час транзакції в секундах в форматі Unix time | [optional]
**Description** | Pointer to **string** | Опис транзакцій | [optional]
**Mcc** | Pointer to **float32** | Код типу транзакції (Merchant Category Code), відповідно ISO 18245 | [optional]
**OriginalMcc** | Pointer to **float32** | Оригінальний код типу транзакції (Merchant Category Code), відповідно ISO 18245 | [optional]
**Hold** | Pointer to **bool** | Статус блокування суми (детальніше у [wiki](https://en.wikipedia.org/wiki/Authorization_hold)) | [optional]
**Amount** | Pointer to **float32** | Сума у валюті рахунку в мінімальних одиницях валюти (копійках, центах) | [optional]
**OperationAmount** | Pointer to **float32** | Сума у валюті транзакції в мінімальних одиницях валюти (копійках, центах) | [optional]
**CurrencyCode** | Pointer to **float32** | Код валюти рахунку відповідно ISO 4217 | [optional]
**CommissionRate** | Pointer to **float32** | Розмір комісії в мінімальних одиницях валюти (копійках, центах) | [optional]
**CashbackAmount** | Pointer to **float32** | Розмір кешбеку в мінімальних одиницях валюти (копійках, центах) | [optional]
**Balance** | Pointer to **float32** | Баланс рахунку в мінімальних одиницях валюти (копійках, центах) | [optional]
**Comment** | Pointer to **string** | Коментар до переказу, уведений користувачем. Якщо не вказаний, поле буде відсутнім | [optional]
**ReceiptId** | Pointer to **string** | Номер квитанції для check.gov.ua. Поле може бути відсутнім | [optional]
**InvoiceId** | Pointer to **string** | Номер квитанції ФОПа, приходить у випадку якщо це операція із зарахуванням коштів | [optional]
**CounterEdrpou** | Pointer to **string** | ЄДРПОУ контрагента, присутній лише для елементів виписки рахунків ФОП | [optional]
**CounterIban** | Pointer to **string** | IBAN контрагента, присутній лише для елементів виписки рахунків ФОП | [optional]
**CounterName** | Pointer to **string** | Найменування контрагента | [optional]
## Methods
### NewStatementItemsInner
`func NewStatementItemsInner() *StatementItemsInner`
NewStatementItemsInner instantiates a new StatementItemsInner object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewStatementItemsInnerWithDefaults
`func NewStatementItemsInnerWithDefaults() *StatementItemsInner`
NewStatementItemsInnerWithDefaults instantiates a new StatementItemsInner object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetId
`func (o *StatementItemsInner) GetId() string`
GetId returns the Id field if non-nil, zero value otherwise.
### GetIdOk
`func (o *StatementItemsInner) GetIdOk() (*string, bool)`
GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetId
`func (o *StatementItemsInner) SetId(v string)`
SetId sets Id field to given value.
### HasId
`func (o *StatementItemsInner) HasId() bool`
HasId returns a boolean if a field has been set.
### GetTime
`func (o *StatementItemsInner) GetTime() float32`
GetTime returns the Time field if non-nil, zero value otherwise.
### GetTimeOk
`func (o *StatementItemsInner) GetTimeOk() (*float32, bool)`
GetTimeOk returns a tuple with the Time field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTime
`func (o *StatementItemsInner) SetTime(v float32)`
SetTime sets Time field to given value.
### HasTime
`func (o *StatementItemsInner) HasTime() bool`
HasTime returns a boolean if a field has been set.
### GetDescription
`func (o *StatementItemsInner) GetDescription() string`
GetDescription returns the Description field if non-nil, zero value otherwise.
### GetDescriptionOk
`func (o *StatementItemsInner) GetDescriptionOk() (*string, bool)`
GetDescriptionOk returns a tuple with the Description field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetDescription
`func (o *StatementItemsInner) SetDescription(v string)`
SetDescription sets Description field to given value.
### HasDescription
`func (o *StatementItemsInner) HasDescription() bool`
HasDescription returns a boolean if a field has been set.
### GetMcc
`func (o *StatementItemsInner) GetMcc() float32`
GetMcc returns the Mcc field if non-nil, zero value otherwise.
### GetMccOk
`func (o *StatementItemsInner) GetMccOk() (*float32, bool)`
GetMccOk returns a tuple with the Mcc field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMcc
`func (o *StatementItemsInner) SetMcc(v float32)`
SetMcc sets Mcc field to given value.
### HasMcc
`func (o *StatementItemsInner) HasMcc() bool`
HasMcc returns a boolean if a field has been set.
### GetOriginalMcc
`func (o *StatementItemsInner) GetOriginalMcc() float32`
GetOriginalMcc returns the OriginalMcc field if non-nil, zero value otherwise.
### GetOriginalMccOk
`func (o *StatementItemsInner) GetOriginalMccOk() (*float32, bool)`
GetOriginalMccOk returns a tuple with the OriginalMcc field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetOriginalMcc
`func (o *StatementItemsInner) SetOriginalMcc(v float32)`
SetOriginalMcc sets OriginalMcc field to given value.
### HasOriginalMcc
`func (o *StatementItemsInner) HasOriginalMcc() bool`
HasOriginalMcc returns a boolean if a field has been set.
### GetHold
`func (o *StatementItemsInner) GetHold() bool`
GetHold returns the Hold field if non-nil, zero value otherwise.
### GetHoldOk
`func (o *StatementItemsInner) GetHoldOk() (*bool, bool)`
GetHoldOk returns a tuple with the Hold field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetHold
`func (o *StatementItemsInner) SetHold(v bool)`
SetHold sets Hold field to given value.
### HasHold
`func (o *StatementItemsInner) HasHold() bool`
HasHold returns a boolean if a field has been set.
### GetAmount
`func (o *StatementItemsInner) GetAmount() float32`
GetAmount returns the Amount field if non-nil, zero value otherwise.
### GetAmountOk
`func (o *StatementItemsInner) GetAmountOk() (*float32, bool)`
GetAmountOk returns a tuple with the Amount field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetAmount
`func (o *StatementItemsInner) SetAmount(v float32)`
SetAmount sets Amount field to given value.
### HasAmount
`func (o *StatementItemsInner) HasAmount() bool`
HasAmount returns a boolean if a field has been set.
### GetOperationAmount
`func (o *StatementItemsInner) GetOperationAmount() float32`
GetOperationAmount returns the OperationAmount field if non-nil, zero value otherwise.
### GetOperationAmountOk
`func (o *StatementItemsInner) GetOperationAmountOk() (*float32, bool)`
GetOperationAmountOk returns a tuple with the OperationAmount field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetOperationAmount
`func (o *StatementItemsInner) SetOperationAmount(v float32)`
SetOperationAmount sets OperationAmount field to given value.
### HasOperationAmount
`func (o *StatementItemsInner) HasOperationAmount() bool`
HasOperationAmount returns a boolean if a field has been set.
### GetCurrencyCode
`func (o *StatementItemsInner) GetCurrencyCode() float32`
GetCurrencyCode returns the CurrencyCode field if non-nil, zero value otherwise.
### GetCurrencyCodeOk
`func (o *StatementItemsInner) GetCurrencyCodeOk() (*float32, bool)`
GetCurrencyCodeOk returns a tuple with the CurrencyCode field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCurrencyCode
`func (o *StatementItemsInner) SetCurrencyCode(v float32)`
SetCurrencyCode sets CurrencyCode field to given value.
### HasCurrencyCode
`func (o *StatementItemsInner) HasCurrencyCode() bool`
HasCurrencyCode returns a boolean if a field has been set.
### GetCommissionRate
`func (o *StatementItemsInner) GetCommissionRate() float32`
GetCommissionRate returns the CommissionRate field if non-nil, zero value otherwise.
### GetCommissionRateOk
`func (o *StatementItemsInner) GetCommissionRateOk() (*float32, bool)`
GetCommissionRateOk returns a tuple with the CommissionRate field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCommissionRate
`func (o *StatementItemsInner) SetCommissionRate(v float32)`
SetCommissionRate sets CommissionRate field to given value.
### HasCommissionRate
`func (o *StatementItemsInner) HasCommissionRate() bool`
HasCommissionRate returns a boolean if a field has been set.
### GetCashbackAmount
`func (o *StatementItemsInner) GetCashbackAmount() float32`
GetCashbackAmount returns the CashbackAmount field if non-nil, zero value otherwise.
### GetCashbackAmountOk
`func (o *StatementItemsInner) GetCashbackAmountOk() (*float32, bool)`
GetCashbackAmountOk returns a tuple with the CashbackAmount field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCashbackAmount
`func (o *StatementItemsInner) SetCashbackAmount(v float32)`
SetCashbackAmount sets CashbackAmount field to given value.
### HasCashbackAmount
`func (o *StatementItemsInner) HasCashbackAmount() bool`
HasCashbackAmount returns a boolean if a field has been set.
### GetBalance
`func (o *StatementItemsInner) GetBalance() float32`
GetBalance returns the Balance field if non-nil, zero value otherwise.
### GetBalanceOk
`func (o *StatementItemsInner) GetBalanceOk() (*float32, bool)`
GetBalanceOk returns a tuple with the Balance field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetBalance
`func (o *StatementItemsInner) SetBalance(v float32)`
SetBalance sets Balance field to given value.
### HasBalance
`func (o *StatementItemsInner) HasBalance() bool`
HasBalance returns a boolean if a field has been set.
### GetComment
`func (o *StatementItemsInner) GetComment() string`
GetComment returns the Comment field if non-nil, zero value otherwise.
### GetCommentOk
`func (o *StatementItemsInner) GetCommentOk() (*string, bool)`
GetCommentOk returns a tuple with the Comment field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetComment
`func (o *StatementItemsInner) SetComment(v string)`
SetComment sets Comment field to given value.
### HasComment
`func (o *StatementItemsInner) HasComment() bool`
HasComment returns a boolean if a field has been set.
### GetReceiptId
`func (o *StatementItemsInner) GetReceiptId() string`
GetReceiptId returns the ReceiptId field if non-nil, zero value otherwise.
### GetReceiptIdOk
`func (o *StatementItemsInner) GetReceiptIdOk() (*string, bool)`
GetReceiptIdOk returns a tuple with the ReceiptId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetReceiptId
`func (o *StatementItemsInner) SetReceiptId(v string)`
SetReceiptId sets ReceiptId field to given value.
### HasReceiptId
`func (o *StatementItemsInner) HasReceiptId() bool`
HasReceiptId returns a boolean if a field has been set.
### GetInvoiceId
`func (o *StatementItemsInner) GetInvoiceId() string`
GetInvoiceId returns the InvoiceId field if non-nil, zero value otherwise.
### GetInvoiceIdOk
`func (o *StatementItemsInner) GetInvoiceIdOk() (*string, bool)`
GetInvoiceIdOk returns a tuple with the InvoiceId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetInvoiceId
`func (o *StatementItemsInner) SetInvoiceId(v string)`
SetInvoiceId sets InvoiceId field to given value.
### HasInvoiceId
`func (o *StatementItemsInner) HasInvoiceId() bool`
HasInvoiceId returns a boolean if a field has been set.
### GetCounterEdrpou
`func (o *StatementItemsInner) GetCounterEdrpou() string`
GetCounterEdrpou returns the CounterEdrpou field if non-nil, zero value otherwise.
### GetCounterEdrpouOk
`func (o *StatementItemsInner) GetCounterEdrpouOk() (*string, bool)`
GetCounterEdrpouOk returns a tuple with the CounterEdrpou field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCounterEdrpou
`func (o *StatementItemsInner) SetCounterEdrpou(v string)`
SetCounterEdrpou sets CounterEdrpou field to given value.
### HasCounterEdrpou
`func (o *StatementItemsInner) HasCounterEdrpou() bool`
HasCounterEdrpou returns a boolean if a field has been set.
### GetCounterIban
`func (o *StatementItemsInner) GetCounterIban() string`
GetCounterIban returns the CounterIban field if non-nil, zero value otherwise.
### GetCounterIbanOk
`func (o *StatementItemsInner) GetCounterIbanOk() (*string, bool)`
GetCounterIbanOk returns a tuple with the CounterIban field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCounterIban
`func (o *StatementItemsInner) SetCounterIban(v string)`
SetCounterIban sets CounterIban field to given value.
### HasCounterIban
`func (o *StatementItemsInner) HasCounterIban() bool`
HasCounterIban returns a boolean if a field has been set.
### GetCounterName
`func (o *StatementItemsInner) GetCounterName() string`
GetCounterName returns the CounterName field if non-nil, zero value otherwise.
### GetCounterNameOk
`func (o *StatementItemsInner) GetCounterNameOk() (*string, bool)`
GetCounterNameOk returns a tuple with the CounterName field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCounterName
`func (o *StatementItemsInner) SetCounterName(v string)`
SetCounterName sets CounterName field to given value.
### HasCounterName
`func (o *StatementItemsInner) HasCounterName() bool`
HasCounterName returns a boolean if a field has been set.
**Id** | **string** | Унікальний id транзакції | [optional] [default to null]
**Time** | **float64** | Час транзакції в секундах в форматі Unix time | [optional] [default to null]
**Description** | **string** | Опис транзакцій | [optional] [default to null]
**Mcc** | **float64** | Код типу транзакції (Merchant Category Code), відповідно ISO 18245 | [optional] [default to null]
**OriginalMcc** | **float64** | Оригінальний код типу транзакції (Merchant Category Code), відповідно ISO 18245 | [optional] [default to null]
**Hold** | **bool** | Статус блокування суми (детальніше у [wiki](https://en.wikipedia.org/wiki/Authorization_hold)) | [optional] [default to null]
**Amount** | **float64** | Сума у валюті рахунку в мінімальних одиницях валюти (копійках, центах) | [optional] [default to null]
**OperationAmount** | **float64** | Сума у валюті транзакції в мінімальних одиницях валюти (копійках, центах) | [optional] [default to null]
**CurrencyCode** | **float64** | Код валюти рахунку відповідно ISO 4217 | [optional] [default to null]
**CommissionRate** | **float64** | Розмір комісії в мінімальних одиницях валюти (копійках, центах) | [optional] [default to null]
**CashbackAmount** | **float64** | Розмір кешбеку в мінімальних одиницях валюти (копійках, центах) | [optional] [default to null]
**Balance** | **float64** | Баланс рахунку в мінімальних одиницях валюти (копійках, центах) | [optional] [default to null]
**Comment** | **string** | Коментар до переказу, уведений користувачем. Якщо не вказаний, поле буде відсутнім | [optional] [default to null]
**ReceiptId** | **string** | Номер квитанції для check.gov.ua. Поле може бути відсутнім | [optional] [default to null]
**InvoiceId** | **string** | Номер квитанції ФОПа, приходить у випадку якщо це операція із зарахуванням коштів | [optional] [default to null]
**CounterEdrpou** | **string** | ЄДРПОУ контрагента, присутній лише для елементів виписки рахунків ФОП | [optional] [default to null]
**CounterIban** | **string** | IBAN контрагента, присутній лише для елементів виписки рахунків ФОП | [optional] [default to null]
**CounterName** | **string** | Найменування контрагента | [optional] [default to null]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

@ -1,186 +1,14 @@
# UserInfo
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**ClientId** | Pointer to **string** | Ідентифікатор клієнта (збігається з id для send.monobank.ua) | [optional]
**Name** | Pointer to **string** | Ім&#39;я клієнта | [optional]
**WebHookUrl** | Pointer to **string** | URL для надсиляння подій по зміні балансу рахунку | [optional]
**Permissions** | Pointer to **string** | Перелік прав, які які надає сервіс (1 літера на 1 permission). | [optional]
**Accounts** | Pointer to [**[]UserInfoAccountsInner**](UserInfoAccountsInner.md) | Перелік доступних рахунків | [optional]
**Jars** | Pointer to [**[]UserInfoJarsInner**](UserInfoJarsInner.md) | Перелік банок | [optional]
## Methods
### NewUserInfo
`func NewUserInfo() *UserInfo`
NewUserInfo instantiates a new UserInfo object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewUserInfoWithDefaults
`func NewUserInfoWithDefaults() *UserInfo`
NewUserInfoWithDefaults instantiates a new UserInfo object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetClientId
`func (o *UserInfo) GetClientId() string`
GetClientId returns the ClientId field if non-nil, zero value otherwise.
### GetClientIdOk
`func (o *UserInfo) GetClientIdOk() (*string, bool)`
GetClientIdOk returns a tuple with the ClientId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetClientId
`func (o *UserInfo) SetClientId(v string)`
SetClientId sets ClientId field to given value.
### HasClientId
`func (o *UserInfo) HasClientId() bool`
HasClientId returns a boolean if a field has been set.
### GetName
`func (o *UserInfo) GetName() string`
GetName returns the Name field if non-nil, zero value otherwise.
### GetNameOk
`func (o *UserInfo) GetNameOk() (*string, bool)`
GetNameOk returns a tuple with the Name field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetName
`func (o *UserInfo) SetName(v string)`
SetName sets Name field to given value.
### HasName
`func (o *UserInfo) HasName() bool`
HasName returns a boolean if a field has been set.
### GetWebHookUrl
`func (o *UserInfo) GetWebHookUrl() string`
GetWebHookUrl returns the WebHookUrl field if non-nil, zero value otherwise.
### GetWebHookUrlOk
`func (o *UserInfo) GetWebHookUrlOk() (*string, bool)`
GetWebHookUrlOk returns a tuple with the WebHookUrl field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetWebHookUrl
`func (o *UserInfo) SetWebHookUrl(v string)`
SetWebHookUrl sets WebHookUrl field to given value.
### HasWebHookUrl
`func (o *UserInfo) HasWebHookUrl() bool`
HasWebHookUrl returns a boolean if a field has been set.
### GetPermissions
`func (o *UserInfo) GetPermissions() string`
GetPermissions returns the Permissions field if non-nil, zero value otherwise.
### GetPermissionsOk
`func (o *UserInfo) GetPermissionsOk() (*string, bool)`
GetPermissionsOk returns a tuple with the Permissions field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetPermissions
`func (o *UserInfo) SetPermissions(v string)`
SetPermissions sets Permissions field to given value.
### HasPermissions
`func (o *UserInfo) HasPermissions() bool`
HasPermissions returns a boolean if a field has been set.
### GetAccounts
`func (o *UserInfo) GetAccounts() []UserInfoAccountsInner`
GetAccounts returns the Accounts field if non-nil, zero value otherwise.
### GetAccountsOk
`func (o *UserInfo) GetAccountsOk() (*[]UserInfoAccountsInner, bool)`
GetAccountsOk returns a tuple with the Accounts field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetAccounts
`func (o *UserInfo) SetAccounts(v []UserInfoAccountsInner)`
SetAccounts sets Accounts field to given value.
### HasAccounts
`func (o *UserInfo) HasAccounts() bool`
HasAccounts returns a boolean if a field has been set.
### GetJars
`func (o *UserInfo) GetJars() []UserInfoJarsInner`
GetJars returns the Jars field if non-nil, zero value otherwise.
### GetJarsOk
`func (o *UserInfo) GetJarsOk() (*[]UserInfoJarsInner, bool)`
GetJarsOk returns a tuple with the Jars field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetJars
`func (o *UserInfo) SetJars(v []UserInfoJarsInner)`
SetJars sets Jars field to given value.
### HasJars
`func (o *UserInfo) HasJars() bool`
HasJars returns a boolean if a field has been set.
**ClientId** | **string** | Ідентифікатор клієнта (збігається з id для send.monobank.ua) | [optional] [default to null]
**Name** | **string** | Ім&#x27;я клієнта | [optional] [default to null]
**WebHookUrl** | **string** | URL для надсиляння подій по зміні балансу рахунку | [optional] [default to null]
**Permissions** | **string** | Перелік прав, які які надає сервіс (1 літера на 1 permission). | [optional] [default to null]
**Accounts** | [**[]UserInfoAccounts**](UserInfo_accounts.md) | Перелік доступних рахунків | [optional] [default to null]
**Jars** | [**[]UserInfoJars**](UserInfo_jars.md) | Перелік банок | [optional] [default to null]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

17
docs/UserInfoAccounts.md Normal file

@ -0,0 +1,17 @@
# UserInfoAccounts
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | **string** | Ідентифікатор рахунку | [optional] [default to null]
**SendId** | **string** | Ідентифікатор для сервісу https://send.monobank.ua/{sendId} | [optional] [default to null]
**Balance** | **float64** | Баланс рахунку в мінімальних одиницях валюти (копійках, центах) | [optional] [default to null]
**CreditLimit** | **float64** | Кредитний ліміт | [optional] [default to null]
**Type_** | **string** | Тип рахунку | [optional] [default to null]
**CurrencyCode** | **float64** | Код валюти рахунку відповідно ISO 4217 | [optional] [default to null]
**CashbackType** | **string** | Тип кешбеку який нараховується на рахунок | [optional] [default to null]
**MaskedPan** | [***Array**](array.md) | Перелік замаскованних номерів карт (більше одного може бути у преміальних карт) | [optional] [default to null]
**Iban** | **string** | IBAN рахунку | [optional] [default to null]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

@ -1,264 +0,0 @@
# UserInfoAccountsInner
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | Pointer to **string** | Ідентифікатор рахунку | [optional]
**SendId** | Pointer to **string** | Ідентифікатор для сервісу https://send.monobank.ua/{sendId} | [optional]
**Balance** | Pointer to **float32** | Баланс рахунку в мінімальних одиницях валюти (копійках, центах) | [optional]
**CreditLimit** | Pointer to **float32** | Кредитний ліміт | [optional]
**Type** | Pointer to **string** | Тип рахунку | [optional]
**CurrencyCode** | Pointer to **float32** | Код валюти рахунку відповідно ISO 4217 | [optional]
**CashbackType** | Pointer to **string** | Тип кешбеку який нараховується на рахунок | [optional]
**MaskedPan** | Pointer to [**Array**](array.md) | Перелік замаскованних номерів карт (більше одного може бути у преміальних карт) | [optional]
**Iban** | Pointer to **string** | IBAN рахунку | [optional]
## Methods
### NewUserInfoAccountsInner
`func NewUserInfoAccountsInner() *UserInfoAccountsInner`
NewUserInfoAccountsInner instantiates a new UserInfoAccountsInner object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewUserInfoAccountsInnerWithDefaults
`func NewUserInfoAccountsInnerWithDefaults() *UserInfoAccountsInner`
NewUserInfoAccountsInnerWithDefaults instantiates a new UserInfoAccountsInner object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetId
`func (o *UserInfoAccountsInner) GetId() string`
GetId returns the Id field if non-nil, zero value otherwise.
### GetIdOk
`func (o *UserInfoAccountsInner) GetIdOk() (*string, bool)`
GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetId
`func (o *UserInfoAccountsInner) SetId(v string)`
SetId sets Id field to given value.
### HasId
`func (o *UserInfoAccountsInner) HasId() bool`
HasId returns a boolean if a field has been set.
### GetSendId
`func (o *UserInfoAccountsInner) GetSendId() string`
GetSendId returns the SendId field if non-nil, zero value otherwise.
### GetSendIdOk
`func (o *UserInfoAccountsInner) GetSendIdOk() (*string, bool)`
GetSendIdOk returns a tuple with the SendId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSendId
`func (o *UserInfoAccountsInner) SetSendId(v string)`
SetSendId sets SendId field to given value.
### HasSendId
`func (o *UserInfoAccountsInner) HasSendId() bool`
HasSendId returns a boolean if a field has been set.
### GetBalance
`func (o *UserInfoAccountsInner) GetBalance() float32`
GetBalance returns the Balance field if non-nil, zero value otherwise.
### GetBalanceOk
`func (o *UserInfoAccountsInner) GetBalanceOk() (*float32, bool)`
GetBalanceOk returns a tuple with the Balance field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetBalance
`func (o *UserInfoAccountsInner) SetBalance(v float32)`
SetBalance sets Balance field to given value.
### HasBalance
`func (o *UserInfoAccountsInner) HasBalance() bool`
HasBalance returns a boolean if a field has been set.
### GetCreditLimit
`func (o *UserInfoAccountsInner) GetCreditLimit() float32`
GetCreditLimit returns the CreditLimit field if non-nil, zero value otherwise.
### GetCreditLimitOk
`func (o *UserInfoAccountsInner) GetCreditLimitOk() (*float32, bool)`
GetCreditLimitOk returns a tuple with the CreditLimit field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCreditLimit
`func (o *UserInfoAccountsInner) SetCreditLimit(v float32)`
SetCreditLimit sets CreditLimit field to given value.
### HasCreditLimit
`func (o *UserInfoAccountsInner) HasCreditLimit() bool`
HasCreditLimit returns a boolean if a field has been set.
### GetType
`func (o *UserInfoAccountsInner) GetType() string`
GetType returns the Type field if non-nil, zero value otherwise.
### GetTypeOk
`func (o *UserInfoAccountsInner) GetTypeOk() (*string, bool)`
GetTypeOk returns a tuple with the Type field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetType
`func (o *UserInfoAccountsInner) SetType(v string)`
SetType sets Type field to given value.
### HasType
`func (o *UserInfoAccountsInner) HasType() bool`
HasType returns a boolean if a field has been set.
### GetCurrencyCode
`func (o *UserInfoAccountsInner) GetCurrencyCode() float32`
GetCurrencyCode returns the CurrencyCode field if non-nil, zero value otherwise.
### GetCurrencyCodeOk
`func (o *UserInfoAccountsInner) GetCurrencyCodeOk() (*float32, bool)`
GetCurrencyCodeOk returns a tuple with the CurrencyCode field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCurrencyCode
`func (o *UserInfoAccountsInner) SetCurrencyCode(v float32)`
SetCurrencyCode sets CurrencyCode field to given value.
### HasCurrencyCode
`func (o *UserInfoAccountsInner) HasCurrencyCode() bool`
HasCurrencyCode returns a boolean if a field has been set.
### GetCashbackType
`func (o *UserInfoAccountsInner) GetCashbackType() string`
GetCashbackType returns the CashbackType field if non-nil, zero value otherwise.
### GetCashbackTypeOk
`func (o *UserInfoAccountsInner) GetCashbackTypeOk() (*string, bool)`
GetCashbackTypeOk returns a tuple with the CashbackType field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCashbackType
`func (o *UserInfoAccountsInner) SetCashbackType(v string)`
SetCashbackType sets CashbackType field to given value.
### HasCashbackType
`func (o *UserInfoAccountsInner) HasCashbackType() bool`
HasCashbackType returns a boolean if a field has been set.
### GetMaskedPan
`func (o *UserInfoAccountsInner) GetMaskedPan() Array`
GetMaskedPan returns the MaskedPan field if non-nil, zero value otherwise.
### GetMaskedPanOk
`func (o *UserInfoAccountsInner) GetMaskedPanOk() (*Array, bool)`
GetMaskedPanOk returns a tuple with the MaskedPan field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetMaskedPan
`func (o *UserInfoAccountsInner) SetMaskedPan(v Array)`
SetMaskedPan sets MaskedPan field to given value.
### HasMaskedPan
`func (o *UserInfoAccountsInner) HasMaskedPan() bool`
HasMaskedPan returns a boolean if a field has been set.
### GetIban
`func (o *UserInfoAccountsInner) GetIban() string`
GetIban returns the Iban field if non-nil, zero value otherwise.
### GetIbanOk
`func (o *UserInfoAccountsInner) GetIbanOk() (*string, bool)`
GetIbanOk returns a tuple with the Iban field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetIban
`func (o *UserInfoAccountsInner) SetIban(v string)`
SetIban sets Iban field to given value.
### HasIban
`func (o *UserInfoAccountsInner) HasIban() bool`
HasIban returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

15
docs/UserInfoJars.md Normal file

@ -0,0 +1,15 @@
# UserInfoJars
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | **string** | Ідентифікатор банки | [optional] [default to null]
**SendId** | **string** | Ідентифікатор для сервісу https://send.monobank.ua/{sendId} | [optional] [default to null]
**Title** | **string** | Назва банки | [optional] [default to null]
**Description** | **string** | Опис банки | [optional] [default to null]
**CurrencyCode** | **float64** | Код валюти банки відповідно ISO 4217 | [optional] [default to null]
**Balance** | **float64** | Баланс банки в мінімальних одиницях валюти (копійках, центах) | [optional] [default to null]
**Goal** | **float64** | Цільова сума для накопичення в банці в мінімальних одиницях валюти (копійках, центах) | [optional] [default to null]
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

@ -1,212 +0,0 @@
# UserInfoJarsInner
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**Id** | Pointer to **string** | Ідентифікатор банки | [optional]
**SendId** | Pointer to **string** | Ідентифікатор для сервісу https://send.monobank.ua/{sendId} | [optional]
**Title** | Pointer to **string** | Назва банки | [optional]
**Description** | Pointer to **string** | Опис банки | [optional]
**CurrencyCode** | Pointer to **float32** | Код валюти банки відповідно ISO 4217 | [optional]
**Balance** | Pointer to **float32** | Баланс банки в мінімальних одиницях валюти (копійках, центах) | [optional]
**Goal** | Pointer to **float32** | Цільова сума для накопичення в банці в мінімальних одиницях валюти (копійках, центах) | [optional]
## Methods
### NewUserInfoJarsInner
`func NewUserInfoJarsInner() *UserInfoJarsInner`
NewUserInfoJarsInner instantiates a new UserInfoJarsInner object
This constructor will assign default values to properties that have it defined,
and makes sure properties required by API are set, but the set of arguments
will change when the set of required properties is changed
### NewUserInfoJarsInnerWithDefaults
`func NewUserInfoJarsInnerWithDefaults() *UserInfoJarsInner`
NewUserInfoJarsInnerWithDefaults instantiates a new UserInfoJarsInner object
This constructor will only assign default values to properties that have it defined,
but it doesn't guarantee that properties required by API are set
### GetId
`func (o *UserInfoJarsInner) GetId() string`
GetId returns the Id field if non-nil, zero value otherwise.
### GetIdOk
`func (o *UserInfoJarsInner) GetIdOk() (*string, bool)`
GetIdOk returns a tuple with the Id field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetId
`func (o *UserInfoJarsInner) SetId(v string)`
SetId sets Id field to given value.
### HasId
`func (o *UserInfoJarsInner) HasId() bool`
HasId returns a boolean if a field has been set.
### GetSendId
`func (o *UserInfoJarsInner) GetSendId() string`
GetSendId returns the SendId field if non-nil, zero value otherwise.
### GetSendIdOk
`func (o *UserInfoJarsInner) GetSendIdOk() (*string, bool)`
GetSendIdOk returns a tuple with the SendId field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetSendId
`func (o *UserInfoJarsInner) SetSendId(v string)`
SetSendId sets SendId field to given value.
### HasSendId
`func (o *UserInfoJarsInner) HasSendId() bool`
HasSendId returns a boolean if a field has been set.
### GetTitle
`func (o *UserInfoJarsInner) GetTitle() string`
GetTitle returns the Title field if non-nil, zero value otherwise.
### GetTitleOk
`func (o *UserInfoJarsInner) GetTitleOk() (*string, bool)`
GetTitleOk returns a tuple with the Title field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetTitle
`func (o *UserInfoJarsInner) SetTitle(v string)`
SetTitle sets Title field to given value.
### HasTitle
`func (o *UserInfoJarsInner) HasTitle() bool`
HasTitle returns a boolean if a field has been set.
### GetDescription
`func (o *UserInfoJarsInner) GetDescription() string`
GetDescription returns the Description field if non-nil, zero value otherwise.
### GetDescriptionOk
`func (o *UserInfoJarsInner) GetDescriptionOk() (*string, bool)`
GetDescriptionOk returns a tuple with the Description field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetDescription
`func (o *UserInfoJarsInner) SetDescription(v string)`
SetDescription sets Description field to given value.
### HasDescription
`func (o *UserInfoJarsInner) HasDescription() bool`
HasDescription returns a boolean if a field has been set.
### GetCurrencyCode
`func (o *UserInfoJarsInner) GetCurrencyCode() float32`
GetCurrencyCode returns the CurrencyCode field if non-nil, zero value otherwise.
### GetCurrencyCodeOk
`func (o *UserInfoJarsInner) GetCurrencyCodeOk() (*float32, bool)`
GetCurrencyCodeOk returns a tuple with the CurrencyCode field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetCurrencyCode
`func (o *UserInfoJarsInner) SetCurrencyCode(v float32)`
SetCurrencyCode sets CurrencyCode field to given value.
### HasCurrencyCode
`func (o *UserInfoJarsInner) HasCurrencyCode() bool`
HasCurrencyCode returns a boolean if a field has been set.
### GetBalance
`func (o *UserInfoJarsInner) GetBalance() float32`
GetBalance returns the Balance field if non-nil, zero value otherwise.
### GetBalanceOk
`func (o *UserInfoJarsInner) GetBalanceOk() (*float32, bool)`
GetBalanceOk returns a tuple with the Balance field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetBalance
`func (o *UserInfoJarsInner) SetBalance(v float32)`
SetBalance sets Balance field to given value.
### HasBalance
`func (o *UserInfoJarsInner) HasBalance() bool`
HasBalance returns a boolean if a field has been set.
### GetGoal
`func (o *UserInfoJarsInner) GetGoal() float32`
GetGoal returns the Goal field if non-nil, zero value otherwise.
### GetGoalOk
`func (o *UserInfoJarsInner) GetGoalOk() (*float32, bool)`
GetGoalOk returns a tuple with the Goal field if it's non-nil, zero value otherwise
and a boolean to check if the value has been set.
### SetGoal
`func (o *UserInfoJarsInner) SetGoal(v float32)`
SetGoal sets Goal field to given value.
### HasGoal
`func (o *UserInfoJarsInner) HasGoal() bool`
HasGoal returns a boolean if a field has been set.
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

123
docs/_Api.md Normal file

@ -0,0 +1,123 @@
# {{classname}}
All URIs are relative to *https://api.monobank.ua*
Method | HTTP request | Description
------------- | ------------- | -------------
[**BankCurrencyGet**](_Api.md#BankCurrencyGet) | **Get** /bank/currency | Отримання курсів валют
[**PersonalClientInfoGet**](_Api.md#PersonalClientInfoGet) | **Get** /personal/client-info | Інформація про клієнта
[**PersonalStatementAccountFromToGet**](_Api.md#PersonalStatementAccountFromToGet) | **Get** /personal/statement/{account}/{from}/{to} | Виписка
[**PersonalWebhookPost**](_Api.md#PersonalWebhookPost) | **Post** /personal/webhook | Встановлення WebHook
# **BankCurrencyGet**
> []CurrencyInfoInner BankCurrencyGet(ctx, )
Отримання курсів валют
Отримати базовий перелік курсів валют monobank. Інформація кешується та оновлюється не частіше 1 разу на 5 хвилин.
### Required Parameters
This endpoint does not need any parameter.
### Return type
[**[]CurrencyInfoInner**](array.md)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **PersonalClientInfoGet**
> UserInfo PersonalClientInfoGet(ctx, xToken)
Інформація про клієнта
Отримання інформації про клієнта та переліку його рахунків і банок. Обмеження на використання функції не частіше ніж 1 раз у 60 секунд.
### Required Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**xToken** | **string**| Token для особистого доступу до API |
### Return type
[**UserInfo**](UserInfo.md)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **PersonalStatementAccountFromToGet**
> []StatementItemsInner PersonalStatementAccountFromToGet(ctx, xToken, account, from, to)
Виписка
Отримання виписки за час від {from} до {to} часу в секундах в форматі Unix time. Максимальний час, за який можливо отримати виписку — 31 доба + 1 година (2682000 секунд). Обмеження на використання функції — не частіше ніж 1 раз на 60 секунд. Повертає 500 транзакцій з кінця, тобто від часу to до from. Якщо кількість транзакцій = 500, потрібно зробити ще один запит, зменшивши час to до часу останнього платежу, з відповіді. Якщо знову кількість транзакцій = 500, то виконуєте запити до того часу, поки кількість транзакцій не буде < 500. Відповідно, якщо кількість транзакцій < 500, то вже отримано всі платежі за вказаний період.
### Required Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**xToken** | **string**| Token для особистого доступу до API |
**account** | **string**| Ідентифікатор рахунку або банки з переліків Statement list або 0 - дефолтний рахунок. |
**from** | **string**| Початок часу виписки. |
**to** | **string**| Останній час виписки (якщо відсутній, буде використовуватись поточний час). |
### Return type
[**[]StatementItemsInner**](array.md)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **PersonalWebhookPost**
> PersonalWebhookPost(ctx, body, xToken)
Встановлення WebHook
Встановлення URL користувача: - Для підтвердження коректності наданої адреси, на неї надсилається GET-запит. Сервер має відповісти строго HTTP статус-кодом 200, і ніяким іншим. Якщо валідацію пройдено, на задану адресу починають надсилатися POST запити з подіями. - Події надсилаються у наступному вигляді: POST запит на задану адресу у форматі `{type:\"StatementItem\", data:{account:\"...\", statementItem:{#StatementItem}}}`. Якщо сервіс користувача не відповість протягом 5с на команду, сервіс повторить спробу ще через 60 та 600 секунд. Якщо на третю спробу відповідь отримана не буде, функція буде вимкнута. Відповідь сервера має строго містити HTTP статус-код 200.
### Required Parameters
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
**body** | [**SetWebHook**](SetWebHook.md)| |
**xToken** | **string**| Token для особистого доступу до API |
### Return type
(empty response body)
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: Not defined
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

68
generate.sh Executable file

@ -0,0 +1,68 @@
#!/bin/bash
swagger_codegen_jar=~/.local/bin/swagger-codegen-cli-3.0.54.jar
swagger_spec="openapi.json"
# download api spec
curl -s "https://api.monobank.ua/docs/index.html" | sed -n 's/.*const __redoc_state = \(.*\);.*/\1/p' | jq .spec.data > $swagger_spec
# rm old files
rm -R\
*.go \
git_push.sh \
README.md \
.swagger-codegen-ignore \
.travis.yml \
docs \
api \
.swagger-codegen
# generate new spec
java -jar "$swagger_codegen_jar" generate -i "$swagger_spec" -l go -o .
# patch code
find . -name "*.go" -exec sed -i 's/package swagger/package monobank/g' {} +
echo "type Array []string" >> configuration.go
find . -type f -name "*.go" -exec sed -i 's/_ApiService/ApiService/g' {} +
cat <<EOF > model_webhook_response.go
package monobank
type WebHookResponse struct {
Type string `json:"type"` // "StatementItem"
Data WebHookResponseData `json:"data"`
}
type WebHookResponseData struct {
Account string `json:"account"`
StatementItem StatementItemsInner `json:"statementItem"`
}
EOF
sed -i 's/_Api \*ApiService/Api \*ApiService/g' client.go
sed -i 's/c\._Api = (\*ApiService)(&c\.common)/c\.Api = (\*ApiService)(\&c\.common)/g' client.go
# format
go fmt .
# fix .gitignore
cat >> .gitignore << EOL
# Editor and IDE files
/.idea/
# Swagger Codegen files
/.swagger-codegen-ignore
/.swagger-codegen/VERSION
/.travis.yml
# Swagger schema files
/$swagger_spec.yaml
EOL
# add info to README.md
sed -i '1i\
[![Go Reference](https://pkg.go.dev/badge/gitea.stuzer.link/stuzer05/go-monobank.svg)](https://pkg.go.dev/gitea.stuzer.link/stuzer05/go-monobank)
' README.md
# sync go dependencies
go mod tidy

@ -1,17 +1,11 @@
#!/bin/sh
# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
#
# Usage example: /bin/sh ./git_push.sh wing328 openapi-petstore-perl "minor update" "gitlab.com"
# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update"
git_user_id=$1
git_repo_id=$2
release_note=$3
git_host=$4
if [ "$git_host" = "" ]; then
git_host="github.com"
echo "[INFO] No command line input provided. Set \$git_host to $git_host"
fi
if [ "$git_user_id" = "" ]; then
git_user_id="GIT_USER_ID"
@ -38,14 +32,14 @@ git add .
git commit -m "$release_note"
# Sets the new remote
git_remote=$(git remote)
git_remote=`git remote`
if [ "$git_remote" = "" ]; then # git remote not defined
if [ "$GIT_TOKEN" = "" ]; then
echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git
else
git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git
git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git
fi
fi
@ -53,5 +47,6 @@ fi
git pull origin master
# Pushes (Forces) the changes in the local repository up to the remote repository
echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git"
git push origin master 2>&1 | grep -v 'To https'

8
go.mod

@ -2,10 +2,4 @@ module gitea.stuzer.link/stuzer05/go-monobank
go 1.18
require github.com/stretchr/testify v1.9.0
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
require golang.org/x/oauth2 v0.20.0

13
go.sum

@ -1,10 +1,3 @@
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo=
golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=

@ -1,309 +1,21 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"encoding/json"
)
// checks if the CurrencyInfoInner type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &CurrencyInfoInner{}
// CurrencyInfoInner struct for CurrencyInfoInner
type CurrencyInfoInner struct {
// Код валюти рахунку відповідно ISO 4217
CurrencyCodeA *float32 `json:"currencyCodeA,omitempty"`
CurrencyCodeA float64 `json:"currencyCodeA,omitempty"`
// Код валюти рахунку відповідно ISO 4217
CurrencyCodeB *float32 `json:"currencyCodeB,omitempty"`
CurrencyCodeB float64 `json:"currencyCodeB,omitempty"`
// Час курсу в секундах в форматі Unix time
Date *float32 `json:"date,omitempty"`
RateSell *float32 `json:"rateSell,omitempty"`
RateBuy *float32 `json:"rateBuy,omitempty"`
RateCross *float32 `json:"rateCross,omitempty"`
Date float64 `json:"date,omitempty"`
RateSell float32 `json:"rateSell,omitempty"`
RateBuy float32 `json:"rateBuy,omitempty"`
RateCross float32 `json:"rateCross,omitempty"`
}
// NewCurrencyInfoInner instantiates a new CurrencyInfoInner object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewCurrencyInfoInner() *CurrencyInfoInner {
this := CurrencyInfoInner{}
return &this
}
// NewCurrencyInfoInnerWithDefaults instantiates a new CurrencyInfoInner object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewCurrencyInfoInnerWithDefaults() *CurrencyInfoInner {
this := CurrencyInfoInner{}
return &this
}
// GetCurrencyCodeA returns the CurrencyCodeA field value if set, zero value otherwise.
func (o *CurrencyInfoInner) GetCurrencyCodeA() float32 {
if o == nil || IsNil(o.CurrencyCodeA) {
var ret float32
return ret
}
return *o.CurrencyCodeA
}
// GetCurrencyCodeAOk returns a tuple with the CurrencyCodeA field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CurrencyInfoInner) GetCurrencyCodeAOk() (*float32, bool) {
if o == nil || IsNil(o.CurrencyCodeA) {
return nil, false
}
return o.CurrencyCodeA, true
}
// HasCurrencyCodeA returns a boolean if a field has been set.
func (o *CurrencyInfoInner) HasCurrencyCodeA() bool {
if o != nil && !IsNil(o.CurrencyCodeA) {
return true
}
return false
}
// SetCurrencyCodeA gets a reference to the given float32 and assigns it to the CurrencyCodeA field.
func (o *CurrencyInfoInner) SetCurrencyCodeA(v float32) {
o.CurrencyCodeA = &v
}
// GetCurrencyCodeB returns the CurrencyCodeB field value if set, zero value otherwise.
func (o *CurrencyInfoInner) GetCurrencyCodeB() float32 {
if o == nil || IsNil(o.CurrencyCodeB) {
var ret float32
return ret
}
return *o.CurrencyCodeB
}
// GetCurrencyCodeBOk returns a tuple with the CurrencyCodeB field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CurrencyInfoInner) GetCurrencyCodeBOk() (*float32, bool) {
if o == nil || IsNil(o.CurrencyCodeB) {
return nil, false
}
return o.CurrencyCodeB, true
}
// HasCurrencyCodeB returns a boolean if a field has been set.
func (o *CurrencyInfoInner) HasCurrencyCodeB() bool {
if o != nil && !IsNil(o.CurrencyCodeB) {
return true
}
return false
}
// SetCurrencyCodeB gets a reference to the given float32 and assigns it to the CurrencyCodeB field.
func (o *CurrencyInfoInner) SetCurrencyCodeB(v float32) {
o.CurrencyCodeB = &v
}
// GetDate returns the Date field value if set, zero value otherwise.
func (o *CurrencyInfoInner) GetDate() float32 {
if o == nil || IsNil(o.Date) {
var ret float32
return ret
}
return *o.Date
}
// GetDateOk returns a tuple with the Date field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CurrencyInfoInner) GetDateOk() (*float32, bool) {
if o == nil || IsNil(o.Date) {
return nil, false
}
return o.Date, true
}
// HasDate returns a boolean if a field has been set.
func (o *CurrencyInfoInner) HasDate() bool {
if o != nil && !IsNil(o.Date) {
return true
}
return false
}
// SetDate gets a reference to the given float32 and assigns it to the Date field.
func (o *CurrencyInfoInner) SetDate(v float32) {
o.Date = &v
}
// GetRateSell returns the RateSell field value if set, zero value otherwise.
func (o *CurrencyInfoInner) GetRateSell() float32 {
if o == nil || IsNil(o.RateSell) {
var ret float32
return ret
}
return *o.RateSell
}
// GetRateSellOk returns a tuple with the RateSell field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CurrencyInfoInner) GetRateSellOk() (*float32, bool) {
if o == nil || IsNil(o.RateSell) {
return nil, false
}
return o.RateSell, true
}
// HasRateSell returns a boolean if a field has been set.
func (o *CurrencyInfoInner) HasRateSell() bool {
if o != nil && !IsNil(o.RateSell) {
return true
}
return false
}
// SetRateSell gets a reference to the given float32 and assigns it to the RateSell field.
func (o *CurrencyInfoInner) SetRateSell(v float32) {
o.RateSell = &v
}
// GetRateBuy returns the RateBuy field value if set, zero value otherwise.
func (o *CurrencyInfoInner) GetRateBuy() float32 {
if o == nil || IsNil(o.RateBuy) {
var ret float32
return ret
}
return *o.RateBuy
}
// GetRateBuyOk returns a tuple with the RateBuy field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CurrencyInfoInner) GetRateBuyOk() (*float32, bool) {
if o == nil || IsNil(o.RateBuy) {
return nil, false
}
return o.RateBuy, true
}
// HasRateBuy returns a boolean if a field has been set.
func (o *CurrencyInfoInner) HasRateBuy() bool {
if o != nil && !IsNil(o.RateBuy) {
return true
}
return false
}
// SetRateBuy gets a reference to the given float32 and assigns it to the RateBuy field.
func (o *CurrencyInfoInner) SetRateBuy(v float32) {
o.RateBuy = &v
}
// GetRateCross returns the RateCross field value if set, zero value otherwise.
func (o *CurrencyInfoInner) GetRateCross() float32 {
if o == nil || IsNil(o.RateCross) {
var ret float32
return ret
}
return *o.RateCross
}
// GetRateCrossOk returns a tuple with the RateCross field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *CurrencyInfoInner) GetRateCrossOk() (*float32, bool) {
if o == nil || IsNil(o.RateCross) {
return nil, false
}
return o.RateCross, true
}
// HasRateCross returns a boolean if a field has been set.
func (o *CurrencyInfoInner) HasRateCross() bool {
if o != nil && !IsNil(o.RateCross) {
return true
}
return false
}
// SetRateCross gets a reference to the given float32 and assigns it to the RateCross field.
func (o *CurrencyInfoInner) SetRateCross(v float32) {
o.RateCross = &v
}
func (o CurrencyInfoInner) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o CurrencyInfoInner) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if !IsNil(o.CurrencyCodeA) {
toSerialize["currencyCodeA"] = o.CurrencyCodeA
}
if !IsNil(o.CurrencyCodeB) {
toSerialize["currencyCodeB"] = o.CurrencyCodeB
}
if !IsNil(o.Date) {
toSerialize["date"] = o.Date
}
if !IsNil(o.RateSell) {
toSerialize["rateSell"] = o.RateSell
}
if !IsNil(o.RateBuy) {
toSerialize["rateBuy"] = o.RateBuy
}
if !IsNil(o.RateCross) {
toSerialize["rateCross"] = o.RateCross
}
return toSerialize, nil
}
type NullableCurrencyInfoInner struct {
value *CurrencyInfoInner
isSet bool
}
func (v NullableCurrencyInfoInner) Get() *CurrencyInfoInner {
return v.value
}
func (v *NullableCurrencyInfoInner) Set(val *CurrencyInfoInner) {
v.value = val
v.isSet = true
}
func (v NullableCurrencyInfoInner) IsSet() bool {
return v.isSet
}
func (v *NullableCurrencyInfoInner) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableCurrencyInfoInner(val *CurrencyInfoInner) *NullableCurrencyInfoInner {
return &NullableCurrencyInfoInner{value: val, isSet: true}
}
func (v NullableCurrencyInfoInner) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableCurrencyInfoInner) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

@ -1,127 +1,14 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"encoding/json"
)
// checks if the Error type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &Error{}
// Error struct for Error
type Error struct {
type ModelError struct {
// Текст помилки для кінцевого користувача, для автоматичного оброблення потрібно аналізувати HTTP код відповіді (200, 404, 429 та інші)
ErrorDescription *string `json:"errorDescription,omitempty"`
ErrorDescription string `json:"errorDescription,omitempty"`
}
// NewError instantiates a new Error object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewError() *Error {
this := Error{}
return &this
}
// NewErrorWithDefaults instantiates a new Error object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewErrorWithDefaults() *Error {
this := Error{}
return &this
}
// GetErrorDescription returns the ErrorDescription field value if set, zero value otherwise.
func (o *Error) GetErrorDescription() string {
if o == nil || IsNil(o.ErrorDescription) {
var ret string
return ret
}
return *o.ErrorDescription
}
// GetErrorDescriptionOk returns a tuple with the ErrorDescription field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *Error) GetErrorDescriptionOk() (*string, bool) {
if o == nil || IsNil(o.ErrorDescription) {
return nil, false
}
return o.ErrorDescription, true
}
// HasErrorDescription returns a boolean if a field has been set.
func (o *Error) HasErrorDescription() bool {
if o != nil && !IsNil(o.ErrorDescription) {
return true
}
return false
}
// SetErrorDescription gets a reference to the given string and assigns it to the ErrorDescription field.
func (o *Error) SetErrorDescription(v string) {
o.ErrorDescription = &v
}
func (o Error) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o Error) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if !IsNil(o.ErrorDescription) {
toSerialize["errorDescription"] = o.ErrorDescription
}
return toSerialize, nil
}
type NullableError struct {
value *Error
isSet bool
}
func (v NullableError) Get() *Error {
return v.value
}
func (v *NullableError) Set(val *Error) {
v.value = val
v.isSet = true
}
func (v NullableError) IsSet() bool {
return v.isSet
}
func (v *NullableError) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableError(val *Error) *NullableError {
return &NullableError{value: val, isSet: true}
}
func (v NullableError) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableError) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

@ -1,126 +1,14 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"encoding/json"
)
// checks if the SetWebHook type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &SetWebHook{}
// SetWebHook URL для надсиляння подій по зміні балансу рахунків фізичних осіб, ФОП та банок
// URL для надсиляння подій по зміні балансу рахунків фізичних осіб, ФОП та банок
type SetWebHook struct {
WebHookUrl *string `json:"webHookUrl,omitempty"`
WebHookUrl string `json:"webHookUrl,omitempty"`
}
// NewSetWebHook instantiates a new SetWebHook object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewSetWebHook() *SetWebHook {
this := SetWebHook{}
return &this
}
// NewSetWebHookWithDefaults instantiates a new SetWebHook object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewSetWebHookWithDefaults() *SetWebHook {
this := SetWebHook{}
return &this
}
// GetWebHookUrl returns the WebHookUrl field value if set, zero value otherwise.
func (o *SetWebHook) GetWebHookUrl() string {
if o == nil || IsNil(o.WebHookUrl) {
var ret string
return ret
}
return *o.WebHookUrl
}
// GetWebHookUrlOk returns a tuple with the WebHookUrl field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *SetWebHook) GetWebHookUrlOk() (*string, bool) {
if o == nil || IsNil(o.WebHookUrl) {
return nil, false
}
return o.WebHookUrl, true
}
// HasWebHookUrl returns a boolean if a field has been set.
func (o *SetWebHook) HasWebHookUrl() bool {
if o != nil && !IsNil(o.WebHookUrl) {
return true
}
return false
}
// SetWebHookUrl gets a reference to the given string and assigns it to the WebHookUrl field.
func (o *SetWebHook) SetWebHookUrl(v string) {
o.WebHookUrl = &v
}
func (o SetWebHook) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o SetWebHook) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if !IsNil(o.WebHookUrl) {
toSerialize["webHookUrl"] = o.WebHookUrl
}
return toSerialize, nil
}
type NullableSetWebHook struct {
value *SetWebHook
isSet bool
}
func (v NullableSetWebHook) Get() *SetWebHook {
return v.value
}
func (v *NullableSetWebHook) Set(val *SetWebHook) {
v.value = val
v.isSet = true
}
func (v NullableSetWebHook) IsSet() bool {
return v.isSet
}
func (v *NullableSetWebHook) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableSetWebHook(val *SetWebHook) *NullableSetWebHook {
return &NullableSetWebHook{value: val, isSet: true}
}
func (v NullableSetWebHook) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableSetWebHook) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

@ -1,756 +1,48 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"encoding/json"
)
// checks if the StatementItemsInner type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &StatementItemsInner{}
// StatementItemsInner struct for StatementItemsInner
type StatementItemsInner struct {
// Унікальний id транзакції
Id *string `json:"id,omitempty"`
Id string `json:"id,omitempty"`
// Час транзакції в секундах в форматі Unix time
Time *float32 `json:"time,omitempty"`
Time float64 `json:"time,omitempty"`
// Опис транзакцій
Description *string `json:"description,omitempty"`
Description string `json:"description,omitempty"`
// Код типу транзакції (Merchant Category Code), відповідно ISO 18245
Mcc *float32 `json:"mcc,omitempty"`
Mcc float64 `json:"mcc,omitempty"`
// Оригінальний код типу транзакції (Merchant Category Code), відповідно ISO 18245
OriginalMcc *float32 `json:"originalMcc,omitempty"`
OriginalMcc float64 `json:"originalMcc,omitempty"`
// Статус блокування суми (детальніше у [wiki](https://en.wikipedia.org/wiki/Authorization_hold))
Hold *bool `json:"hold,omitempty"`
Hold bool `json:"hold,omitempty"`
// Сума у валюті рахунку в мінімальних одиницях валюти (копійках, центах)
Amount *float32 `json:"amount,omitempty"`
Amount float64 `json:"amount,omitempty"`
// Сума у валюті транзакції в мінімальних одиницях валюти (копійках, центах)
OperationAmount *float32 `json:"operationAmount,omitempty"`
OperationAmount float64 `json:"operationAmount,omitempty"`
// Код валюти рахунку відповідно ISO 4217
CurrencyCode *float32 `json:"currencyCode,omitempty"`
CurrencyCode float64 `json:"currencyCode,omitempty"`
// Розмір комісії в мінімальних одиницях валюти (копійках, центах)
CommissionRate *float32 `json:"commissionRate,omitempty"`
CommissionRate float64 `json:"commissionRate,omitempty"`
// Розмір кешбеку в мінімальних одиницях валюти (копійках, центах)
CashbackAmount *float32 `json:"cashbackAmount,omitempty"`
CashbackAmount float64 `json:"cashbackAmount,omitempty"`
// Баланс рахунку в мінімальних одиницях валюти (копійках, центах)
Balance *float32 `json:"balance,omitempty"`
Balance float64 `json:"balance,omitempty"`
// Коментар до переказу, уведений користувачем. Якщо не вказаний, поле буде відсутнім
Comment *string `json:"comment,omitempty"`
Comment string `json:"comment,omitempty"`
// Номер квитанції для check.gov.ua. Поле може бути відсутнім
ReceiptId *string `json:"receiptId,omitempty"`
ReceiptId string `json:"receiptId,omitempty"`
// Номер квитанції ФОПа, приходить у випадку якщо це операція із зарахуванням коштів
InvoiceId *string `json:"invoiceId,omitempty"`
InvoiceId string `json:"invoiceId,omitempty"`
// ЄДРПОУ контрагента, присутній лише для елементів виписки рахунків ФОП
CounterEdrpou *string `json:"counterEdrpou,omitempty"`
CounterEdrpou string `json:"counterEdrpou,omitempty"`
// IBAN контрагента, присутній лише для елементів виписки рахунків ФОП
CounterIban *string `json:"counterIban,omitempty"`
CounterIban string `json:"counterIban,omitempty"`
// Найменування контрагента
CounterName *string `json:"counterName,omitempty"`
CounterName string `json:"counterName,omitempty"`
}
// NewStatementItemsInner instantiates a new StatementItemsInner object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewStatementItemsInner() *StatementItemsInner {
this := StatementItemsInner{}
return &this
}
// NewStatementItemsInnerWithDefaults instantiates a new StatementItemsInner object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewStatementItemsInnerWithDefaults() *StatementItemsInner {
this := StatementItemsInner{}
return &this
}
// GetId returns the Id field value if set, zero value otherwise.
func (o *StatementItemsInner) GetId() string {
if o == nil || IsNil(o.Id) {
var ret string
return ret
}
return *o.Id
}
// GetIdOk returns a tuple with the Id field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetIdOk() (*string, bool) {
if o == nil || IsNil(o.Id) {
return nil, false
}
return o.Id, true
}
// HasId returns a boolean if a field has been set.
func (o *StatementItemsInner) HasId() bool {
if o != nil && !IsNil(o.Id) {
return true
}
return false
}
// SetId gets a reference to the given string and assigns it to the Id field.
func (o *StatementItemsInner) SetId(v string) {
o.Id = &v
}
// GetTime returns the Time field value if set, zero value otherwise.
func (o *StatementItemsInner) GetTime() float32 {
if o == nil || IsNil(o.Time) {
var ret float32
return ret
}
return *o.Time
}
// GetTimeOk returns a tuple with the Time field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetTimeOk() (*float32, bool) {
if o == nil || IsNil(o.Time) {
return nil, false
}
return o.Time, true
}
// HasTime returns a boolean if a field has been set.
func (o *StatementItemsInner) HasTime() bool {
if o != nil && !IsNil(o.Time) {
return true
}
return false
}
// SetTime gets a reference to the given float32 and assigns it to the Time field.
func (o *StatementItemsInner) SetTime(v float32) {
o.Time = &v
}
// GetDescription returns the Description field value if set, zero value otherwise.
func (o *StatementItemsInner) GetDescription() string {
if o == nil || IsNil(o.Description) {
var ret string
return ret
}
return *o.Description
}
// GetDescriptionOk returns a tuple with the Description field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetDescriptionOk() (*string, bool) {
if o == nil || IsNil(o.Description) {
return nil, false
}
return o.Description, true
}
// HasDescription returns a boolean if a field has been set.
func (o *StatementItemsInner) HasDescription() bool {
if o != nil && !IsNil(o.Description) {
return true
}
return false
}
// SetDescription gets a reference to the given string and assigns it to the Description field.
func (o *StatementItemsInner) SetDescription(v string) {
o.Description = &v
}
// GetMcc returns the Mcc field value if set, zero value otherwise.
func (o *StatementItemsInner) GetMcc() float32 {
if o == nil || IsNil(o.Mcc) {
var ret float32
return ret
}
return *o.Mcc
}
// GetMccOk returns a tuple with the Mcc field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetMccOk() (*float32, bool) {
if o == nil || IsNil(o.Mcc) {
return nil, false
}
return o.Mcc, true
}
// HasMcc returns a boolean if a field has been set.
func (o *StatementItemsInner) HasMcc() bool {
if o != nil && !IsNil(o.Mcc) {
return true
}
return false
}
// SetMcc gets a reference to the given float32 and assigns it to the Mcc field.
func (o *StatementItemsInner) SetMcc(v float32) {
o.Mcc = &v
}
// GetOriginalMcc returns the OriginalMcc field value if set, zero value otherwise.
func (o *StatementItemsInner) GetOriginalMcc() float32 {
if o == nil || IsNil(o.OriginalMcc) {
var ret float32
return ret
}
return *o.OriginalMcc
}
// GetOriginalMccOk returns a tuple with the OriginalMcc field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetOriginalMccOk() (*float32, bool) {
if o == nil || IsNil(o.OriginalMcc) {
return nil, false
}
return o.OriginalMcc, true
}
// HasOriginalMcc returns a boolean if a field has been set.
func (o *StatementItemsInner) HasOriginalMcc() bool {
if o != nil && !IsNil(o.OriginalMcc) {
return true
}
return false
}
// SetOriginalMcc gets a reference to the given float32 and assigns it to the OriginalMcc field.
func (o *StatementItemsInner) SetOriginalMcc(v float32) {
o.OriginalMcc = &v
}
// GetHold returns the Hold field value if set, zero value otherwise.
func (o *StatementItemsInner) GetHold() bool {
if o == nil || IsNil(o.Hold) {
var ret bool
return ret
}
return *o.Hold
}
// GetHoldOk returns a tuple with the Hold field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetHoldOk() (*bool, bool) {
if o == nil || IsNil(o.Hold) {
return nil, false
}
return o.Hold, true
}
// HasHold returns a boolean if a field has been set.
func (o *StatementItemsInner) HasHold() bool {
if o != nil && !IsNil(o.Hold) {
return true
}
return false
}
// SetHold gets a reference to the given bool and assigns it to the Hold field.
func (o *StatementItemsInner) SetHold(v bool) {
o.Hold = &v
}
// GetAmount returns the Amount field value if set, zero value otherwise.
func (o *StatementItemsInner) GetAmount() float32 {
if o == nil || IsNil(o.Amount) {
var ret float32
return ret
}
return *o.Amount
}
// GetAmountOk returns a tuple with the Amount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetAmountOk() (*float32, bool) {
if o == nil || IsNil(o.Amount) {
return nil, false
}
return o.Amount, true
}
// HasAmount returns a boolean if a field has been set.
func (o *StatementItemsInner) HasAmount() bool {
if o != nil && !IsNil(o.Amount) {
return true
}
return false
}
// SetAmount gets a reference to the given float32 and assigns it to the Amount field.
func (o *StatementItemsInner) SetAmount(v float32) {
o.Amount = &v
}
// GetOperationAmount returns the OperationAmount field value if set, zero value otherwise.
func (o *StatementItemsInner) GetOperationAmount() float32 {
if o == nil || IsNil(o.OperationAmount) {
var ret float32
return ret
}
return *o.OperationAmount
}
// GetOperationAmountOk returns a tuple with the OperationAmount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetOperationAmountOk() (*float32, bool) {
if o == nil || IsNil(o.OperationAmount) {
return nil, false
}
return o.OperationAmount, true
}
// HasOperationAmount returns a boolean if a field has been set.
func (o *StatementItemsInner) HasOperationAmount() bool {
if o != nil && !IsNil(o.OperationAmount) {
return true
}
return false
}
// SetOperationAmount gets a reference to the given float32 and assigns it to the OperationAmount field.
func (o *StatementItemsInner) SetOperationAmount(v float32) {
o.OperationAmount = &v
}
// GetCurrencyCode returns the CurrencyCode field value if set, zero value otherwise.
func (o *StatementItemsInner) GetCurrencyCode() float32 {
if o == nil || IsNil(o.CurrencyCode) {
var ret float32
return ret
}
return *o.CurrencyCode
}
// GetCurrencyCodeOk returns a tuple with the CurrencyCode field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetCurrencyCodeOk() (*float32, bool) {
if o == nil || IsNil(o.CurrencyCode) {
return nil, false
}
return o.CurrencyCode, true
}
// HasCurrencyCode returns a boolean if a field has been set.
func (o *StatementItemsInner) HasCurrencyCode() bool {
if o != nil && !IsNil(o.CurrencyCode) {
return true
}
return false
}
// SetCurrencyCode gets a reference to the given float32 and assigns it to the CurrencyCode field.
func (o *StatementItemsInner) SetCurrencyCode(v float32) {
o.CurrencyCode = &v
}
// GetCommissionRate returns the CommissionRate field value if set, zero value otherwise.
func (o *StatementItemsInner) GetCommissionRate() float32 {
if o == nil || IsNil(o.CommissionRate) {
var ret float32
return ret
}
return *o.CommissionRate
}
// GetCommissionRateOk returns a tuple with the CommissionRate field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetCommissionRateOk() (*float32, bool) {
if o == nil || IsNil(o.CommissionRate) {
return nil, false
}
return o.CommissionRate, true
}
// HasCommissionRate returns a boolean if a field has been set.
func (o *StatementItemsInner) HasCommissionRate() bool {
if o != nil && !IsNil(o.CommissionRate) {
return true
}
return false
}
// SetCommissionRate gets a reference to the given float32 and assigns it to the CommissionRate field.
func (o *StatementItemsInner) SetCommissionRate(v float32) {
o.CommissionRate = &v
}
// GetCashbackAmount returns the CashbackAmount field value if set, zero value otherwise.
func (o *StatementItemsInner) GetCashbackAmount() float32 {
if o == nil || IsNil(o.CashbackAmount) {
var ret float32
return ret
}
return *o.CashbackAmount
}
// GetCashbackAmountOk returns a tuple with the CashbackAmount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetCashbackAmountOk() (*float32, bool) {
if o == nil || IsNil(o.CashbackAmount) {
return nil, false
}
return o.CashbackAmount, true
}
// HasCashbackAmount returns a boolean if a field has been set.
func (o *StatementItemsInner) HasCashbackAmount() bool {
if o != nil && !IsNil(o.CashbackAmount) {
return true
}
return false
}
// SetCashbackAmount gets a reference to the given float32 and assigns it to the CashbackAmount field.
func (o *StatementItemsInner) SetCashbackAmount(v float32) {
o.CashbackAmount = &v
}
// GetBalance returns the Balance field value if set, zero value otherwise.
func (o *StatementItemsInner) GetBalance() float32 {
if o == nil || IsNil(o.Balance) {
var ret float32
return ret
}
return *o.Balance
}
// GetBalanceOk returns a tuple with the Balance field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetBalanceOk() (*float32, bool) {
if o == nil || IsNil(o.Balance) {
return nil, false
}
return o.Balance, true
}
// HasBalance returns a boolean if a field has been set.
func (o *StatementItemsInner) HasBalance() bool {
if o != nil && !IsNil(o.Balance) {
return true
}
return false
}
// SetBalance gets a reference to the given float32 and assigns it to the Balance field.
func (o *StatementItemsInner) SetBalance(v float32) {
o.Balance = &v
}
// GetComment returns the Comment field value if set, zero value otherwise.
func (o *StatementItemsInner) GetComment() string {
if o == nil || IsNil(o.Comment) {
var ret string
return ret
}
return *o.Comment
}
// GetCommentOk returns a tuple with the Comment field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetCommentOk() (*string, bool) {
if o == nil || IsNil(o.Comment) {
return nil, false
}
return o.Comment, true
}
// HasComment returns a boolean if a field has been set.
func (o *StatementItemsInner) HasComment() bool {
if o != nil && !IsNil(o.Comment) {
return true
}
return false
}
// SetComment gets a reference to the given string and assigns it to the Comment field.
func (o *StatementItemsInner) SetComment(v string) {
o.Comment = &v
}
// GetReceiptId returns the ReceiptId field value if set, zero value otherwise.
func (o *StatementItemsInner) GetReceiptId() string {
if o == nil || IsNil(o.ReceiptId) {
var ret string
return ret
}
return *o.ReceiptId
}
// GetReceiptIdOk returns a tuple with the ReceiptId field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetReceiptIdOk() (*string, bool) {
if o == nil || IsNil(o.ReceiptId) {
return nil, false
}
return o.ReceiptId, true
}
// HasReceiptId returns a boolean if a field has been set.
func (o *StatementItemsInner) HasReceiptId() bool {
if o != nil && !IsNil(o.ReceiptId) {
return true
}
return false
}
// SetReceiptId gets a reference to the given string and assigns it to the ReceiptId field.
func (o *StatementItemsInner) SetReceiptId(v string) {
o.ReceiptId = &v
}
// GetInvoiceId returns the InvoiceId field value if set, zero value otherwise.
func (o *StatementItemsInner) GetInvoiceId() string {
if o == nil || IsNil(o.InvoiceId) {
var ret string
return ret
}
return *o.InvoiceId
}
// GetInvoiceIdOk returns a tuple with the InvoiceId field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetInvoiceIdOk() (*string, bool) {
if o == nil || IsNil(o.InvoiceId) {
return nil, false
}
return o.InvoiceId, true
}
// HasInvoiceId returns a boolean if a field has been set.
func (o *StatementItemsInner) HasInvoiceId() bool {
if o != nil && !IsNil(o.InvoiceId) {
return true
}
return false
}
// SetInvoiceId gets a reference to the given string and assigns it to the InvoiceId field.
func (o *StatementItemsInner) SetInvoiceId(v string) {
o.InvoiceId = &v
}
// GetCounterEdrpou returns the CounterEdrpou field value if set, zero value otherwise.
func (o *StatementItemsInner) GetCounterEdrpou() string {
if o == nil || IsNil(o.CounterEdrpou) {
var ret string
return ret
}
return *o.CounterEdrpou
}
// GetCounterEdrpouOk returns a tuple with the CounterEdrpou field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetCounterEdrpouOk() (*string, bool) {
if o == nil || IsNil(o.CounterEdrpou) {
return nil, false
}
return o.CounterEdrpou, true
}
// HasCounterEdrpou returns a boolean if a field has been set.
func (o *StatementItemsInner) HasCounterEdrpou() bool {
if o != nil && !IsNil(o.CounterEdrpou) {
return true
}
return false
}
// SetCounterEdrpou gets a reference to the given string and assigns it to the CounterEdrpou field.
func (o *StatementItemsInner) SetCounterEdrpou(v string) {
o.CounterEdrpou = &v
}
// GetCounterIban returns the CounterIban field value if set, zero value otherwise.
func (o *StatementItemsInner) GetCounterIban() string {
if o == nil || IsNil(o.CounterIban) {
var ret string
return ret
}
return *o.CounterIban
}
// GetCounterIbanOk returns a tuple with the CounterIban field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetCounterIbanOk() (*string, bool) {
if o == nil || IsNil(o.CounterIban) {
return nil, false
}
return o.CounterIban, true
}
// HasCounterIban returns a boolean if a field has been set.
func (o *StatementItemsInner) HasCounterIban() bool {
if o != nil && !IsNil(o.CounterIban) {
return true
}
return false
}
// SetCounterIban gets a reference to the given string and assigns it to the CounterIban field.
func (o *StatementItemsInner) SetCounterIban(v string) {
o.CounterIban = &v
}
// GetCounterName returns the CounterName field value if set, zero value otherwise.
func (o *StatementItemsInner) GetCounterName() string {
if o == nil || IsNil(o.CounterName) {
var ret string
return ret
}
return *o.CounterName
}
// GetCounterNameOk returns a tuple with the CounterName field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *StatementItemsInner) GetCounterNameOk() (*string, bool) {
if o == nil || IsNil(o.CounterName) {
return nil, false
}
return o.CounterName, true
}
// HasCounterName returns a boolean if a field has been set.
func (o *StatementItemsInner) HasCounterName() bool {
if o != nil && !IsNil(o.CounterName) {
return true
}
return false
}
// SetCounterName gets a reference to the given string and assigns it to the CounterName field.
func (o *StatementItemsInner) SetCounterName(v string) {
o.CounterName = &v
}
func (o StatementItemsInner) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o StatementItemsInner) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if !IsNil(o.Id) {
toSerialize["id"] = o.Id
}
if !IsNil(o.Time) {
toSerialize["time"] = o.Time
}
if !IsNil(o.Description) {
toSerialize["description"] = o.Description
}
if !IsNil(o.Mcc) {
toSerialize["mcc"] = o.Mcc
}
if !IsNil(o.OriginalMcc) {
toSerialize["originalMcc"] = o.OriginalMcc
}
if !IsNil(o.Hold) {
toSerialize["hold"] = o.Hold
}
if !IsNil(o.Amount) {
toSerialize["amount"] = o.Amount
}
if !IsNil(o.OperationAmount) {
toSerialize["operationAmount"] = o.OperationAmount
}
if !IsNil(o.CurrencyCode) {
toSerialize["currencyCode"] = o.CurrencyCode
}
if !IsNil(o.CommissionRate) {
toSerialize["commissionRate"] = o.CommissionRate
}
if !IsNil(o.CashbackAmount) {
toSerialize["cashbackAmount"] = o.CashbackAmount
}
if !IsNil(o.Balance) {
toSerialize["balance"] = o.Balance
}
if !IsNil(o.Comment) {
toSerialize["comment"] = o.Comment
}
if !IsNil(o.ReceiptId) {
toSerialize["receiptId"] = o.ReceiptId
}
if !IsNil(o.InvoiceId) {
toSerialize["invoiceId"] = o.InvoiceId
}
if !IsNil(o.CounterEdrpou) {
toSerialize["counterEdrpou"] = o.CounterEdrpou
}
if !IsNil(o.CounterIban) {
toSerialize["counterIban"] = o.CounterIban
}
if !IsNil(o.CounterName) {
toSerialize["counterName"] = o.CounterName
}
return toSerialize, nil
}
type NullableStatementItemsInner struct {
value *StatementItemsInner
isSet bool
}
func (v NullableStatementItemsInner) Get() *StatementItemsInner {
return v.value
}
func (v *NullableStatementItemsInner) Set(val *StatementItemsInner) {
v.value = val
v.isSet = true
}
func (v NullableStatementItemsInner) IsSet() bool {
return v.isSet
}
func (v *NullableStatementItemsInner) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableStatementItemsInner(val *StatementItemsInner) *NullableStatementItemsInner {
return &NullableStatementItemsInner{value: val, isSet: true}
}
func (v NullableStatementItemsInner) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableStatementItemsInner) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

@ -1,312 +1,25 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"encoding/json"
)
// checks if the UserInfo type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &UserInfo{}
// UserInfo Опис клієнта та його рахунків і банок.
// Опис клієнта та його рахунків і банок.
type UserInfo struct {
// Ідентифікатор клієнта (збігається з id для send.monobank.ua)
ClientId *string `json:"clientId,omitempty"`
ClientId string `json:"clientId,omitempty"`
// Ім'я клієнта
Name *string `json:"name,omitempty"`
Name string `json:"name,omitempty"`
// URL для надсиляння подій по зміні балансу рахунку
WebHookUrl *string `json:"webHookUrl,omitempty"`
WebHookUrl string `json:"webHookUrl,omitempty"`
// Перелік прав, які які надає сервіс (1 літера на 1 permission).
Permissions *string `json:"permissions,omitempty"`
Permissions string `json:"permissions,omitempty"`
// Перелік доступних рахунків
Accounts []UserInfoAccountsInner `json:"accounts,omitempty"`
Accounts []UserInfoAccounts `json:"accounts,omitempty"`
// Перелік банок
Jars []UserInfoJarsInner `json:"jars,omitempty"`
Jars []UserInfoJars `json:"jars,omitempty"`
}
// NewUserInfo instantiates a new UserInfo object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewUserInfo() *UserInfo {
this := UserInfo{}
return &this
}
// NewUserInfoWithDefaults instantiates a new UserInfo object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewUserInfoWithDefaults() *UserInfo {
this := UserInfo{}
return &this
}
// GetClientId returns the ClientId field value if set, zero value otherwise.
func (o *UserInfo) GetClientId() string {
if o == nil || IsNil(o.ClientId) {
var ret string
return ret
}
return *o.ClientId
}
// GetClientIdOk returns a tuple with the ClientId field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfo) GetClientIdOk() (*string, bool) {
if o == nil || IsNil(o.ClientId) {
return nil, false
}
return o.ClientId, true
}
// HasClientId returns a boolean if a field has been set.
func (o *UserInfo) HasClientId() bool {
if o != nil && !IsNil(o.ClientId) {
return true
}
return false
}
// SetClientId gets a reference to the given string and assigns it to the ClientId field.
func (o *UserInfo) SetClientId(v string) {
o.ClientId = &v
}
// GetName returns the Name field value if set, zero value otherwise.
func (o *UserInfo) GetName() string {
if o == nil || IsNil(o.Name) {
var ret string
return ret
}
return *o.Name
}
// GetNameOk returns a tuple with the Name field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfo) GetNameOk() (*string, bool) {
if o == nil || IsNil(o.Name) {
return nil, false
}
return o.Name, true
}
// HasName returns a boolean if a field has been set.
func (o *UserInfo) HasName() bool {
if o != nil && !IsNil(o.Name) {
return true
}
return false
}
// SetName gets a reference to the given string and assigns it to the Name field.
func (o *UserInfo) SetName(v string) {
o.Name = &v
}
// GetWebHookUrl returns the WebHookUrl field value if set, zero value otherwise.
func (o *UserInfo) GetWebHookUrl() string {
if o == nil || IsNil(o.WebHookUrl) {
var ret string
return ret
}
return *o.WebHookUrl
}
// GetWebHookUrlOk returns a tuple with the WebHookUrl field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfo) GetWebHookUrlOk() (*string, bool) {
if o == nil || IsNil(o.WebHookUrl) {
return nil, false
}
return o.WebHookUrl, true
}
// HasWebHookUrl returns a boolean if a field has been set.
func (o *UserInfo) HasWebHookUrl() bool {
if o != nil && !IsNil(o.WebHookUrl) {
return true
}
return false
}
// SetWebHookUrl gets a reference to the given string and assigns it to the WebHookUrl field.
func (o *UserInfo) SetWebHookUrl(v string) {
o.WebHookUrl = &v
}
// GetPermissions returns the Permissions field value if set, zero value otherwise.
func (o *UserInfo) GetPermissions() string {
if o == nil || IsNil(o.Permissions) {
var ret string
return ret
}
return *o.Permissions
}
// GetPermissionsOk returns a tuple with the Permissions field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfo) GetPermissionsOk() (*string, bool) {
if o == nil || IsNil(o.Permissions) {
return nil, false
}
return o.Permissions, true
}
// HasPermissions returns a boolean if a field has been set.
func (o *UserInfo) HasPermissions() bool {
if o != nil && !IsNil(o.Permissions) {
return true
}
return false
}
// SetPermissions gets a reference to the given string and assigns it to the Permissions field.
func (o *UserInfo) SetPermissions(v string) {
o.Permissions = &v
}
// GetAccounts returns the Accounts field value if set, zero value otherwise.
func (o *UserInfo) GetAccounts() []UserInfoAccountsInner {
if o == nil || IsNil(o.Accounts) {
var ret []UserInfoAccountsInner
return ret
}
return o.Accounts
}
// GetAccountsOk returns a tuple with the Accounts field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfo) GetAccountsOk() ([]UserInfoAccountsInner, bool) {
if o == nil || IsNil(o.Accounts) {
return nil, false
}
return o.Accounts, true
}
// HasAccounts returns a boolean if a field has been set.
func (o *UserInfo) HasAccounts() bool {
if o != nil && !IsNil(o.Accounts) {
return true
}
return false
}
// SetAccounts gets a reference to the given []UserInfoAccountsInner and assigns it to the Accounts field.
func (o *UserInfo) SetAccounts(v []UserInfoAccountsInner) {
o.Accounts = v
}
// GetJars returns the Jars field value if set, zero value otherwise.
func (o *UserInfo) GetJars() []UserInfoJarsInner {
if o == nil || IsNil(o.Jars) {
var ret []UserInfoJarsInner
return ret
}
return o.Jars
}
// GetJarsOk returns a tuple with the Jars field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfo) GetJarsOk() ([]UserInfoJarsInner, bool) {
if o == nil || IsNil(o.Jars) {
return nil, false
}
return o.Jars, true
}
// HasJars returns a boolean if a field has been set.
func (o *UserInfo) HasJars() bool {
if o != nil && !IsNil(o.Jars) {
return true
}
return false
}
// SetJars gets a reference to the given []UserInfoJarsInner and assigns it to the Jars field.
func (o *UserInfo) SetJars(v []UserInfoJarsInner) {
o.Jars = v
}
func (o UserInfo) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o UserInfo) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if !IsNil(o.ClientId) {
toSerialize["clientId"] = o.ClientId
}
if !IsNil(o.Name) {
toSerialize["name"] = o.Name
}
if !IsNil(o.WebHookUrl) {
toSerialize["webHookUrl"] = o.WebHookUrl
}
if !IsNil(o.Permissions) {
toSerialize["permissions"] = o.Permissions
}
if !IsNil(o.Accounts) {
toSerialize["accounts"] = o.Accounts
}
if !IsNil(o.Jars) {
toSerialize["jars"] = o.Jars
}
return toSerialize, nil
}
type NullableUserInfo struct {
value *UserInfo
isSet bool
}
func (v NullableUserInfo) Get() *UserInfo {
return v.value
}
func (v *NullableUserInfo) Set(val *UserInfo) {
v.value = val
v.isSet = true
}
func (v NullableUserInfo) IsSet() bool {
return v.isSet
}
func (v *NullableUserInfo) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableUserInfo(val *UserInfo) *NullableUserInfo {
return &NullableUserInfo{value: val, isSet: true}
}
func (v NullableUserInfo) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableUserInfo) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

@ -0,0 +1,30 @@
/*
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
package monobank
type UserInfoAccounts struct {
// Ідентифікатор рахунку
Id string `json:"id,omitempty"`
// Ідентифікатор для сервісу https://send.monobank.ua/{sendId}
SendId string `json:"sendId,omitempty"`
// Баланс рахунку в мінімальних одиницях валюти (копійках, центах)
Balance float64 `json:"balance,omitempty"`
// Кредитний ліміт
CreditLimit float64 `json:"creditLimit,omitempty"`
// Тип рахунку
Type_ string `json:"type,omitempty"`
// Код валюти рахунку відповідно ISO 4217
CurrencyCode float64 `json:"currencyCode,omitempty"`
// Тип кешбеку який нараховується на рахунок
CashbackType string `json:"cashbackType,omitempty"`
// Перелік замаскованних номерів карт (більше одного може бути у преміальних карт)
MaskedPan *Array `json:"maskedPan,omitempty"`
// IBAN рахунку
Iban string `json:"iban,omitempty"`
}

@ -1,423 +0,0 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"encoding/json"
)
// checks if the UserInfoAccountsInner type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &UserInfoAccountsInner{}
// UserInfoAccountsInner struct for UserInfoAccountsInner
type UserInfoAccountsInner struct {
// Ідентифікатор рахунку
Id *string `json:"id,omitempty"`
// Ідентифікатор для сервісу https://send.monobank.ua/{sendId}
SendId *string `json:"sendId,omitempty"`
// Баланс рахунку в мінімальних одиницях валюти (копійках, центах)
Balance *float32 `json:"balance,omitempty"`
// Кредитний ліміт
CreditLimit *float32 `json:"creditLimit,omitempty"`
// Тип рахунку
Type *string `json:"type,omitempty"`
// Код валюти рахунку відповідно ISO 4217
CurrencyCode *float32 `json:"currencyCode,omitempty"`
// Тип кешбеку який нараховується на рахунок
CashbackType *string `json:"cashbackType,omitempty"`
// Перелік замаскованних номерів карт (більше одного може бути у преміальних карт)
MaskedPan *Array `json:"maskedPan,omitempty"`
// IBAN рахунку
Iban *string `json:"iban,omitempty"`
}
// NewUserInfoAccountsInner instantiates a new UserInfoAccountsInner object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewUserInfoAccountsInner() *UserInfoAccountsInner {
this := UserInfoAccountsInner{}
return &this
}
// NewUserInfoAccountsInnerWithDefaults instantiates a new UserInfoAccountsInner object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewUserInfoAccountsInnerWithDefaults() *UserInfoAccountsInner {
this := UserInfoAccountsInner{}
return &this
}
// GetId returns the Id field value if set, zero value otherwise.
func (o *UserInfoAccountsInner) GetId() string {
if o == nil || IsNil(o.Id) {
var ret string
return ret
}
return *o.Id
}
// GetIdOk returns a tuple with the Id field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoAccountsInner) GetIdOk() (*string, bool) {
if o == nil || IsNil(o.Id) {
return nil, false
}
return o.Id, true
}
// HasId returns a boolean if a field has been set.
func (o *UserInfoAccountsInner) HasId() bool {
if o != nil && !IsNil(o.Id) {
return true
}
return false
}
// SetId gets a reference to the given string and assigns it to the Id field.
func (o *UserInfoAccountsInner) SetId(v string) {
o.Id = &v
}
// GetSendId returns the SendId field value if set, zero value otherwise.
func (o *UserInfoAccountsInner) GetSendId() string {
if o == nil || IsNil(o.SendId) {
var ret string
return ret
}
return *o.SendId
}
// GetSendIdOk returns a tuple with the SendId field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoAccountsInner) GetSendIdOk() (*string, bool) {
if o == nil || IsNil(o.SendId) {
return nil, false
}
return o.SendId, true
}
// HasSendId returns a boolean if a field has been set.
func (o *UserInfoAccountsInner) HasSendId() bool {
if o != nil && !IsNil(o.SendId) {
return true
}
return false
}
// SetSendId gets a reference to the given string and assigns it to the SendId field.
func (o *UserInfoAccountsInner) SetSendId(v string) {
o.SendId = &v
}
// GetBalance returns the Balance field value if set, zero value otherwise.
func (o *UserInfoAccountsInner) GetBalance() float32 {
if o == nil || IsNil(o.Balance) {
var ret float32
return ret
}
return *o.Balance
}
// GetBalanceOk returns a tuple with the Balance field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoAccountsInner) GetBalanceOk() (*float32, bool) {
if o == nil || IsNil(o.Balance) {
return nil, false
}
return o.Balance, true
}
// HasBalance returns a boolean if a field has been set.
func (o *UserInfoAccountsInner) HasBalance() bool {
if o != nil && !IsNil(o.Balance) {
return true
}
return false
}
// SetBalance gets a reference to the given float32 and assigns it to the Balance field.
func (o *UserInfoAccountsInner) SetBalance(v float32) {
o.Balance = &v
}
// GetCreditLimit returns the CreditLimit field value if set, zero value otherwise.
func (o *UserInfoAccountsInner) GetCreditLimit() float32 {
if o == nil || IsNil(o.CreditLimit) {
var ret float32
return ret
}
return *o.CreditLimit
}
// GetCreditLimitOk returns a tuple with the CreditLimit field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoAccountsInner) GetCreditLimitOk() (*float32, bool) {
if o == nil || IsNil(o.CreditLimit) {
return nil, false
}
return o.CreditLimit, true
}
// HasCreditLimit returns a boolean if a field has been set.
func (o *UserInfoAccountsInner) HasCreditLimit() bool {
if o != nil && !IsNil(o.CreditLimit) {
return true
}
return false
}
// SetCreditLimit gets a reference to the given float32 and assigns it to the CreditLimit field.
func (o *UserInfoAccountsInner) SetCreditLimit(v float32) {
o.CreditLimit = &v
}
// GetType returns the Type field value if set, zero value otherwise.
func (o *UserInfoAccountsInner) GetType() string {
if o == nil || IsNil(o.Type) {
var ret string
return ret
}
return *o.Type
}
// GetTypeOk returns a tuple with the Type field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoAccountsInner) GetTypeOk() (*string, bool) {
if o == nil || IsNil(o.Type) {
return nil, false
}
return o.Type, true
}
// HasType returns a boolean if a field has been set.
func (o *UserInfoAccountsInner) HasType() bool {
if o != nil && !IsNil(o.Type) {
return true
}
return false
}
// SetType gets a reference to the given string and assigns it to the Type field.
func (o *UserInfoAccountsInner) SetType(v string) {
o.Type = &v
}
// GetCurrencyCode returns the CurrencyCode field value if set, zero value otherwise.
func (o *UserInfoAccountsInner) GetCurrencyCode() float32 {
if o == nil || IsNil(o.CurrencyCode) {
var ret float32
return ret
}
return *o.CurrencyCode
}
// GetCurrencyCodeOk returns a tuple with the CurrencyCode field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoAccountsInner) GetCurrencyCodeOk() (*float32, bool) {
if o == nil || IsNil(o.CurrencyCode) {
return nil, false
}
return o.CurrencyCode, true
}
// HasCurrencyCode returns a boolean if a field has been set.
func (o *UserInfoAccountsInner) HasCurrencyCode() bool {
if o != nil && !IsNil(o.CurrencyCode) {
return true
}
return false
}
// SetCurrencyCode gets a reference to the given float32 and assigns it to the CurrencyCode field.
func (o *UserInfoAccountsInner) SetCurrencyCode(v float32) {
o.CurrencyCode = &v
}
// GetCashbackType returns the CashbackType field value if set, zero value otherwise.
func (o *UserInfoAccountsInner) GetCashbackType() string {
if o == nil || IsNil(o.CashbackType) {
var ret string
return ret
}
return *o.CashbackType
}
// GetCashbackTypeOk returns a tuple with the CashbackType field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoAccountsInner) GetCashbackTypeOk() (*string, bool) {
if o == nil || IsNil(o.CashbackType) {
return nil, false
}
return o.CashbackType, true
}
// HasCashbackType returns a boolean if a field has been set.
func (o *UserInfoAccountsInner) HasCashbackType() bool {
if o != nil && !IsNil(o.CashbackType) {
return true
}
return false
}
// SetCashbackType gets a reference to the given string and assigns it to the CashbackType field.
func (o *UserInfoAccountsInner) SetCashbackType(v string) {
o.CashbackType = &v
}
// GetMaskedPan returns the MaskedPan field value if set, zero value otherwise.
func (o *UserInfoAccountsInner) GetMaskedPan() Array {
if o == nil || IsNil(o.MaskedPan) {
var ret Array
return ret
}
return *o.MaskedPan
}
// GetMaskedPanOk returns a tuple with the MaskedPan field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoAccountsInner) GetMaskedPanOk() (*Array, bool) {
if o == nil || IsNil(o.MaskedPan) {
return nil, false
}
return o.MaskedPan, true
}
// HasMaskedPan returns a boolean if a field has been set.
func (o *UserInfoAccountsInner) HasMaskedPan() bool {
if o != nil && !IsNil(o.MaskedPan) {
return true
}
return false
}
// SetMaskedPan gets a reference to the given Array and assigns it to the MaskedPan field.
func (o *UserInfoAccountsInner) SetMaskedPan(v Array) {
o.MaskedPan = &v
}
// GetIban returns the Iban field value if set, zero value otherwise.
func (o *UserInfoAccountsInner) GetIban() string {
if o == nil || IsNil(o.Iban) {
var ret string
return ret
}
return *o.Iban
}
// GetIbanOk returns a tuple with the Iban field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoAccountsInner) GetIbanOk() (*string, bool) {
if o == nil || IsNil(o.Iban) {
return nil, false
}
return o.Iban, true
}
// HasIban returns a boolean if a field has been set.
func (o *UserInfoAccountsInner) HasIban() bool {
if o != nil && !IsNil(o.Iban) {
return true
}
return false
}
// SetIban gets a reference to the given string and assigns it to the Iban field.
func (o *UserInfoAccountsInner) SetIban(v string) {
o.Iban = &v
}
func (o UserInfoAccountsInner) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o UserInfoAccountsInner) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if !IsNil(o.Id) {
toSerialize["id"] = o.Id
}
if !IsNil(o.SendId) {
toSerialize["sendId"] = o.SendId
}
if !IsNil(o.Balance) {
toSerialize["balance"] = o.Balance
}
if !IsNil(o.CreditLimit) {
toSerialize["creditLimit"] = o.CreditLimit
}
if !IsNil(o.Type) {
toSerialize["type"] = o.Type
}
if !IsNil(o.CurrencyCode) {
toSerialize["currencyCode"] = o.CurrencyCode
}
if !IsNil(o.CashbackType) {
toSerialize["cashbackType"] = o.CashbackType
}
if !IsNil(o.MaskedPan) {
toSerialize["maskedPan"] = o.MaskedPan
}
if !IsNil(o.Iban) {
toSerialize["iban"] = o.Iban
}
return toSerialize, nil
}
type NullableUserInfoAccountsInner struct {
value *UserInfoAccountsInner
isSet bool
}
func (v NullableUserInfoAccountsInner) Get() *UserInfoAccountsInner {
return v.value
}
func (v *NullableUserInfoAccountsInner) Set(val *UserInfoAccountsInner) {
v.value = val
v.isSet = true
}
func (v NullableUserInfoAccountsInner) IsSet() bool {
return v.isSet
}
func (v *NullableUserInfoAccountsInner) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableUserInfoAccountsInner(val *UserInfoAccountsInner) *NullableUserInfoAccountsInner {
return &NullableUserInfoAccountsInner{value: val, isSet: true}
}
func (v NullableUserInfoAccountsInner) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableUserInfoAccountsInner) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

26
model_user_info_jars.go Normal file

@ -0,0 +1,26 @@
/*
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
package monobank
type UserInfoJars struct {
// Ідентифікатор банки
Id string `json:"id,omitempty"`
// Ідентифікатор для сервісу https://send.monobank.ua/{sendId}
SendId string `json:"sendId,omitempty"`
// Назва банки
Title string `json:"title,omitempty"`
// Опис банки
Description string `json:"description,omitempty"`
// Код валюти банки відповідно ISO 4217
CurrencyCode float64 `json:"currencyCode,omitempty"`
// Баланс банки в мінімальних одиницях валюти (копійках, центах)
Balance float64 `json:"balance,omitempty"`
// Цільова сума для накопичення в банці в мінімальних одиницях валюти (копійках, центах)
Goal float64 `json:"goal,omitempty"`
}

@ -1,349 +0,0 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"encoding/json"
)
// checks if the UserInfoJarsInner type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &UserInfoJarsInner{}
// UserInfoJarsInner struct for UserInfoJarsInner
type UserInfoJarsInner struct {
// Ідентифікатор банки
Id *string `json:"id,omitempty"`
// Ідентифікатор для сервісу https://send.monobank.ua/{sendId}
SendId *string `json:"sendId,omitempty"`
// Назва банки
Title *string `json:"title,omitempty"`
// Опис банки
Description *string `json:"description,omitempty"`
// Код валюти банки відповідно ISO 4217
CurrencyCode *float32 `json:"currencyCode,omitempty"`
// Баланс банки в мінімальних одиницях валюти (копійках, центах)
Balance *float32 `json:"balance,omitempty"`
// Цільова сума для накопичення в банці в мінімальних одиницях валюти (копійках, центах)
Goal *float32 `json:"goal,omitempty"`
}
// NewUserInfoJarsInner instantiates a new UserInfoJarsInner object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewUserInfoJarsInner() *UserInfoJarsInner {
this := UserInfoJarsInner{}
return &this
}
// NewUserInfoJarsInnerWithDefaults instantiates a new UserInfoJarsInner object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewUserInfoJarsInnerWithDefaults() *UserInfoJarsInner {
this := UserInfoJarsInner{}
return &this
}
// GetId returns the Id field value if set, zero value otherwise.
func (o *UserInfoJarsInner) GetId() string {
if o == nil || IsNil(o.Id) {
var ret string
return ret
}
return *o.Id
}
// GetIdOk returns a tuple with the Id field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoJarsInner) GetIdOk() (*string, bool) {
if o == nil || IsNil(o.Id) {
return nil, false
}
return o.Id, true
}
// HasId returns a boolean if a field has been set.
func (o *UserInfoJarsInner) HasId() bool {
if o != nil && !IsNil(o.Id) {
return true
}
return false
}
// SetId gets a reference to the given string and assigns it to the Id field.
func (o *UserInfoJarsInner) SetId(v string) {
o.Id = &v
}
// GetSendId returns the SendId field value if set, zero value otherwise.
func (o *UserInfoJarsInner) GetSendId() string {
if o == nil || IsNil(o.SendId) {
var ret string
return ret
}
return *o.SendId
}
// GetSendIdOk returns a tuple with the SendId field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoJarsInner) GetSendIdOk() (*string, bool) {
if o == nil || IsNil(o.SendId) {
return nil, false
}
return o.SendId, true
}
// HasSendId returns a boolean if a field has been set.
func (o *UserInfoJarsInner) HasSendId() bool {
if o != nil && !IsNil(o.SendId) {
return true
}
return false
}
// SetSendId gets a reference to the given string and assigns it to the SendId field.
func (o *UserInfoJarsInner) SetSendId(v string) {
o.SendId = &v
}
// GetTitle returns the Title field value if set, zero value otherwise.
func (o *UserInfoJarsInner) GetTitle() string {
if o == nil || IsNil(o.Title) {
var ret string
return ret
}
return *o.Title
}
// GetTitleOk returns a tuple with the Title field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoJarsInner) GetTitleOk() (*string, bool) {
if o == nil || IsNil(o.Title) {
return nil, false
}
return o.Title, true
}
// HasTitle returns a boolean if a field has been set.
func (o *UserInfoJarsInner) HasTitle() bool {
if o != nil && !IsNil(o.Title) {
return true
}
return false
}
// SetTitle gets a reference to the given string and assigns it to the Title field.
func (o *UserInfoJarsInner) SetTitle(v string) {
o.Title = &v
}
// GetDescription returns the Description field value if set, zero value otherwise.
func (o *UserInfoJarsInner) GetDescription() string {
if o == nil || IsNil(o.Description) {
var ret string
return ret
}
return *o.Description
}
// GetDescriptionOk returns a tuple with the Description field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoJarsInner) GetDescriptionOk() (*string, bool) {
if o == nil || IsNil(o.Description) {
return nil, false
}
return o.Description, true
}
// HasDescription returns a boolean if a field has been set.
func (o *UserInfoJarsInner) HasDescription() bool {
if o != nil && !IsNil(o.Description) {
return true
}
return false
}
// SetDescription gets a reference to the given string and assigns it to the Description field.
func (o *UserInfoJarsInner) SetDescription(v string) {
o.Description = &v
}
// GetCurrencyCode returns the CurrencyCode field value if set, zero value otherwise.
func (o *UserInfoJarsInner) GetCurrencyCode() float32 {
if o == nil || IsNil(o.CurrencyCode) {
var ret float32
return ret
}
return *o.CurrencyCode
}
// GetCurrencyCodeOk returns a tuple with the CurrencyCode field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoJarsInner) GetCurrencyCodeOk() (*float32, bool) {
if o == nil || IsNil(o.CurrencyCode) {
return nil, false
}
return o.CurrencyCode, true
}
// HasCurrencyCode returns a boolean if a field has been set.
func (o *UserInfoJarsInner) HasCurrencyCode() bool {
if o != nil && !IsNil(o.CurrencyCode) {
return true
}
return false
}
// SetCurrencyCode gets a reference to the given float32 and assigns it to the CurrencyCode field.
func (o *UserInfoJarsInner) SetCurrencyCode(v float32) {
o.CurrencyCode = &v
}
// GetBalance returns the Balance field value if set, zero value otherwise.
func (o *UserInfoJarsInner) GetBalance() float32 {
if o == nil || IsNil(o.Balance) {
var ret float32
return ret
}
return *o.Balance
}
// GetBalanceOk returns a tuple with the Balance field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoJarsInner) GetBalanceOk() (*float32, bool) {
if o == nil || IsNil(o.Balance) {
return nil, false
}
return o.Balance, true
}
// HasBalance returns a boolean if a field has been set.
func (o *UserInfoJarsInner) HasBalance() bool {
if o != nil && !IsNil(o.Balance) {
return true
}
return false
}
// SetBalance gets a reference to the given float32 and assigns it to the Balance field.
func (o *UserInfoJarsInner) SetBalance(v float32) {
o.Balance = &v
}
// GetGoal returns the Goal field value if set, zero value otherwise.
func (o *UserInfoJarsInner) GetGoal() float32 {
if o == nil || IsNil(o.Goal) {
var ret float32
return ret
}
return *o.Goal
}
// GetGoalOk returns a tuple with the Goal field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *UserInfoJarsInner) GetGoalOk() (*float32, bool) {
if o == nil || IsNil(o.Goal) {
return nil, false
}
return o.Goal, true
}
// HasGoal returns a boolean if a field has been set.
func (o *UserInfoJarsInner) HasGoal() bool {
if o != nil && !IsNil(o.Goal) {
return true
}
return false
}
// SetGoal gets a reference to the given float32 and assigns it to the Goal field.
func (o *UserInfoJarsInner) SetGoal(v float32) {
o.Goal = &v
}
func (o UserInfoJarsInner) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap()
if err != nil {
return []byte{}, err
}
return json.Marshal(toSerialize)
}
func (o UserInfoJarsInner) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{}
if !IsNil(o.Id) {
toSerialize["id"] = o.Id
}
if !IsNil(o.SendId) {
toSerialize["sendId"] = o.SendId
}
if !IsNil(o.Title) {
toSerialize["title"] = o.Title
}
if !IsNil(o.Description) {
toSerialize["description"] = o.Description
}
if !IsNil(o.CurrencyCode) {
toSerialize["currencyCode"] = o.CurrencyCode
}
if !IsNil(o.Balance) {
toSerialize["balance"] = o.Balance
}
if !IsNil(o.Goal) {
toSerialize["goal"] = o.Goal
}
return toSerialize, nil
}
type NullableUserInfoJarsInner struct {
value *UserInfoJarsInner
isSet bool
}
func (v NullableUserInfoJarsInner) Get() *UserInfoJarsInner {
return v.value
}
func (v *NullableUserInfoJarsInner) Set(val *UserInfoJarsInner) {
v.value = val
v.isSet = true
}
func (v NullableUserInfoJarsInner) IsSet() bool {
return v.isSet
}
func (v *NullableUserInfoJarsInner) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableUserInfoJarsInner(val *UserInfoJarsInner) *NullableUserInfoJarsInner {
return &NullableUserInfoJarsInner{value: val, isSet: true}
}
func (v NullableUserInfoJarsInner) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableUserInfoJarsInner) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}

@ -1,11 +0,0 @@
package monobank
type WebHookResponse struct {
Type string `json:"type"` // "StatementItem"
Data WebHookResponseData `json:"data"`
}
type WebHookResponseData struct {
Account string `json:"account"`
StatementItem StatementItemsInner `json:"statementItem"`
}

11
model_webhook_response.go Normal file

@ -0,0 +1,11 @@
package monobank
type WebHookResponse struct {
Type string // "StatementItem"
Data WebHookResponseData
}
type WebHookResponseData struct {
Account string
StatementItem StatementItemsInner
}

@ -1,24 +1,21 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
* Monobank open API
*
* API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
*
* API version: v2303
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"net/http"
)
// APIResponse stores the API response returned by the server.
type APIResponse struct {
*http.Response `json:"-"`
Message string `json:"message,omitempty"`
// Operation is the name of the OpenAPI operation.
// Operation is the name of the swagger operation.
Operation string `json:"operation,omitempty"`
// RequestURL is the request URL. This value is always available, even if the
// embedded *http.Response is nil.
@ -32,14 +29,12 @@ type APIResponse struct {
Payload []byte `json:"-"`
}
// NewAPIResponse returns a new APIResponse object.
func NewAPIResponse(r *http.Response) *APIResponse {
response := &APIResponse{Response: r}
return response
}
// NewAPIResponseWithError returns a new APIResponse object with the provided error message.
func NewAPIResponseWithError(errorMessage string) *APIResponse {
response := &APIResponse{Message: errorMessage}

@ -1,76 +0,0 @@
/*
Monobank open API
Testing DefaultApiService
*/
// Code generated by OpenAPI Generator (https://monobank-generator.tech);
package monobank
import (
"context"
monobankclient "gitea.stuzer.link/stuzer05/go-monobank"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"testing"
)
func Test_monobank_DefaultApiService(t *testing.T) {
configuration := monobankclient.NewConfiguration()
apiClient := monobankclient.NewAPIClient(configuration)
t.Run("Test DefaultApiService BankCurrencyGet", func(t *testing.T) {
t.Skip("skip test") // remove to run test
resp, httpRes, err := apiClient.DefaultApi.BankCurrencyGet(context.Background()).Execute()
require.Nil(t, err)
require.NotNil(t, resp)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test DefaultApiService PersonalClientInfoGet", func(t *testing.T) {
t.Skip("skip test") // remove to run test
resp, httpRes, err := apiClient.DefaultApi.PersonalClientInfoGet(context.Background()).Execute()
require.Nil(t, err)
require.NotNil(t, resp)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test DefaultApiService PersonalStatementAccountFromToGet", func(t *testing.T) {
t.Skip("skip test") // remove to run test
var account string
var from string
var to string
resp, httpRes, err := apiClient.DefaultApi.PersonalStatementAccountFromToGet(context.Background(), account, from, to).Execute()
require.Nil(t, err)
require.NotNil(t, resp)
assert.Equal(t, 200, httpRes.StatusCode)
})
t.Run("Test DefaultApiService PersonalWebhookPost", func(t *testing.T) {
t.Skip("skip test") // remove to run test
httpRes, err := apiClient.DefaultApi.PersonalWebhookPost(context.Background()).Execute()
require.Nil(t, err)
assert.Equal(t, 200, httpRes.StatusCode)
})
}

@ -1,3 +0,0 @@
package monobank
type Array []string

347
utils.go

@ -1,347 +0,0 @@
/*
Monobank open API
API для отримання інформації про виписки та стан особистого рахунку та рахунків ФОП. Для надання доступу потрібно пройти авторизацію у особистому кабінеті https://api.monobank.ua/ та отримати токен для персонального використання. Якщо у вас є запитання щодо роботи API, запрошуємо до ком'юніті у [Telegram-групі](https://t.me/joinchat/FiAEWhDf-QzTqM4wzEtffw). API недоступне для клієнтів до 16 років, дані за дитячими рахунками доступні з батьківського акаунту. Якщо у вас є сервіс і ви хочете централізовано приєднатися до API для надання послуг клієнтам, потрібно підключитися до [API для провайдерів послуг](/docs/corporate.html), що має більше можливостей. Якщо дані клієнтів не будуть надходити на ваші сервери або ви робите сервіс для своєї родини, використання корпоративного API необов'язкове. Розробка бібліотек або програм, які будуть використовувати клієнти особисто (дані клієнта не будуть проходити черeз вузли розробника), також не потребують використання корпоративного API. Це надасть змогу клієнтам monobank авторизуватись у вашому сервісі (наприклад, у фінансовому менеджері) для надання інформації про стан рахунку або виписки. У разі виявлення експлуатації цього API в якості корпоративного, банк залишає за собою право накласти санкції на компанію.
API version: v2303
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package monobank
import (
"encoding/json"
"reflect"
"time"
)
// PtrBool is a helper routine that returns a pointer to given boolean value.
func PtrBool(v bool) *bool { return &v }
// PtrInt is a helper routine that returns a pointer to given integer value.
func PtrInt(v int) *int { return &v }
// PtrInt32 is a helper routine that returns a pointer to given integer value.
func PtrInt32(v int32) *int32 { return &v }
// PtrInt64 is a helper routine that returns a pointer to given integer value.
func PtrInt64(v int64) *int64 { return &v }
// PtrFloat32 is a helper routine that returns a pointer to given float value.
func PtrFloat32(v float32) *float32 { return &v }
// PtrFloat64 is a helper routine that returns a pointer to given float value.
func PtrFloat64(v float64) *float64 { return &v }
// PtrString is a helper routine that returns a pointer to given string value.
func PtrString(v string) *string { return &v }
// PtrTime is helper routine that returns a pointer to given Time value.
func PtrTime(v time.Time) *time.Time { return &v }
type NullableBool struct {
value *bool
isSet bool
}
func (v NullableBool) Get() *bool {
return v.value
}
func (v *NullableBool) Set(val *bool) {
v.value = val
v.isSet = true
}
func (v NullableBool) IsSet() bool {
return v.isSet
}
func (v *NullableBool) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableBool(val *bool) *NullableBool {
return &NullableBool{value: val, isSet: true}
}
func (v NullableBool) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableBool) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableInt struct {
value *int
isSet bool
}
func (v NullableInt) Get() *int {
return v.value
}
func (v *NullableInt) Set(val *int) {
v.value = val
v.isSet = true
}
func (v NullableInt) IsSet() bool {
return v.isSet
}
func (v *NullableInt) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableInt(val *int) *NullableInt {
return &NullableInt{value: val, isSet: true}
}
func (v NullableInt) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableInt) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableInt32 struct {
value *int32
isSet bool
}
func (v NullableInt32) Get() *int32 {
return v.value
}
func (v *NullableInt32) Set(val *int32) {
v.value = val
v.isSet = true
}
func (v NullableInt32) IsSet() bool {
return v.isSet
}
func (v *NullableInt32) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableInt32(val *int32) *NullableInt32 {
return &NullableInt32{value: val, isSet: true}
}
func (v NullableInt32) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableInt32) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableInt64 struct {
value *int64
isSet bool
}
func (v NullableInt64) Get() *int64 {
return v.value
}
func (v *NullableInt64) Set(val *int64) {
v.value = val
v.isSet = true
}
func (v NullableInt64) IsSet() bool {
return v.isSet
}
func (v *NullableInt64) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableInt64(val *int64) *NullableInt64 {
return &NullableInt64{value: val, isSet: true}
}
func (v NullableInt64) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableInt64) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableFloat32 struct {
value *float32
isSet bool
}
func (v NullableFloat32) Get() *float32 {
return v.value
}
func (v *NullableFloat32) Set(val *float32) {
v.value = val
v.isSet = true
}
func (v NullableFloat32) IsSet() bool {
return v.isSet
}
func (v *NullableFloat32) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableFloat32(val *float32) *NullableFloat32 {
return &NullableFloat32{value: val, isSet: true}
}
func (v NullableFloat32) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableFloat32) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableFloat64 struct {
value *float64
isSet bool
}
func (v NullableFloat64) Get() *float64 {
return v.value
}
func (v *NullableFloat64) Set(val *float64) {
v.value = val
v.isSet = true
}
func (v NullableFloat64) IsSet() bool {
return v.isSet
}
func (v *NullableFloat64) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableFloat64(val *float64) *NullableFloat64 {
return &NullableFloat64{value: val, isSet: true}
}
func (v NullableFloat64) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableFloat64) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableString struct {
value *string
isSet bool
}
func (v NullableString) Get() *string {
return v.value
}
func (v *NullableString) Set(val *string) {
v.value = val
v.isSet = true
}
func (v NullableString) IsSet() bool {
return v.isSet
}
func (v *NullableString) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableString(val *string) *NullableString {
return &NullableString{value: val, isSet: true}
}
func (v NullableString) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableString) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
type NullableTime struct {
value *time.Time
isSet bool
}
func (v NullableTime) Get() *time.Time {
return v.value
}
func (v *NullableTime) Set(val *time.Time) {
v.value = val
v.isSet = true
}
func (v NullableTime) IsSet() bool {
return v.isSet
}
func (v *NullableTime) Unset() {
v.value = nil
v.isSet = false
}
func NewNullableTime(val *time.Time) *NullableTime {
return &NullableTime{value: val, isSet: true}
}
func (v NullableTime) MarshalJSON() ([]byte, error) {
return json.Marshal(v.value)
}
func (v *NullableTime) UnmarshalJSON(src []byte) error {
v.isSet = true
return json.Unmarshal(src, &v.value)
}
// IsNil checks if an input is nil
func IsNil(i interface{}) bool {
if i == nil {
return true
}
switch reflect.TypeOf(i).Kind() {
case reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.UnsafePointer, reflect.Interface, reflect.Slice:
return reflect.ValueOf(i).IsNil()
case reflect.Array:
return reflect.ValueOf(i).IsZero()
}
return false
}
type MappedNullable interface {
ToMap() (map[string]interface{}, error)
}