> Chytapay es una plataforma de cobros por transferencia en Argentina. Esta página es parte de la doc de la Integration API: https://chytapay.com.ar/api/
> Conciliación recomendada: por CUIL. Ambientes: test (https://integration-api.test.chytapay.com.ar) y producción (https://integration-api.chytapay.com.ar).
> Página: "Cómo funciona" (https://chytapay.com.ar/api/concepts/), actualizada el 2026-10-09.
> Índice completo para asistentes de IA: https://chytapay.com.ar/llms.txt

# Cómo funciona

Quién es quién en una integración, cómo se vinculan las cuentas de comercio y qué modelo de integración conviene.

1. [Actores](https://chytapay.com.ar/api/concepts/#actores): quién usa qué credencial
2. [Ambientes](https://chytapay.com.ar/api/concepts/#ambientes): Sandbox y Producción
3. [Vinculación](https://chytapay.com.ar/api/concepts/#vinculacion): OAuth, una sola vez
4. [Una integración](https://chytapay.com.ar/api/concepts/#modelos-integracion): y sedes para separar eventos

## Actores y cuentas

Cada actor se autentica con una credencial distinta, contra una API distinta.

Qué credencial usa cada actor y contra qué API.

1. Tu backend usa el `clientId` y el `clientSecret` solo en la Auth API, para canjear y renovar tokens.
2. A la Integration API le manda el `idToken` de la cuenta de comercio.
3. La cuenta de comercio usa su email y contraseña una sola vez, en la pantalla de autorización OAuth.
4. El admin de la integración entra al Portal con su email y contraseña.
5. El pagador no usa ninguna credencial: transfiere al CVU del cobro o paga en el widget de checkout.

| Actor                   | Quién es                                | Credencial                                    | Dónde la usa                                                             |
| ----------------------- | --------------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------ |
| Integrador              | Tu empresa: el backend que crea cobros  | `clientId` y `clientSecret` de la integración | Solo en la Auth API: `/integration/oauth2/token`, `/refresh` y `/revoke` |
| Admin de la integración | Quien configura la integración          | Email y contraseña del Portal                 | En el Portal                                                             |
| Cuenta de comercio      | La cuenta Chytapay que recibe los pagos | Email y contraseña de su cuenta Chytapay      | Una vez, en la pantalla de autorización OAuth                            |
| Pagador                 | Quien paga el cobro                     | Ninguna                                       | Transfiere al CVU del cobro o paga en el widget de checkout              |

A la Integration API tu backend manda el `idToken` de la cuenta de comercio como `Authorization: Bearer`, nunca el `clientSecret`. El token lleva la integración (`aud`, el `clientId`) y la cuenta de comercio (`sub`). Sin vínculo, la respuesta es 403. El widget de checkout usa en el navegador la clave publicable de la integración (`pk_test` o `pk_live`): consultá las [claves del widget](https://chytapay.com.ar/api/widget/#claves).

> **Atención:** **La autorización OAuth la hace la cuenta de comercio, no el admin de la integración.** El token del admin no sirve en la Integration API: responde 401.

## Sandbox y Producción

Tu integración es una sola y tiene dos ambientes. **Sandbox** es para probar, con credenciales y un comercio de prueba. **Producción** tiene comercios y plata reales. Entrás siempre por el mismo portal y cambiás con el selector de ambiente.

Arrancás en Sandbox. Para pasar a Producción lo pedís en [**Credenciales**](https://chytapay.com.ar/portal/credentials): si el chequeo automático lo aprueba, generás las credenciales de producción con el selector de ambiente en Producción, y si no, el pedido pasa a revisión. Los pasos están en [Primeros pasos](https://chytapay.com.ar/api/getting-started/#produccion).

El camino de Sandbox a Producción.

1. Probás en Sandbox.
2. Pedís Producción en Credenciales.
3. Un chequeo automático decide: si lo aprueba, generás las credenciales de producción.
4. Si no pasa el chequeo, el pedido queda en revisión. Si lo aprueban, generás las credenciales.



El tope diario de mensajes de WhatsApp es por integración: 20 en Sandbox y 200 iniciales en Producción. Consultá los [límites](https://chytapay.com.ar/api/operacion/#limites).

## Vinculación y uso recurrente

La vinculación pasa una vez y necesita un navegador. El uso recurrente pasa en cada cobro, de servidor a servidor.

### Vinculación: una vez, con OAuth

La cuenta de comercio autoriza a tu integración en `GET /integration/oauth2/authorize`, y tu backend canjea el `code` en `POST /integration/oauth2/token` por un `idToken` y un `refreshToken`, que guardás. Consultá el flujo en [Conectar comercios](https://chytapay.com.ar/api/conectar-comercios/).

### Uso recurrente: cada cobro, de servidor a servidor

El `idToken` dura 1 hora. Renovalo con el `refreshToken` guardado, como se explica en [Conectar comercios](https://chytapay.com.ar/api/conectar-comercios/#usar-token), y llamá a la Integration API con `Authorization: Bearer <idToken>` para [crear cobros](https://chytapay.com.ar/api/crear-cobros/). Si el admin desvincula la cuenta de comercio, dejás de poder cobrar a su nombre, pero sus cobros pendientes no se cancelan.

## Una integración y sus sedes

Todo lo que configurás vive en la integración: `clientId` y `clientSecret`, `redirect_uri`, URLs de webhook, secreto de firma y claves del widget. **Tené una sola integración**, sin importar cuántos clientes o cuentas de comercio tengas: no crees una por cliente.



Si cada cliente, sucursal o franquicia tiene su propio backend y necesita recibir sus propios eventos, usá **sedes**. Una sede es una unidad de tu integración con su propia URL de webhook. Las credenciales y el secreto de firma siguen siendo los de la integración: la sede solo cambia a dónde van los eventos.

> **Nota:** Cada integración tiene una URL de webhook, y las sedes suman una por sede. Un evento sin destino no se entrega. Consultá [Sedes](https://chytapay.com.ar/api/sedes/).

## Mapa del Portal

En el Portal, el admin de la integración configura y opera solo su integración. El selector de ambiente cambia entre Sandbox y Producción.

| Sección                                                    | Qué hacés ahí                                                                                                                                                                                                                                 |
| ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Inicio](https://chytapay.com.ar/portal/dashboard)         | El resumen de tu integración, el estado de tu pedido de producción y tus topes del día, con **Pedir más límite**.                                                                                                                             |
| [Cobros](https://chytapay.com.ar/portal/transactions)      | **Transacciones** y **Reportes**: los cobros y pagos de tu integración.                                                                                                                                                                       |
| [Comercios](https://chytapay.com.ar/portal/merchants)      | **Cuentas**: las vinculadas, el botón para desvincular y, en Sandbox, los tokens de prueba. **Sedes**: aparece solo si tenés sedes habilitadas (pedile a soporte que te las habiliten). **Comisión**: tu comisión sobre cada pago.            |
| [Credenciales](https://chytapay.com.ar/portal/credentials) | Copiás el `clientId` y la `pk` del widget, y configurás sus dominios autorizados. Cargás las **Direcciones de retorno** (`redirect_uri`) de OAuth. El `clientSecret` se muestra una sola vez, al crearlo o rotarlo. También pedís Producción. |
| [Webhooks](https://chytapay.com.ar/portal/webhooks)        | **Destino**: la URL de webhook, su validation-token, el secreto de firma y el webhook de prueba. **Eventos**: qué eventos recibís (ahí se activa `payment.unmatched`, que viene apagado). **Historial**: las entregas.                        |
| [Simulador](https://chytapay.com.ar/portal/simulate)       | Un pago entrante simulado. Solo en Sandbox.                                                                                                                                                                                                   |
| [Configuración](https://chytapay.com.ar/portal/settings)   | **Apariencia del widget**, **Devoluciones**, **Avisos por WhatsApp**, el equipo y el logo. Ver [Funciones por integración](https://chytapay.com.ar/api/funciones/).                                                                           |

[**Webhooks**](https://chytapay.com.ar/portal/webhooks) configura eventos, no las notificaciones al pagador (WhatsApp y email), que van en cada cobro. Consultá la [suscripción a eventos](https://chytapay.com.ar/api/webhooks/#suscripcion).

### Acceso

Entrá en [chytapay.com.ar/portal/login](https://chytapay.com.ar/portal/login), con tu email y contraseña. Si todavía no tenés cuenta, elegí **Crear cuenta**.

## Glosario

| Término            | Qué es                                                                                                    |
| ------------------ | --------------------------------------------------------------------------------------------------------- |
| Integración        | Tu producto registrado en Chytapay, con su `clientId`, `clientSecret`, URLs y claves.                     |
| Cuenta de comercio | La cuenta Chytapay a cuyo nombre se crean los cobros. Se vincula por OAuth. El pagador va en `customer`.  |
| `referenceId`      | Tu id del cobro, único por integración y cuenta de comercio, cancelados incluidos.                        |
| Sede               | Unidad de tu integración con su URL de webhook. En la API y el Portal, tenant.                            |
| Aviso              | El mensaje al pagador por WhatsApp o email. No es lo mismo que un evento de webhook.                      |
| `idToken`          | El token de la cuenta de comercio para la Integration API. Dura 1 hora. Se renueva con el `refreshToken`. |

## Seguí por acá

- [Primeros pasos](https://chytapay.com.ar/api/getting-started/): Del alta al primer evento, en Sandbox.
- [Conectar comercios](https://chytapay.com.ar/api/conectar-comercios/): OAuth y tokens.
- [Crear cobros](https://chytapay.com.ar/api/crear-cobros/): Campos, estados y lotes.
- [Sedes](https://chytapay.com.ar/api/sedes/): Una URL de webhook por sede.
- [Comisiones](https://chytapay.com.ar/api/cobrar-comision/): Cobrar una comisión por cada pago.
