{"id":28384556,"url":"https://github.com/amatino-code/amatino-swift","last_synced_at":"2026-04-29T15:33:50.157Z","repository":{"id":56901894,"uuid":"119306539","full_name":"amatino-code/amatino-swift","owner":"amatino-code","description":"[Under Construction] Swift binding library for the Amatino API","archived":false,"fork":false,"pushed_at":"2020-05-15T04:46:25.000Z","size":297,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-30T10:16:19.640Z","etag":null,"topics":["accounting","amatino-api","api-client","api-wrapper","double-entry","double-entry-accounting","double-entry-bookkeeping","ios","ios-swift","macos","macos-swift"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amatino-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-28T23:10:59.000Z","updated_at":"2025-04-03T07:59:29.000Z","dependencies_parsed_at":"2022-08-20T18:10:08.485Z","dependency_job_id":null,"html_url":"https://github.com/amatino-code/amatino-swift","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/amatino-code/amatino-swift","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amatino-code%2Famatino-swift","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amatino-code%2Famatino-swift/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amatino-code%2Famatino-swift/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amatino-code%2Famatino-swift/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amatino-code","download_url":"https://codeload.github.com/amatino-code/amatino-swift/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amatino-code%2Famatino-swift/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261977503,"owners_count":23239367,"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":["accounting","amatino-api","api-client","api-wrapper","double-entry","double-entry-accounting","double-entry-bookkeeping","ios","ios-swift","macos","macos-swift"],"created_at":"2025-05-30T09:11:13.735Z","updated_at":"2026-04-29T15:33:45.133Z","avatar_url":"https://github.com/amatino-code.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Amatino Swift\nAmatino is an accounting engine. It provides double entry accounting as a service. Amatino is served via a web API. Amatino Swift is a library for interacting with the Amatino API from within a Swift application, on macOS or iOS.\n\n## Under construction\nThe Amatino API pffers a full range of accounting services via HTTP requests. Amatino Swift is in an Alpha state, offering expressive, object-oriented Swift interfaces for almost all Amatino API services.\n\nA few API features, such as [Custom Units](https://amatino.io/documentation/custom_units) and [Entity ](https://amatino.io/documentation/entities) Permissions Graphs, are not yet available in Amatino Swift.  While Amatino's [HTTP documentation](https://amatino.io/documentation) is full and comprehensive, Amatino Swift documentation is still under construction.\n\nTo be notified when Amatino Swift enters a Beta state, with all capabilities and documentation available, sign up to the [Amatino Development Newsletter](https://amatino.io/newsletter).\n\n## Installation\nYou may install Amatino Swift in a variety of ways:\n\n### Carthage\nAdd Amatino to your `Cartfile`:\n\n```\ngithub \"amatino-code/amatino-swift\"\n```\n\nFor help, see the [Carthage quick start guide](https://github.com/Carthage/Carthage#quick-start).\n\n### CocoaPods\nAdd Amatino to your `Podfile`:\n\n```\npod 'Amatino', '\u003e= 0.0.8'\n```\nFor help, see [the CocoaPods user guide](https://guides.cocoapods.org/using/using-cocoapods.html).\n\n### Manually\nYou can clone this repository, compile Amatino, and drag the compiled .framework into your Xcode project. Or, pre-compiled .framework binaries are available on [Amatino Swift's Releases page](https://github.com/amatino-code/amatino-swift/releases).  \n\n## Example Usage\nTo get started, you will need a `Session`. Creating a `Session` is analogous to 'logging in' to Amatino.\n\n```swift\ntry Session.create(\n  email: \"clever@cookie.com\",\n  secret: \"high entropy passphrase\",\n  callback: { (error, session) in\n    // Session instances are the keys to unlocking\n    // Amatino services throughout your application\n})\n```\n All financial data are stored in [`Entities`](https://amatino.io/documentation/entities), ultra-generic objects that may represent a person, company, project, or any other being which you wish to describe with financial information.\n\n```swift\ntry Entity.create(\n  session: session,\n  name: \"Mega Corporation\",\n  callback: { (error, entity) in\n    // We can now store information describing Mega\n    // Corporation\n})\n```\nEntities are structured with [`Accounts`](https://amatino.io/documentation/accounts). For example, a bank account, a pile of physical cash, income from sale of accounting software, or travel expenses.\n```swift\ntry Account.create(\n  session: session,\n  entity: entity,\n  name: \"Widget Sales\",\n  type: .revenue,\n  description: \"Revenue from sale of excellent widgets\",\n  globalUnit: usd,\n  callback( { error, account} in \n\t  // Accounts can be nested, their denominations\n\t  // mixed and matched\n})\n```\nOnce we have some Accounts, we can store records of economic activity! To do so, we use the [`Transaction`](\"https://amatino.io/documentation/transactions\") class.\n```swift\ntry Transaction.create(\n  session: session,\n  entity: entity,\n  transactionTime: Date(),\n  description: \"Record some widget sales\",\n  globalUnit: usd,\n  entries: [\n    Entry(\n      side: .debit,\n      account: cash,\n      amount: Decimal(7)\n    ),\n    Entry(\n      side: .debit,\n      account: customerDeposits,\n      amount: Decimal(3)\n    ),\n    Entry(\n      side: .credit,\n      account: widgetSales,\n      amount: Decimal(10)\n    )\n  ],\n  callback: { (error, transaction) in\n    // Transactions can contain up to 100 constituent\n    // entries, and be denominated in an arbitrary unit\n})\n```\nStoring information is nice, but the real power comes from Amatino's ability to organise and retrieve it. For example, we could retrieve a [`Ledger`](https://amatino.io/documentation/ledgers) that lists all Transactions party to an Account.\n```swift\ntry Ledger.retrieve(\n  session: session,\n  entity: entity,\n  account: widgetSales,\n  callback: { (error, ledger) in\n    // You can also retrieve RecursiveLedgers, which\n    // list all transactions in the target and all the\n    // target's children \n})\n```\nMany more classes and methods are available. However, in this early Alpha state, they are not comprehensively documented. Follow [@AmatinoAPI on Twitter](https://twitter.com/amatinoapi) or sign up to the [Development Newsletter](https://amatino.io/newsletter) to be notified when full documentation is available.\n\n## Development Updates\n\nTo receive occasional updates on Amatino Swift development progress, including notification when the library enters a full-featured beta state, sign up to the [Amatino Development Newsletter](https://amatino.io/newsletter).\n\nGet notified about new library versions by following [@AmatinoAPI](https://amatinoapi) on Twitter.\n\n## Other languages\n\nAmatino libraries are also available in [Python](https://github.com/Amatino-Code/amatino-python) and [Javascript](https://github.com/Amatino-Code/amatino-js).\n  \n## Useful links\n\n-  [Amatino home](https://amatino.io)\n-  [Development blog](https://amatino.io/blog)\n-  [Development newsletter](https://amatino.io/newsletter)\n-  [Discussion forum](https://amatino.io/discussion)\n-  [More Amatino client libraries](https://github.com/amatino-code)\n-  [Documentation](https://amatino.io/documentation)\n- [Billing and account management](https://amatino.io/billing)\n-  [About Amatino Pty Ltd](https://amatino.io/about)\n  \n## Get in contact\n\nTo quickly speak to a human about Amatino, [email hugh@amatino.io](mailto:hugh@amatino.io) or [yell at him on Twitter (@hugh_jeremy)](https://twitter.com/hugh_jeremy).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famatino-code%2Famatino-swift","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famatino-code%2Famatino-swift","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famatino-code%2Famatino-swift/lists"}