> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK oficiales

> SDK oficiales de Dodo Payments para TypeScript, Python, Go, PHP, Java, Kotlin, C#, Ruby y Rust, además de SDK de checkout para aplicaciones móviles.

Los SDK oficiales de servidor de Dodo Payments están disponibles en nueve lenguajes. Los SDK de checkout independientes abren el checkout alojado desde aplicaciones de Android, iOS, React Native y Flutter.

<CardGroup cols={3}>
  <Card title="TypeScript" icon="js" href="/developer-resources/sdks/typescript">
    SDK con seguridad de tipos para Node.js, con una API basada en promesas y paginación automática.
  </Card>

  <Card title="Python" icon="python" href="/developer-resources/sdks/python">
    Interfaz idiomática de Python con compatibilidad con async/await para Python 3.9+.
  </Card>

  <Card title="Go" icon="golang" href="/developer-resources/sdks/go">
    Interfaz idiomática de Go con compatibilidad con context y tipado estricto.
  </Card>

  <Card title="PHP" icon="php" href="/developer-resources/sdks/php">
    SDK compatible con PSR-4 para PHP 8.1+.
  </Card>

  <Card title="Java" icon="java" href="/developer-resources/sdks/java">
    SDK seguro para subprocesos para Java 8+, con compatibilidad con Maven y Gradle.
  </Card>

  <Card title="Kotlin" icon="android" href="/developer-resources/sdks/kotlin">
    SDK de Kotlin con coroutines y seguridad frente a valores nulos.
  </Card>

  <Card title="C#" icon="hashtag" href="/developer-resources/sdks/csharp">
    SDK con tipado seguro para .NET Standard 2.0+ y una API basada en tareas async.
  </Card>

  <Card title="Ruby" icon="gem" href="/developer-resources/sdks/ruby">
    SDK de Ruby que sigue las convenciones de Ruby.
  </Card>

  <Card title="Rust" icon="rust" href="/developer-resources/sdks/rust">
    SDK centrado en async, basado en Tokio y reqwest para Rust 1.75+.
  </Card>
</CardGroup>

## Inicio rápido

<Steps>
  <Step title="Install the SDK">
    Instala el SDK para tu lenguaje con su gestor de paquetes.

    <Tabs>
      <Tab title="TypeScript">
        ```bash theme={null}
        npm install dodopayments
        ```
      </Tab>

      <Tab title="Python">
        ```bash theme={null}
        pip install dodopayments
        ```
      </Tab>

      <Tab title="Go">
        ```bash theme={null}
        go get github.com/dodopayments/dodopayments-go
        ```
      </Tab>

      <Tab title="PHP">
        ```bash theme={null}
        composer require dodopayments/client
        ```
      </Tab>

      <Tab title="Java">
        ```kotlin theme={null}
        // build.gradle.kts
        implementation("com.dodopayments.api:dodo-payments-java:1.118.0")
        ```
      </Tab>

      <Tab title="Kotlin">
        ```kotlin theme={null}
        // build.gradle.kts
        implementation("com.dodopayments.api:dodo-payments-kotlin:1.118.0")
        ```
      </Tab>

      <Tab title="C#">
        ```bash theme={null}
        dotnet add package DodoPayments.Client
        ```
      </Tab>

      <Tab title="Ruby">
        ```bash theme={null}
        bundle add dodopayments
        ```
      </Tab>

      <Tab title="Rust">
        ```bash theme={null}
        cargo add dodopayments
        ```
      </Tab>
    </Tabs>

    Para consultar las coordenadas de Maven y las opciones específicas de cada versión, consulta la página de cada SDK.
  </Step>

  <Step title="Initialize the Client">
    Lee tu API key desde la variable de entorno `DODO_PAYMENTS_API_KEY`. Los ejemplos se conectan al modo de prueba; consulta [Modo de prueba frente a modo activo](/miscellaneous/test-mode-vs-live-mode).

    <Tabs>
      <Tab title="TypeScript">
        ```typescript theme={null}
        import DodoPayments from 'dodopayments';

        const client = new DodoPayments({
          bearerToken: process.env.DODO_PAYMENTS_API_KEY,
          environment: 'test_mode',
        });
        ```
      </Tab>

      <Tab title="Python">
        ```python theme={null}
        import os
        from dodopayments import DodoPayments

        client = DodoPayments(
            bearer_token=os.environ["DODO_PAYMENTS_API_KEY"],
            environment="test_mode",
        )
        ```
      </Tab>

      <Tab title="Go">
        ```go theme={null}
        import (
            "os"

            "github.com/dodopayments/dodopayments-go"
            "github.com/dodopayments/dodopayments-go/option"
        )

        client := dodopayments.NewClient(
            option.WithBearerToken(os.Getenv("DODO_PAYMENTS_API_KEY")),
            option.WithEnvironmentTestMode(),
        )
        ```
      </Tab>

      <Tab title="PHP">
        ```php theme={null}
        use Dodopayments\Client;

        $client = new Client(
            bearerToken: getenv('DODO_PAYMENTS_API_KEY'),
            baseUrl: 'https://test.dodopayments.com',
        );
        ```
      </Tab>

      <Tab title="Rust">
        ```rust theme={null}
        use dodopayments::{Client, ClientConfig, Environment};

        let config = ClientConfig::from_env()
            .expect("DODO_PAYMENTS_API_KEY must be set")
            .with_environment(Environment::TestMode);
        let client = Client::new(config).expect("failed to create client");
        ```
      </Tab>
    </Tabs>

    Para Java, Kotlin, C# y Ruby, consulta la configuración del cliente en la página de cada SDK.

    <Warning>
      Mantén las API keys en variables de entorno o en un gestor de secretos. Nunca las incluyas en el control de versiones.
    </Warning>
  </Step>

  <Step title="Create a Checkout Session">
    Crea una sesión de checkout y redirige al cliente a la URL `checkout_url` devuelta.

    ```typescript theme={null}
    const session = await client.checkoutSessions.create({
      product_cart: [{ product_id: 'YOUR_PRODUCT_ID', quantity: 1 }],
    });

    console.log(session.checkout_url);
    ```

    Para realizar la misma llamada en otros lenguajes, así como para payment links y webhooks, consulta la [Guía de integración](/developer-resources/integration-guide).
  </Step>
</Steps>

## Funciones principales

Todos los SDK de backend incluyen:

* **Seguridad de tipos**: Tipado estricto para garantizar la seguridad en tiempo de compilación y ofrecer un mejor soporte en el IDE.
* **Gestión de errores**: Errores tipados que exponen el estado HTTP y el cuerpo del error devuelto por la API.
* **Autenticación**: Autenticación mediante API key, leída desde una variable de entorno.
* **Compatibilidad con async**: Patrones modernos de async/await cuando corresponde.
* **Paginación automática**: Paginación automática para las respuestas de listas.
* **Eventos de uso**: Métodos para enviar eventos de uso para la facturación basada en el uso.
* **Modo de prueba**: Un ajuste que dirige el cliente al modo de prueba, por lo que no se mueve dinero real.

## SDK de Checkout móvil

Para aplicaciones nativas de Android, iOS, React Native y Flutter, utiliza los SDK de checkout móvil. Abren la página de checkout alojada de Dodo en la superficie de navegador real de la plataforma (no un WebView), por lo que Apple Pay y Google Pay funcionan igual que en la web abierta.

Los cuatro SDK móviles comparten el mismo contrato: `start(...)` devuelve un `CheckoutResult` tipado, ninguno contiene una API key y nunca llaman a la API directamente.

<CardGroup cols={2}>
  <Card title="Android" icon="android" href="/developer-resources/sdks/android">
    SDK de Kotlin que abre una pestaña personalizada de Chrome. Requiere `minSdk` 23.
  </Card>

  <Card title="iOS" icon="apple" href="/developer-resources/sdks/ios">
    SDK de Swift que abre SFSafariViewController. Requiere iOS 16+.
  </Card>

  <Card title="React Native" icon="react" href="/developer-resources/sdks/react-native">
    Turbo Module sobre ambos núcleos nativos. Requiere React Native 0.76+.
  </Card>

  <Card title="Flutter" icon="layer-group" href="/developer-resources/sdks/flutter">
    Canal Pigeon sobre ambos núcleos nativos. Requiere Flutter 3.44+.
  </Card>
</CardGroup>

<Card title="Mobile Integration Guide" icon="mobile" href="/developer-resources/mobile-integration">
  Flujo de pago móvil de extremo a extremo, desde la sesión de checkout del backend hasta la configuración del esquema de callback.
</Card>

## Interfaz de línea de comandos

La CLI de Dodo gestiona pagos, clientes y webhooks desde tu terminal. Incluye una TUI interactiva, un asistente de IA y herramientas para probar webhooks.

<Card title="CLI" icon="terminal" href="/developer-resources/sdks/cli">
  Cliente de terminal interactivo con asistente de IA y pruebas de webhooks.
</Card>

Instálala en macOS o Linux con:

```bash theme={null}
curl -fsSL https://dodopayments.com/install.sh | sh
```

## Adaptadores de frameworks

Los adaptadores añaden checkout, Customer Portal y controladores de webhook a tu framework.

### Frameworks recomendados

<CardGroup cols={2}>
  <Card title="Next.js" icon="atom" href="/developer-resources/nextjs-adaptor">
    Controladores de rutas para checkout, Customer Portal y webhooks en el App Router.
  </Card>

  <Card title="Better Auth" icon="shield" href="/developer-resources/better-auth-adaptor">
    Crea un cliente cuando un usuario se registre y añade checkout y Customer Portal a tu flujo de autenticación.
  </Card>

  <Card title="Supabase" icon="database" href="/developer-resources/supabase-boilerplate">
    Starter de Next.js y Supabase con autenticación, esquema de base de datos, webhooks y una página de precios.
  </Card>

  <Card title="Convex" icon="database" href="/developer-resources/convex-component">
    Checkout, Customer Portal y funciones de webhook para tu backend de Convex.
  </Card>
</CardGroup>

<AccordionGroup>
  <Accordion title="All Other Framework Adaptors">
    <CardGroup cols={4}>
      <Card title="SvelteKit" icon="js" href="/developer-resources/sveltekit-adaptor" />

      <Card title="Nuxt" icon="vuejs" href="/developer-resources/nuxt-adaptor" />

      <Card title="Remix" icon="react" href="/developer-resources/remix-adaptor" />

      <Card title="Express" icon="js" href="/developer-resources/express-adaptor" />

      <Card title="Fastify" icon="bolt" href="/developer-resources/fastify-adaptor" />

      <Card title="Hono" icon="cloud" href="/developer-resources/hono-adaptor" />

      <Card title="Astro" icon="star" href="/developer-resources/astro-adaptor" />

      <Card title="TanStack" icon="chart-line" href="/developer-resources/tanstack-adaptor" />

      <Card title="Bun" icon="bread-slice" href="/developer-resources/bun-adaptor" />
    </CardGroup>
  </Accordion>
</AccordionGroup>

## Migración desde el SDK de Node.js

<Info>
  El SDK de TypeScript reemplaza al SDK heredado de Node.js. Si utilizas el SDK de Node.js, consulta la [guía de migración](https://github.com/dodopayments/dodopayments-typescript/blob/main/MIGRATION.md) para actualizar tu integración.
</Info>

## Obtener ayuda

* **Discord**: Únete a nuestro [servidor de la comunidad](https://discord.gg/bYqAp4ayYh) para recibir ayuda en tiempo real.
* **Correo electrónico**: Contáctanos en [support@dodopayments.com](mailto:support@dodopayments.com).
* **GitHub**: Abre un issue en el repositorio del SDK correspondiente.
* **Documentación**: Visita la [referencia de la API](/api-reference/introduction).

## Contribuir

Cada repositorio de SDK acepta contribuciones. La mayoría tiene un archivo `CONTRIBUTING.md` con directrices para informar de errores, solicitar funciones, enviar pull requests, ejecutar pruebas y seguir las convenciones de estilo del código.

Visita las páginas individuales de los SDK para acceder a sus repositorios de GitHub y a las directrices de contribución.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.