Cliente HTTP oficial em Go para integração com a API da AbacatePay.
Rápido, seguro, idiomático e pronto para produção.
go get github.com/AbacatePay/go-rest@latestimport "github.com/AbacatePay/go-rest"
client := abacatepay.New(abacatepay.Options{
Secret: "ABACATEPAY_SECRET",
})Ou via variável de ambiente
export ABACATEPAY_SECRET=...Por padrão, o SDK utiliza a versão v2 da API.
Você pode sobrescrever:
client := abacatepay.New(abacatepay.Options{
Version: 1,
})- 3 tentativas
- Retry em 408, 429, 5xx
- Backoff exponencial
Customização
client := abacatepay.New(abacatepay.Options{
Retry: abacatepay.RetryOptions{
Max: 5,
OnRetry: func(attempt int) {
log.Println("retry", attempt)
},
},
})client := abacatepay.New(abacatepay.Options{
Timeout: 3 * time.Second,
})package main
import (
"fmt"
types "github.com/AbacatePay/go-types/v2"
abacatepay "github.com/AbacatePay/go-rest"
)
func main() {
client := abacatepay.New(abacatepay.Options{
Secret: "YOUR_SECRET",
})
body := types.RESTPostCreateCouponBody{
Value: 10,
Code: "PROMO10",
Type: "PERCENTAGE",
}
res, err := client.Post[types.RESTPostCreateCouponData](
v2.RouteCreateCoupon,
body,
)
if err != nil {
panic(err)
}
fmt.Println("Coupon ID:", res.ID)
}if err != nil {
switch e := err.(type) {
case *abacatepay.AbacatePayError:
fmt.Println("API error:", e.Message)
case *abacatepay.HTTPError:
fmt.Println("HTTP error:", e.Status)
default:
fmt.Println("Unknown error:", err)
}
} Feito com 🥑 pela equipe AbacatePay
Open source, de verdade.