{"id":16482065,"url":"https://github.com/bod/klibqonto","last_synced_at":"2026-05-10T16:07:00.941Z","repository":{"id":138161577,"uuid":"199535440","full_name":"BoD/klibqonto","owner":"BoD","description":"A Qonto API client library for Kotlin, Java and more.","archived":false,"fork":false,"pushed_at":"2021-06-12T21:02:00.000Z","size":493,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-11T10:38:40.720Z","etag":null,"topics":["java","kotlin","qonto-api"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BoD.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-29T22:36:11.000Z","updated_at":"2021-06-12T21:02:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"33d67c78-b6be-4644-8b51-2dc426dfbe6c","html_url":"https://github.com/BoD/klibqonto","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoD%2Fklibqonto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoD%2Fklibqonto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoD%2Fklibqonto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoD%2Fklibqonto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BoD","download_url":"https://codeload.github.com/BoD/klibqonto/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241198944,"owners_count":19926554,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","kotlin","qonto-api"],"created_at":"2024-10-11T13:09:31.845Z","updated_at":"2026-05-10T16:06:55.907Z","avatar_url":"https://github.com/BoD.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# klibqonto\n\nA [Qonto API](https://api-doc.qonto.com) client library for Kotlin, Java and more.\n\nThis library is written in [Kotlin Multiplatform](https://kotlinlang.org/docs/reference/multiplatform.html)\nso _in theory_ it can be used from the JVM, Android, and native iOS, Linux, MacOS, Windows and more.\nIn practice this library has been tested and has samples for the JVM\n(Kotlin and Java), Android (Kotlin), MacOS (Kotlin), and iOS (Swift).\n\nSeveral flavors of the client are available to match your needs:\n- [Coroutines (`suspend`) based](https://github.com/BoD/klibqonto/blob/master/library/src/commonMain/kotlin/org/jraf/klibqonto/client/QontoClient.kt): the default client for Kotlin projects\n- [Blocking](https://github.com/BoD/klibqonto/blob/master/library/src/commonMain/kotlin/org/jraf/klibqonto/client/blocking/BlockingQontoClient.kt): useful for Java projects, or if you have your own async mechanism\n- [Callback based](https://github.com/BoD/klibqonto/blob/master/library/src/commonMain/kotlin/org/jraf/klibqonto/client/callback/CallbackQontoClient.kt): useful for Java and Swift projects\n- [`Future` based (JVM only)](https://github.com/BoD/klibqonto/blob/master/library/src/jvmMain/kotlin/org/jraf/klibqonto/client/future/FutureQontoClient.kt): useful for Java projects\n\n## Usage\n\n### 1/ Add the dependencies to your project\n\n#### Gradle based projects\n\nThe artifacts are hosted on the Maven Central repository.\n\nNote: prior to v2.3.0, the artifacts used to be hosted on JCenter.\n\n```groovy\nrepositories {\n    /* ... */\n    mavenCentral()\n}\n```\n\n```groovy\ndependencies {\n    /* ... */\n    implementation 'org.jraf:klibqonto:2.5.0'\n}\n```\n\n#### OSX based projects\n**TODO**\n\n### 2/ Use the client\n\nThe easiest way to see how to use it is to look at the samples:\n\n- [Coroutines (Kotlin)](samples/sample-jvm/src/main/kotlin/org/jraf/klibqonto/sample/Sample.kt)\n- [Blocking (Java)](samples/sample-jvm/src/main/java/org/jraf/klibqonto/sample/BlockingSample.java)\n- [Future (Java)](samples/sample-jvm/src/main/java/org/jraf/klibqonto/sample/FutureSample.java)\n- [Callback (Kotlin)](samples/sample-jvm/src/main/kotlin/org/jraf/klibqonto/sample/CallbackSample.kt)\n- Callback (Swift) **TODO**\n\n#### Authentication by login and secret key\n\nYou will find your **login** and **secret key** in the Qonto web application under Settings, in the Integrations (API)\ntab.\n\n#### Authentication by OAuth\n\nTo use OAuth, you must register your application by reaching out to Qonto as\ndocumented [here](https://api-doc.qonto.com/2.0/welcome/register-your-application).\n\nOAuth usage is demonstrated in the [sample](samples/sample-jvm/src/main/kotlin/org/jraf/klibqonto/sample/Sample.kt).\n\n#### Instantiate a `QontoClient`\n\n```kotlin\nval qontoClient = QontoClient.newInstance(\n    ClientConfiguration(\n        LoginSecretKeyAuthentication(\n            LOGIN,\n            SECRET_KEY\n        )\n        // Or use OAuthAuthentication for OAuth\n    )\n)\n```\nTo get other flavors of the client:\n- Blocking: `BlockingQontoClient blockingClient = BlockingQontoClientUtils.asBlockingQontoClient(qontoClient)`\n- Callback: `CallbackQontoClient callbackClient = CallbackQontoClientUtils.asCallbackQontoClient(qontoClient)`\n- Future: `FutureQontoClient futureClient = FutureQontoClientUtils.asFutureQontoClient(qontoClient)`\n\n#### Use the `QontoClient`\nThe client gives access to several API \"areas\":\n\n- `oAuth`\n- `organizations`\n- `transactions`\n- `memberships`\n- `labels`\n- `attachments`\n\nEach area exposes related APIs, for instance: `qontoClient.transactions.getTransactionList`.\n\n#### Pagination\nThe APIs that are paginated all follow the same principle:\n- take a [`Pagination`](https://github.com/BoD/klibqonto/blob/master/library/src/commonMain/kotlin/org/jraf/klibqonto/model/pagination/Pagination.kt) object as a parameter, which defines the page to retrieve, as well as the number of items per page\n- return a [`Page\u003cT\u003e`](https://github.com/BoD/klibqonto/blob/master/library/src/commonMain/kotlin/org/jraf/klibqonto/model/pagination/Page.kt) with the result list but also a reference to the next and previous `Pagination` objects (handy when retrieving several pages).\n\n#### Logging\nTo log HTTP requests/response, pass a [`HttpConfiguration`](https://github.com/BoD/klibqonto/blob/master/library/src/commonMain/kotlin/org/jraf/klibqonto/client/HttpConfiguration.kt) to `QontoClient.newInstance()`.\n\nSeveral levels are available: `NONE`, `INFO`, `HEADERS`, `BODY` and `ALL`\n\n#### Proxy\nA proxy can be configured by passing a [`HttpConfiguration`](https://github.com/BoD/klibqonto/blob/master/library/src/commonMain/kotlin/org/jraf/klibqonto/client/HttpConfiguration.kt) to `QontoClient.newInstance()`.\n\nOn Android, the proxy set in the system settings is automatically used.\n\n## Javascript support\nIn theory Kotlin Multiplatform projects can also target Javascript\nbut as of today the author couldn't understand how to make\nthat work.  Please [contact the author](mailto:BoD@JRAF.org) if you want to help :)\n\n## Author and License\n*Note: this project is not officially related to or endorsed by Qonto or Olinda SAS.*\n\n```\nCopyright (C) 2019-present Benoit 'BoD' Lubek (BoD@JRAF.org)\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbod%2Fklibqonto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbod%2Fklibqonto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbod%2Fklibqonto/lists"}