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

# SDK de la Terminal

> Conecta tu aplicación directamente con una terminal PayCode para controlar transacciones, impresión y más.

## ¿Qué es el SDK de la Terminal?

El SDK de la Terminal, llamado **PayCode Connect**, permite que una aplicación se comunique de forma directa con una terminal física PayCode (TPV), sin depender de un servidor intermedio. La comunicación ocurre en una red punto a punto (P2P) entre el dispositivo donde corre tu aplicación y la terminal, lo que hace posible enviar comandos y recibir eventos en tiempo real.

Con PayCode Connect tu aplicación puede, entre otras cosas:

* Iniciar y controlar transacciones EMV (pago con tarjeta) directamente desde tu software.
* Recibir el resultado de cada transacción en tiempo real, incluyendo el estado del proceso (esperando tarjeta, procesando, aprobado, error).
* Usar la terminal como lector de códigos de barras.
* Reimprimir o revertir transacciones anteriores.
* Detectar si la conexión con la terminal se perdió, y recuperar transacciones que quedaron sin confirmar.

## ¿Para qué sirve?

Este mecanismo está pensado para negocios que ya tienen (o están construyendo) su propio software de punto de venta y que necesitan integrarlo directamente con el hardware de PayCode, en lugar de depender de la interfaz que trae la terminal por defecto.

Es la opción indicada cuando el negocio quiere:

* Disparar un cobro desde su propio sistema (por ejemplo, al cerrar una cuenta o un pedido).
* Mostrar el estado de la transacción dentro de su propia interfaz, en vez de que el cliente solo vea la pantalla de la terminal.
* Asociar cada transacción con datos propios del negocio (número de mesa, folio de orden, etc.) usando metadata.
* Automatizar procesos como reimpresión de tickets o reversión de pagos desde su software.

## ¿Quién lo puede usar?

PayCode Connect requiere que el negocio cuente con una terminal física PayCode y con un equipo de desarrollo propio (interno o un proveedor externo) capaz de integrar un SDK en su aplicación. No es una integración pensada para negocios que solo quieren cobrar en línea; para eso existen los mecanismos de [Payment Link, Checkout Elements o Full API](/full-api).

Actualmente PayCode Connect está disponible en dos lenguajes, según el tipo de aplicación que tenga el negocio:

<CardGroup cols={2}>
  <Card title="C#/.NET" href="/paycode-connect-dotnet">
    Para aplicaciones de escritorio en Windows, construidas con WPF, WinUI, UWP o MAUI.
  </Card>

  <Card title="TypeScript" href="/paycode-connect-typescript">
    Para aplicaciones web que necesitan comunicarse con una terminal PayCode desde el navegador.
  </Card>
</CardGroup>

<Info>
  Existen también versiones internas del SDK en Rust, Kotlin y C, pensadas para Android y otras plataformas. Por ahora no están documentadas públicamente; si tu proyecto lo requiere, contacta a tu ejecutivo de cuenta en PayCode.
</Info>

## Cómo funciona, en resumen

El flujo de integración es el mismo sin importar el lenguaje:

1. **Setup**: se inicializa el SDK en el dispositivo del negocio, creando un nodo local.
2. **Conexión**: se genera un código QR que la terminal escanea para establecer la conexión P2P.
3. **Eventos y comandos**: una vez conectados, la aplicación puede enviar comandos (como iniciar un cobro) y suscribirse a eventos (como el estado de la transacción o la presencia de la terminal).

Los detalles específicos de instalación y código varían según el lenguaje, así que revisa la guía correspondiente a tu stack.
