# Go SDK[](#go-sdk)

> For the complete machine-readable documentation index, see [llms.txt](https://apidocs.chargebee.com/llms.txt).


The official Chargebee Go SDK provides a convenient way to interact with the Chargebee API from your Go applications.

## Installation[](#installation)

## Requirements[](#requirements)

-   Go 1.18 or later

## Quick Start[](#quick-start)

## Create a Resource[](#create-a-resource)

## List & Pagination[](#list-pagination)

Use typed filter structs for filtering:

## Idempotent Requests[](#idempotent-requests)

Use the builder method `.SetIdempotencyKey()`:

## Error Handling[](#error-handling)

The SDK classifies errors into distinct types:

## Webhooks[](#webhooks)

### High-Level Handler[](#high-level-handler)

### Low-Level Parsing[](#low-level-parsing)

## Retry & Rate Limits[](#retry-rate-limits)

Retries are disabled by default. Enable with `RetryConfig`:

Rate-limited responses (HTTP 429) are automatically retried after the `Retry-After` duration.

## OpenTelemetry[](#opentelemetry)

Request telemetry is supported in all Chargebee client libraries. Pass a telemetry adapter when configuring the client to emit standardized spans (`chargebee.{resource}.{operation}`) with OTel HTTP and `chargebee.*` attributes.

See [OpenTelemetry integration](/docs/api/opentelemetry) for span attributes and language-specific examples.

## Migration Guide[](#migration-guide)

If upgrading from v2 to v3, see the [migration guide](https://github.com/chargebee/chargebee-go/wiki/Migration-guide-for-v3).

## Links[](#links)

-   [GitHub Repository](https://github.com/chargebee/chargebee-go)
-   [Go Package](https://pkg.go.dev/github.com/chargebee/chargebee-go/v3)
-   [API Reference](/docs/api/getting-started)