This package provides a go
client for interacting with the Flutterwave API
flutterwave-go
is compatible with modern Go releases in module mode, with Go installed:
go get github.com/NdoleStudio/flutterwave-go
Alternatively the same can be achieved if you use import
in a package:
import "github.com/NdoleStudio/flutterwave-go"
- Bills
POST /bills/
: Create a bill paymentGET /bill-items/:item_code/validate
: Validate services like DStv smartcard number, Meter number etc.GET /bills/:reference
: Get the verbose status of a bill payment
- Payments
GET /v3/transactions/:id/verify
: Verify a transactionPOST /v3/transactions/:id/refund
: Create a Refund
An instance of the flutterwave
client can be created using New()
.
package main
import (
"github.com/NdoleStudio/flutterwave-go"
)
func main() {
client := flutterwave.New(
flutterwave.WithSecretKey("" /* flutterwave Secret Key */),
)
}
All API calls return an error
as the last return object. All successful calls will return a nil
error.
data, httpResponse, err := flutterwaveClient.Bills.Create(context.Background(), request)
if err != nil {
//handle error
}
POST /bills/
: Create a bill payment
response, _, err := flutterwaveClient.Bills.CreatePayment(context.Background(), &BillsCreatePaymentRequest{
Country: "NG",
Customer: "7034504232",
Amount: 100,
Recurrence: "ONCE",
Type: "DSTV",
Reference: uuid.New().String(),
BillerName: "DSTV",
})
if err != nil {
log.Fatal(err)
}
log.Println(response.Status) // success
GET /bill-items/{item_code}/validate
: validate services like DSTV smartcard number, Meter number etc.
response, _, err := flutterwaveClient.Bills.Validate(context.Background(), "CB177", "BIL099", "08038291822")
if err != nil {
log.Fatal(err)
}
log.Println(response.Status) // success
GET /bills/{reference}
: get the verbose status of a bill purchase
response, _, err := flutterwaveClient.Bills.GetStatusVerbose(context.Background(), "9300049404444")
if err != nil {
log.Fatal(err)
}
log.Println(response.Status) // success
You can run the unit tests for this client from the root directory using the command below:
go test -v
This project is licensed under the MIT License - see the LICENSE file for details