Skip to content

Quickstart

The client reads configuration from environment variables (12‑factor). You may also provide a path to a directory containing a .env file using WithEnvFile or the backward‑compatible NewDarajaClient.

Minimal example

package main

import (
  "log"
  daraja "github.com/silaselisha/go-daraja/pkg/handler"
)

func main() {
  client, err := daraja.NewClient()
  if err != nil { log.Fatal(err) }

  // STK Push (NI)
  _, err = client.NIPush("payment for order #123", "0712345678", 100)
  if err != nil { log.Fatal(err) }
}

With functional options

httpClient := &http.Client{ Timeout: 20 * time.Second }
client, err := daraja.NewClient(
  daraja.WithHTTPClient(httpClient),
  daraja.WithEnvFile("./example"), // loads ./example/.env if present
)

Backward‑compatible constructor

client, err := daraja.NewDarajaClient("./example")