{"id":25812347,"url":"https://github.com/codeekage/eyowo-sdk-csharp","last_synced_at":"2025-07-24T05:36:33.117Z","repository":{"id":98677142,"uuid":"341822589","full_name":"codeekage/eyowo-sdk-csharp","owner":"codeekage","description":"Eyowo Developer SDK extends Eyowo core features to third party engineers to build products that contribute to solve financial exclusion in Nigeria and beyond Africa.","archived":false,"fork":false,"pushed_at":"2021-02-25T03:03:51.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-08T13:52:15.681Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/codeekage.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-24T07:57:41.000Z","updated_at":"2021-02-25T03:03:53.000Z","dependencies_parsed_at":"2023-03-21T02:18:01.977Z","dependency_job_id":null,"html_url":"https://github.com/codeekage/eyowo-sdk-csharp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codeekage/eyowo-sdk-csharp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeekage%2Feyowo-sdk-csharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeekage%2Feyowo-sdk-csharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeekage%2Feyowo-sdk-csharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeekage%2Feyowo-sdk-csharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeekage","download_url":"https://codeload.github.com/codeekage/eyowo-sdk-csharp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeekage%2Feyowo-sdk-csharp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266796893,"owners_count":23985492,"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","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-02-28T01:53:39.608Z","updated_at":"2025-07-24T05:36:33.107Z","avatar_url":"https://github.com/codeekage.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# eyowo-sdk-csharp\nEyowo Developer SDK extends Eyowo core features to third party engineers to build products that contribute to solve financial exclusion in Nigeria and beyond Africa.\n\n# Introduction\nThe SDK allows you to build CSharp fintech applications seamlessly while relying on Eyowo's Curated Developer Toolkit.\n\n\n# Getting Started\n\n## Installation\nYou can either install the NuGet package directly from Visual Studio or use the `Install-Package` command.\n\n[NuGet Package](https://www.nuget.org/packages/codeekage.eyowo.sdk/0.0.2)\n\n```shell\nInstall-Package codeekage.eyowo.sdk -Version 0.0.2\n```\n\n## Usage\nThe SDK covers a range of useful features to make building a custom fintech application in CSharp easy.\n\nFirst, complete the [signup](https://eyowo.gitbook.io/eyowo-developer-apis/getting-started/user-account-and-developer-mode) follow here and head back to start building your custom make fintech application.\n\n\u003e Note: This SDK's functionality is governed and regulated by Centeral Bank of Nigeria, under the laws of the Federal Republic of Nigeria. Please, do not be consume this SDK if you're not in Nigeria.\n\n### Base URLs\n\n| Namesapce | Class | Test URL | Prod URL |\n|-----------| ----- | -------- | -------- |\n| EyowoSDK.EyowoDeveloper | EyowoDeveloper | https://api.developer.staging-api.eyowo.com/v1 | https://api.developer.eyowo.com/v1 |\n| EyowoSDK.EyowoApp | EyowoApp | https://api.console.staging-api.eyowo.com/v1 | https://api.console.eyowo.com/v1 |\n| EyowoSDK.EyowoAuth | EyowoAuthAppWallet |  https://api.console.staging-api.eyowo.com/v1 |  https://api.console.eyowo.com/v1 |\n\n### Creating An App\n\n```csharp\n\nusing System;\nusing System.Threading.Tasks;\nusing EyowoSDK.EyowoDeveloper;\n\nnamespace EyowoTestFlight\n{\n    class Program\n    {\n        static async Task Main(string[] args)\n        {\n            EyowoDeveloper eyowoDeveloper = new EyowoDeveloper(\n                   httpBaseURL: \"https://api.developer.staging-api.eyowo.com/v1\",\n                   email: \"codeekage@xxx.ng\",\n                   password: \"xxxxxxx\"\n                );\n\n            (string error, object data) = await eyowoDeveloper.CreateAppAsync(\n                appName: \"Test Flight Application\");\n            \n            if(error != null)\n            {\n                Console.WriteLine($\"Failed to create application. Here's why: {error}\");\n                return;\n            }\n            Console.WriteLine($\"Application {data}\");\n        }\n    }\n}\n```\n\u003e #### Console Output\n```json\nApplication {\n  \"app\": {\n    \"disabled\": false,\n    \"settings\": {\n      \"cardProcessingEnabled\": false,\n      \"userCreationEnabled\": false,\n      \"bvnCheckAmount\": 1500,\n      \"developerMode\": \"test\",\n      \"appTags\": [],\n      \"_id\": \"6036a708xxxxxxxx\"\n    },\n    \"_id\": \"6036a70xxxxxxxxx\",\n    \"deleted\": false,\n    \"developerID\": \"5cxxxxxxx\",\n    \"name\": \"Test Flight Application\",\n    \"key\": \"pk_live_xxxxxxxx\",\n    \"sandboxKey\": \"sk_test_xxxxxx\",\n    \"wallets\": [],\n    \"createdAt\": \"2021-02-24T19:20:40.241Z\",\n    \"updatedAt\": \"2021-02-24T19:20:40.241Z\",\n    \"__v\": 0\n  }\n}\n```\n\n### Send Authentication Request\n\n```csharp\nusing System;\nusing EyowoSDK.EyowoAuth;\nusing System.Threading.Tasks;\n\nnamespace EyowoTestFlight\n{\n    class Program\n    {\n        static async Task Main(string[] args)\n        {\n            Console.Clear();\n            EyowoAuthAppWallet eyowoAuthApp = new EyowoAuthAppWallet(\n                   httpBaseURL: \"https://api.console.staging-api.eyowo.com/v1\",\n                   appKey: \"pk_live_3c23ssss\"\n                );\n\n            (string error, string message) = await eyowoAuthApp.SendAuthRequestAsync(\n                accountNumber: \"70662xxxx\",\n                factor: \"sms\"\n               );\n\n            if (error != null)\n            {\n                Console.WriteLine($\"Failed to send authentication Request. Here's why: {error}\");\n                return;\n            }\n            Console.WriteLine($\"Message {message}\");\n        }\n    }\n}\n\n```\n\n\u003e #### Console Output\n\n```json\nMessage Please enter passcode sent to 234XXXXXXX\n```\n\n### Add Account Wallet to App\n\n```csharp\nusing System;\nusing EyowoSDK.EyowoAuth;\nusing System.Threading.Tasks;\n\nnamespace EyowoTestFlight\n{\n    class Program\n    {\n        static async Task Main(string[] args)\n        {\n            EyowoAuthAppWallet eyowoAuthApp = new EyowoAuthAppWallet(\n                   httpBaseURL: \"https://api.console.staging-api.eyowo.com/v1\",\n                   appKey: \"pk_live_3c232xxxxxx\"\n                );\n\n            (string error, string message, object data) = await eyowoAuthApp.AuthAccount(\n                accountNumber: \"70xxxxxx\",\n                factor: \"sms\",\n                passcode: \"505xxx\"\n                );\n\n            if (error != null)\n            {\n                Console.WriteLine($\"Failed to Authenticate wallet. Here's why: {error}\");\n                return;\n            }\n            Console.WriteLine($\"Application {data}\");\n            Console.WriteLine($\"Message {message}\");\n        }\n    }\n}\n ```\n \n\u003e #### Console Output\n\n```json\n\nApplication\n{\n  \"refreshToken\": \"6036ac9b8c260878xxxxxxxxx\",\n  \"accessToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.exxxxxxxxx\",\n  \"expiresIn\": 86400\n}\nMessage Wallet added successfully\n\n```\n\n### Eyowo Transfer\n\n```csharp\nusing System;\nusing System.Threading.Tasks;\nusing EyowoSDK.EyowoApp;\n\nnamespace EyowoTestFlight\n{\n    class Program\n    {\n        static async Task Main(string[] args)\n        {\n            Console.Clear();\n            EyowoApp eyowoApp = new EyowoApp(\n                   httpBaseURL: \"https://api.console.staging-api.eyowo.com/v1\",\n                   appKey: \"pk_live_3c2328dd21c64xxxxxx\",\n                   refreshToken: \"6036ac9b8c2608xxxxxxx\"\n                );\n\n            (string error, object data) = await eyowoApp.EyowoTransferAsync(\n                accountNumber: \"70662xxxx\",\n                amount: \"33300\"\n             );\n\n            if (error != null)\n            {\n                Console.WriteLine($\"Failed to complete eyowo-to-eyowo transfer. Here's why: {error}\");\n                return;\n            }\n            Console.WriteLine($\"Application {data}\");\n        }\n    }\n}\n```\n\u003e #### Console Output\n```shell\nApplication {\n \"transaction\": {\n    \"reference\": \"6036b7648xxxxxx\",\n    \"amount\": 3333\n  }\n}\n````\n\n### Bank Transfer\n\n```csharp\nusing System;\nusing EyowoSDK.EyowoAuth;\nusing System.Threading.Tasks;\nusing EyowoSDK.EyowoApp;\n\nnamespace EyowoTestFlight\n{\n    class Program\n    {\n        static async Task Main(string[] args)\n        {\n            Console.Clear();\n            EyowoApp eyowoApp = new EyowoApp(\n                   httpBaseURL: \"https://api.console.staging-api.eyowo.com/v1\",\n                   appKey: \"pk_live_3c2328dd2xxxxxxxxx\",\n                   refreshToken: \"6036ac9b8c2608xxxxxxxxxx\"\n                );\n\n            (string error, object data) = await eyowoApp.BankTransferAsync(\n                accountName: \"CODEEKAGE BUILDS\",\n                accountNumber: \"30849xxxx\",\n                amount: 33300,\n                bankCode: \"000016\"\n             ) ;\n\n            if (error != null)\n            {\n                Console.WriteLine($\"Failed to complete bank transfer. Here's why: {error}\");\n                return;\n            }\n            Console.WriteLine($\"Application {data}\");\n        }\n    }\n}\n\n```\n\n\u003e #### Console Output\n\n```json\nApplication {\n  \"transaction\": {\n    \"amount\": 33300,\n    \"accountName\": \"DAMBATTA MARYAM LAMI\",\n    \"transactionReference\": \"6036b0f5xxxxxxx\",\n    \"statusCode\": \"000002\"\n  }\n}\n```\n\n### Requery Bank Transfer (GetBankTransferStatus)\n\n```csharp\n\nusing System;\nusing EyowoSDK.EyowoAuth;\nusing System.Threading.Tasks;\nusing EyowoSDK.EyowoApp;\n\nnamespace EyowoTestFlight\n{\n    class Program\n    {\n        static async Task Main(string[] args)\n        {\n            Console.Clear();\n            EyowoApp eyowoApp = new EyowoApp(\n                   httpBaseURL: \"https://api.console.staging-api.eyowo.com/v1\",\n                   appKey: \"pk_live_3cxxxxxx\",\n                   refreshToken: \"6036ac9b8cxxxxxxxxxxxxx\"\n                );\n\n            (string error, object data) = await eyowoApp.GetBankTransferStatus(\n              transactionRef: \"6036b0f5xxxxxxxx\"\n             ) ;\n\n            if (error != null)\n            {\n                Console.WriteLine($\"Failed to get bank transfer status. Here's why: {error}\");\n                return;\n            }\n            Console.WriteLine($\"Application {data}\");\n        }\n    }\n}\n```\n\n\u003e #### Console Output \n```shell\nApplication \n{\n  \"transaction\": {\n    \"statusMessage\": \"success\",\n    \"statusCode\": \"000000\"\n  }\n}\n```\n\n### Query BVN Number\n\n```csharp\nusing System;\nusing EyowoSDK.EyowoAuth;\nusing System.Threading.Tasks;\nusing EyowoSDK.EyowoApp;\n\nnamespace EyowoTestFlight\n{\n    class Program\n    {\n        static async Task Main(string[] args)\n        {\n            Console.Clear();\n            EyowoApp eyowoApp = new EyowoApp(\n                   httpBaseURL: \"https://api.console.staging-api.eyowo.com/v1\",\n                   appKey: \"pk_live_3c2328xxxxxxxx\",\n                   refreshToken: \"6036ac9b8cxxxxxx\"\n                );\n\n            (string error, object data) = await eyowoApp.QueryBVNAsync(\n              bvnNumber: \"2235xxxxx\"\n             ) ;\n\n            if (error != null)\n            {\n                Console.WriteLine($\"Failed when querying this bvn detials. Here's why: {error}\");\n                return;\n            }\n            Console.WriteLine($\"Application {data}\");\n        }\n    }\n}\n```\n\u003e #### Console Output\n```shell\n Application {\n  \"firstName\": \"RASHEED\",\n  \"surname\": \"AJALA\",\n  \"mobileNumber\": \"080xxxxxxx\",\n  \"middleName\": \"UCHE\",\n  \"dateOfBirth\": \"1998-04-29\"\n}\n\n```\n\n### VTU (Virtual Top-Up) Purchase\n\n```csharp\nusing System;\nusing EyowoSDK.EyowoAuth;\nusing System.Threading.Tasks;\nusing EyowoSDK.EyowoApp;\n\nnamespace EyowoTestFlight\n{\n    class Program\n    {\n        static async Task Main(string[] args)\n        {\n            Console.Clear();\n            EyowoApp eyowoApp = new EyowoApp(\n                   httpBaseURL: \"https://api.console.staging-api.eyowo.com/v1\",\n                   appKey: \"pk_live_3c2328dd2xxxxxxxx\",\n                   refreshToken: \"6036ac9b8c260xxxxxx\"\n                );\n\n            (string error, object data) = await eyowoApp.VtuPurchaseAsync(\n              amount: \"2260\",\n              mobile: \"234706xxxxxx\",\n              provider: \"mtn\"\n             ) ;\n\n            if (error != null)\n            {\n                Console.WriteLine($\"Failed to purchase airtime. Here's why: {error}\");\n                return;\n            }\n            Console.WriteLine($\"Application {data}\");\n        }\n    }\n}\n```\n\n\u003e #### Console Output\n```shell\nApplication\n \"transaction\": {\n    \"reference\": \"6036b45b8c2xxxxxxx\",\n    \"amount\": 2260\n  }\n```\n\n### Get Wallet Transaction by TransactionRef\n\n```csharp\nusing System;\nusing EyowoSDK.EyowoAuth;\nusing System.Threading.Tasks;\nusing EyowoSDK.EyowoApp;\n\nnamespace EyowoTestFlight\n{\n    class Program\n    {\n        static async Task Main(string[] args)\n        {\n            Console.Clear();\n            EyowoApp eyowoApp = new EyowoApp(\n                   httpBaseURL: \"https://api.console.staging-api.eyowo.com/v1\",\n                   appKey: \"pk_live_3c2328dxxxx\",\n                   refreshToken: \"6036ac9b8xxxxxxx\"\n                );\n\n            (string error, object data) = await eyowoApp.GetWalletTransaction(\n              transactionRef: \"6036b45b8cxxxxxx\"\n             ) ;\n\n            if (error != null)\n            {\n                Console.WriteLine($\"Failed to get this wallet transaction. Here's why: {error}\");\n                return;\n            }\n            Console.WriteLine($\"Application {data}\");\n        }\n    }\n}\n```\n\n\u003e #### Console Output\n\n```shell\n  \"transaction\": {\n    \"_id\": \"6036b45b8xxxxxx\",\n    \"amount\": 2260,\n    \"reference\": \"6036b45xxxxxxx\",\n    \"type\": \"bills\",\n    \"recipient\": {\n      \"metadata\": {\n        \"billerName\": \"mtn\",\n        \"billCustomerID\": \"23470xxxxxxxxx\",\n        \"billType\": \"vtu\"\n      }\n    },\n    \"createdAt\": \"2021-02-24T20:17:31.657Z\",\n    \"updatedAt\": \"2021-02-24T20:17:31.657Z\"\n  }\n```\n\n\nOther Functionalities\n\n| Namespace | Class | MethodName | Parameters| Description |\n|-----------| ------ | ---------- | --------| ------------ |\n| EyowoSDK.EyowoApp | EyowoApp | GetWalletTransactionsAsync | `none` | Gets all application transaction done with the wallet token |\n| EyowoSDK.EyowoApp | EyowoApp | GetBanksAsync | `none` | Get all banks and their respective CBN bank codes in Nigeria |\n| EyowoSDK.EyowoApp | EyowoApp | GetWalletsAsync | `none` | Get all wallets associated with the `appKey` |\n| EyowoSDK.EyowoApp | EyowoApp | GetWalletByIdAsync | `string walletID` | Get wallet with the assoicated `appKey` and `walletID` |\n| EyowoSDK.EyowoDeveloper | EyowoDeveloper | GetAppsAysnc | `none` | Get all apps with the assoicated developer account | \n| EyowoSDK.EyowoDeveloper | EyowoDeveloper | GetAppAysnc | `string appID` | Get all apps with the assoicated developer account and `appID` |\n| EyowoSDK.EyowoDeveloper | EyowoDeveloper | GetAppTransaction | `string appID` `string transactionID` | Get transaction with the specified `appID` and `transactionID` | \n| EyowoSDK.EyowoDeveloper | EyowoDeveloper | GetAppTransactions | `none` | Get all transactions with the specified `appID` | \n| EyowoSDK.EyowoDeveloper | EyowoDeveloper | GetAppTransfer | `none` | Get all transfers with the specified `appID`. Both eyowo and bank transfers. | \n\n\n## Final Notes\n\nPlease, contributions are welcomed. \n\n- See a bug? 🐛  : File an issue\n- Have an idea? 💡 : Send a PR\n- Have a question? 🙋 : 📧  codeekagebuilds@gmail.com\n- CSharp doesn't fit my use-case 😥 : Check out [Eyowo's RESTFul](eyowo.gitbook.io) API\n\n**I'll love to see what you build. ❤️ 🍾**\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeekage%2Feyowo-sdk-csharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeekage%2Feyowo-sdk-csharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeekage%2Feyowo-sdk-csharp/lists"}