{"id":22576632,"url":"https://github.com/ndolestudio/flutterwave-go","last_synced_at":"2025-09-14T23:08:25.870Z","repository":{"id":57636351,"uuid":"427593184","full_name":"NdoleStudio/flutterwave-go","owner":"NdoleStudio","description":"Unofficial Go client for the flutterwave API","archived":false,"fork":false,"pushed_at":"2025-03-05T10:56:31.000Z","size":47,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T17:34:20.783Z","etag":null,"topics":["api-client","api-client-go","flutterwave","flutterwave-api"],"latest_commit_sha":null,"homepage":"https://developer.flutterwave.com/reference","language":"Go","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/NdoleStudio.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,"zenodo":null}},"created_at":"2021-11-13T07:01:23.000Z","updated_at":"2025-03-05T10:56:35.000Z","dependencies_parsed_at":"2025-03-05T11:30:21.855Z","dependency_job_id":null,"html_url":"https://github.com/NdoleStudio/flutterwave-go","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/NdoleStudio/flutterwave-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NdoleStudio%2Fflutterwave-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NdoleStudio%2Fflutterwave-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NdoleStudio%2Fflutterwave-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NdoleStudio%2Fflutterwave-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NdoleStudio","download_url":"https://codeload.github.com/NdoleStudio/flutterwave-go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NdoleStudio%2Fflutterwave-go/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263503384,"owners_count":23476752,"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":["api-client","api-client-go","flutterwave","flutterwave-api"],"created_at":"2024-12-08T04:07:24.729Z","updated_at":"2025-07-04T11:39:24.949Z","avatar_url":"https://github.com/NdoleStudio.png","language":"Go","readme":"# flutterwave-go\n\n[![Build](https://github.com/NdoleStudio/flutterwave-go/actions/workflows/main.yml/badge.svg)](https://github.com/NdoleStudio/flutterwave-go/actions/workflows/main.yml)\n[![codecov](https://codecov.io/gh/NdoleStudio/flutterwave-go/branch/main/graph/badge.svg)](https://codecov.io/gh/NdoleStudio/flutterwave-go)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/NdoleStudio/flutterwave-go/badges/quality-score.png?b=main)](https://scrutinizer-ci.com/g/NdoleStudio/flutterwave-go/?branch=main)\n[![Go Report Card](https://goreportcard.com/badge/github.com/NdoleStudio/flutterwave-go)](https://goreportcard.com/report/github.com/NdoleStudio/flutterwave-go)\n[![GitHub contributors](https://img.shields.io/github/contributors/NdoleStudio/flutterwave-go)](https://github.com/NdoleStudio/flutterwave-go/graphs/contributors)\n[![GitHub license](https://img.shields.io/github/license/NdoleStudio/flutterwave-go?color=brightgreen)](https://github.com/NdoleStudio/flutterwave-go/blob/master/LICENSE)\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/NdoleStudio/flutterwave-go)](https://pkg.go.dev/github.com/NdoleStudio/flutterwave-go)\n\n\nThis package provides a `go` client for interacting with the [Flutterwave API](https://developer.flutterwave.com/docs)\n\n## Installation\n\n`flutterwave-go` is compatible with modern Go releases in module mode, with Go installed:\n\n```bash\ngo get github.com/NdoleStudio/flutterwave-go\n```\n\nAlternatively the same can be achieved if you use `import` in a package:\n\n```go\nimport \"github.com/NdoleStudio/flutterwave-go\"\n```\n\n## Implemented\n\n- **[Bills](#bills)**\n  - `POST /bills/`: Create a bill payment\n  - `GET /bill-items/:item_code/validate`: Validate services like DStv smartcard number, Meter number etc.\n  - `GET /bills/:reference`: Get the verbose status of a bill payment\n- **Payments**\n  - `GET /v3/transactions/:id/verify`: Verify a transaction\n  - `POST /v3/transactions/:id/refund`: Create a Refund\n- **Transfers**\n  - `GET /v3/transfers/rates`: Get the transfer rate of a transaction\n\n## Usage\n\n### Initializing the Client\n\nAn instance of the `flutterwave` client can be created using `New()`.\n\n```go\npackage main\n\nimport (\n\t\"github.com/NdoleStudio/flutterwave-go\"\n)\n\nfunc main()  {\n\tclient := flutterwave.New(\n\t\tflutterwave.WithSecretKey(\"\" /* flutterwave Secret Key */),\n\t)\n}\n```\n\n### Error handling\n\nAll API calls return an `error` as the last return object. All successful calls will return a `nil` error.\n\n```go\ndata, httpResponse, err := flutterwaveClient.Bills.Create(context.Background(), request)\nif err != nil {\n    //handle error\n}\n```\n\n### BILLS\n\n#### Create a bill payment\n\n`POST /bills/`: Create a bill payment\n\n```go\nresponse, _, err := flutterwaveClient.Bills.CreatePayment(context.Background(), \u0026BillsCreatePaymentRequest{\n    Country:    \"NG\",\n    Customer:   \"7034504232\",\n    Amount:     100,\n    Recurrence: \"ONCE\",\n    Type:       \"DSTV\",\n    Reference:  uuid.New().String(),\n    BillerName: \"DSTV\",\n})\n\nif err != nil {\n    log.Fatal(err)\n}\n\nlog.Println(response.Status) // success\n```\n\n\n#### Create a bill payment\n\n`GET /bill-items/{item_code}/validate`: validate services like DSTV smartcard number, Meter number etc.\n\n```go\nresponse, _, err := flutterwaveClient.Bills.Validate(context.Background(), \"CB177\", \"BIL099\", \"08038291822\")\n\nif err != nil {\n    log.Fatal(err)\n}\n\nlog.Println(response.Status) // success\n```\n\n#### Get verbose status of a bill payment\n\n`GET /bills/{reference}`: get the verbose status of a bill purchase\n\n```go\nresponse, _, err := flutterwaveClient.Bills.GetStatusVerbose(context.Background(), \"9300049404444\")\n\nif err != nil {\n    log.Fatal(err)\n}\n\nlog.Println(response.Status) // success\n```\n\n## Testing\n\nYou can run the unit tests for this client from the root directory using the command below:\n\n```bash\ngo test -v\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndolestudio%2Fflutterwave-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fndolestudio%2Fflutterwave-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndolestudio%2Fflutterwave-go/lists"}