> ## 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.

# Rekomi

> Ejecuta un programa de afiliados en tu tienda de Dodo Payments con Rekomi. Una clave de API pegada conecta ambos servicios, y Rekomi realiza el seguimiento de las ventas y paga a tus afiliados.

## Introducción

[Rekomi](https://rekomi.com) es una plataforma de seguimiento y gestión de afiliados con una integración nativa con Dodo Payments. Un afiliado comparte un enlace y Rekomi registra el clic. Cuando esa persona compra, Dodo Payments envía la venta a Rekomi, que la atribuye al afiliado correcto. Rekomi calcula la comisión y paga a tus afiliados por ti, en más de 150 países e incluyendo los formularios fiscales.

Para conectarte, pegas una API key de Dodo Payments con acceso de escritura en Rekomi. Rekomi valida la key, crea el endpoint de webhook en tu cuenta de Dodo Payments y obtiene el signing secret del endpoint. No tienes que completar un formulario de webhook ni pegar nada de vuelta en Dodo Payments.

<Info>
  Rekomi atribuye una venta a un afiliado cuando un cliente referido completa un pago único, inicia una suscripción de pago o paga una renovación. Los reembolsos y las disputas revierten la comisión automáticamente.
</Info>

## Cómo funciona

Dodo Payments aloja el checkout en su propio dominio, por lo que la referencia del afiliado llega a la venta como metadata del checkout:

1. Un visitante hace clic en un enlace de afiliado y llega a tu sitio, donde el script de Rekomi guarda la referencia en su navegador.
2. En el checkout, adjuntas esa referencia al pago como metadatos `rekomi_ref`.
3. Dodo Payments procesa el pago y envía un webhook firmado `payment.succeeded` al endpoint que creó Rekomi.
4. Rekomi relaciona la referencia con el afiliado, calcula la comisión sobre el importe de la venta antes de impuestos y la registra.

Las renovaciones de suscripciones llegan de la misma forma, por lo que las comisiones recurrentes no requieren trabajo adicional. Los reembolsos y las disputas también llegan a través del mismo endpoint.

## Requisitos previos

Antes de configurar esta integración, necesitas:

1. Una [cuenta de Dodo Payments](https://app.dodopayments.com) en modo live
2. Una [cuenta de Rekomi](https://app.rekomi.com/sign-up)
3. Una API key de Dodo Payments con **acceso de escritura** habilitado, porque las keys de solo lectura no pueden crear webhooks

## Primeros pasos

<Steps>
  <Step title="Create an API Key with Write Access">
    <Warning>
      Habilita el acceso de escritura en la key. Una key de solo lectura supera la validación, pero no puede crear el endpoint de webhook, por lo que la conexión falla a mitad del proceso.
    </Warning>

    En el dashboard de Dodo Payments, ve a **Developer → API Keys** y haz clic en **Add API Key**. Asigna a la key el nombre `Rekomi` y mantén marcada la opción **Enable write access**. Para obtener más información, consulta [Authentication](/api-reference/introduction#authentication).
  </Step>

  <Step title="Paste the Key into Rekomi">
    En Rekomi, abre **Setup → Connect payment processor**, elige Dodo Payments y pega la key. Rekomi la valida, crea el endpoint de webhook en tu cuenta y obtiene el signing secret del endpoint.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/ic2bWXoH5_Rw-GN5/images/integrations/rekomi/connect.png?fit=max&auto=format&n=ic2bWXoH5_Rw-GN5&q=85&s=2271768fc16cecec3196c8006e0c73ab" alt="Página de configuración de Dodo Payments de Rekomi con el único campo de clave de API y el botón de conexión" style={{ maxHeight: '500px', width: 'auto' }} width="1280" height="690" data-path="images/integrations/rekomi/connect.png" />
    </Frame>

    <Info>
      Después de conectarte, Rekomi usa la key únicamente para gestionar el endpoint de webhook y realizar comprobaciones periódicas de estado. Tus ventas llegan a través del webhook firmado, no mediante la API.
    </Info>
  </Step>

  <Step title="Install the Rekomi Script">
    Añade el script de seguimiento de Rekomi a tu sitio de marketing para registrar los clics de afiliados. Rekomi muestra tu snippet, con el ID del programa rellenado, en **Setup → Install**.

    ```html theme={null}
    <script
      async
      src="https://api.rekomi.com/api/v1/r/loader.js"
      data-program-id="YOUR_PROGRAM_ID"
    ></script>
    ```
  </Step>

  <Step title="Pass the Referral into Checkout">
    Adjunta la referencia capturada a cada pago como metadatos `rekomi_ref`. En la [Implementation Guide](#implementation-guide) se explica cómo hacerlo para cada tipo de checkout.
  </Step>

  <Step title="Done">
    Las ventas, renovaciones, devoluciones y disputas ahora atribuyen y revierten las comisiones de afiliados automáticamente, y Rekomi paga a tus afiliados.
  </Step>
</Steps>

## Guía de implementación

### Checkout Sessions mediante la API

En tu frontend, lee la referencia con `window.Rekomi.getReferral()` y envíala a tu backend con la solicitud de checkout. En el backend, establécela en `metadata`:

```typescript Node.js theme={null}
import DodoPayments from 'dodopayments';

// Reads DODO_PAYMENTS_API_KEY from the environment and defaults to live mode.
const client = new DodoPayments();

export async function createCheckout(productId: string, rekomiRef?: string) {
  const session = await client.checkoutSessions.create({
    product_cart: [{ product_id: productId, quantity: 1 }],
    customer: {
      email: 'customer@example.com',
      name: 'John Doe',
    },
    return_url: 'https://yoursite.com/success',
    metadata: {
      ...(rekomiRef ? { rekomi_ref: rekomiRef } : {}),
    },
  });

  return session.checkout_url;
}
```

El mismo campo `metadata.rekomi_ref` funciona en los productos de suscripción, por lo que el primer cargo y cada renovación atribuyen la comisión al mismo afiliado.

### Payments API

<Note>
  El ejemplo siguiente usa `POST /payments`, que está **deprecated**. Sigue funcionando para las integraciones existentes. Las integraciones nuevas deben usar [Checkout Sessions](/developer-resources/checkout-session) (`POST /checkouts`), que reciben `metadata` de la misma forma.
</Note>

```typescript Node.js theme={null}
import DodoPayments from 'dodopayments';

// Reads DODO_PAYMENTS_API_KEY from the environment and defaults to live mode.
const client = new DodoPayments();

export async function createPayment(productId: string, rekomiRef?: string) {
  const payment = await client.payments.create({
    billing: {
      city: 'New York',
      country: 'US',
      state: 'NY',
      street: '123 Main St',
      zipcode: '10001',
    },
    customer: {
      email: 'customer@example.com',
      name: 'John Doe',
    },
    product_cart: [{ product_id: productId, quantity: 1 }],
    payment_link: true,
    metadata: {
      ...(rekomiRef ? { rekomi_ref: rekomiRef } : {}),
    },
  });

  return payment;
}
```

### Enlaces de pago estáticos

Añade la referencia al enlace como un parámetro de consulta `metadata_rekomi_ref` plano, no con la forma entre corchetes:

```javascript theme={null}
const ref = window.Rekomi?.getReferral?.();
let url = 'https://checkout.dodopayments.com/buy/YOUR_PRODUCT_ID';
if (ref) url += `?metadata_rekomi_ref=${encodeURIComponent(ref)}`;
// use url as the href on your Buy button
```

Dodo Payments añade los parámetros de consulta `metadata_*` a los metadatos del pago, donde Rekomi los lee.

## Qué se registra

Rekomi gestiona cada tipo de evento de venta de la siguiente manera:

| Evento | Qué sucede |
| - | - |
| Pago único | Comisión atribuida sobre el importe de la venta antes de impuestos |
| Renovación de suscripción | Comisión recurrente; cada cargo llega como su propio evento de pago |
| Reembolso | La comisión se revierte automáticamente, hasta el importe atribuido |
| Disputa | La comisión se revierte en cuanto se abre la disputa |

<Tip>
  Rekomi calcula las comisiones sobre el importe de la venta antes de impuestos. Dodo Payments es el Merchant of Record y recauda los impuestos, por lo que tus afiliados ganan sobre la venta en sí, no sobre el impuesto que añade el país del comprador.
</Tip>

## Notas importantes

* Rekomi registra el endpoint de webhook exactamente con los eventos que necesita. No edites la lista de eventos de ese endpoint en el dashboard de Dodo Payments: las comprobaciones de estado de Rekomi marcarán la conexión si se eliminan eventos.
* Una prueba gratuita no crea ningún pago hasta que finaliza, por lo que no existe ninguna comisión hasta el primer cargo. Una [prueba de pago](/features/subscription#paid-trials) cobra el importe de la prueba por adelantado.
* Desconectarte en Rekomi elimina el endpoint de webhook de tu cuenta de Dodo Payments.

## Recursos adicionales

<CardGroup cols={2}>
  <Card title="Rekomi's Dodo Payments Guide" icon="book-open" href="https://rekomi.com/docs/brands/install/dodo">
    El recorrido completo de configuración, la solución de problemas y los detalles de seguridad en la documentación de Rekomi.
  </Card>

  <Card title="Affiliates Feature Guide" icon="users" href="/features/affiliates">
    Todas las opciones de integración de afiliados para Dodo Payments.
  </Card>
</CardGroup>

<Info>
  Si necesitas ayuda con la integración, contacta con el equipo de soporte de Rekomi en [support@rekomi.com](mailto:support@rekomi.com) o con el equipo de soporte de Dodo Payments en [support@dodopayments.com](mailto:support@dodopayments.com).
</Info>


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