Crear sesión de cobro
Crea una sesión de cobro y retorna la URL de pago a la que debes redirigir al usuario. Si se envía un external_id que ya existe para tu API key, retorna la sesión original con HTTP 200 (idempotencia).
¿Para qué se usa?
Crea una sesión de pago y retorna lapayment_url a la que debes redirigir al usuario para que complete el pago. Tu Pana se encarga de procesar el pago, emitir el DTE (si corresponde) y notificarte vía webhook.
Qué hace
- Crea una sesión de cobro en estado
pending. - Retorna una URL de pago única con tiempo de expiración.
- Al confirmarse el pago:
- Modo emisión (default): Tu Pana emite automáticamente el DTE si
auto_issue=true. - Modo cobro directo (con
document_ids): los documentos referenciados se marcan como pagados; no hay emisión de DTE.
- Modo emisión (default): Tu Pana emite automáticamente el DTE si
Modos de uso
| Modo | Cuándo usarlo | Campos requeridos |
|---|---|---|
| Emisión | Cobrás un servicio nuevo y necesitás emitir un DTE al confirmarse el pago | amount, target_dte_type, dte_recipient, items |
| Cobro directo | Querés cobrar uno o más DTEs ya emitidos | document_ids |
document_ids, no puedes incluir amount, target_dte_type, dte_recipient ni items (Tu Pana retorna CANNOT_MIX_MODES).
Ejemplo: modo cobro directo
- Todos los
document_idsdeben pertenecer alrecipient_id(susenderdebe coincidir). - Todos deben compartir el mismo pagador (
receiver) — un solo cobro = un solo pagador. - Solo se aceptan tipos de DTE cobrables:
33,34,39,41,80,110. - Ninguno puede estar ya pagado.
- El monto del cobro se calcula automáticamente como la suma de los
amount_with_ivade los documentos. - Si usas una API key de sandbox, el
foliode cada documento debe empezar conSANDBOX. Esto evita que cobres documentos reales con una key de prueba — si la regla no se cumple, el endpoint retornaDOCUMENT_NOT_SANDBOX.
PATCH /v1/payment-requests/{id}/ con status=issued retorna NOT_APPLICABLE.
Ejemplos de uso
- Cobro de una sesión de salud mental: Un paciente agenda una consulta y paga antes de la atención.
- Pago de servicio: Un cliente de una plataforma de servicios paga por una prestación.
- Cobro recurrente manual: Tu plataforma crea sesiones de cobro para cada período.
Consideraciones importantes
Idempotencia con external_id
Si envías el mismo external_id en dos requests distintos, Tu Pana retorna la sesión original sin crear una nueva. Usa esto para evitar sesiones duplicadas si tu request se reintenta.
Checkout con o sin portal
El parámetroskip_portal controla la experiencia de pago:
| Valor | Comportamiento |
|---|---|
false (default) | El usuario ve una pantalla de Tu Pana con el detalle del cobro antes de pagar. |
true | El usuario es redirigido directo a Transbank. Útil cuando el contexto del cobro ya es claro en tu interfaz. |
Redirect post-pago
Si enviasteredirect_url, Tu Pana redirige al usuario a esa URL después del pago con parámetros de estado:
Emisión automática de DTE (auto_issue)
Por defecto (auto_issue=true), Tu Pana emite el DTE automáticamente al confirmarse el pago. Si necesitas controlar el momento de la emisión, envía auto_issue=false y emite el DTE cuando lo necesites con PATCH /v1/payment-requests/{id}/ enviando {"status": "issued"}.
Esto es útil cuando quieres validar datos adicionales antes de emitir la boleta o factura.
Tipos de DTE soportados
target_dte_type | Documento emitido |
|---|---|
39 | Boleta afecta electrónica |
41 | Boleta exenta electrónica |
33 | Factura afecta electrónica |
Authorizations
API Key para autenticación. Formato: Api-Key YOUR-API-KEY
Body
La sesión de cobro soporta dos modos:
- Modo emisión (default): Tu Pana cobra y emite un DTE nuevo. Requiere
amount,target_dte_type,dte_recipientyitems. - Modo cobro directo: cobra documentos ya existentes. Requiere
document_idsy rechazaamount,target_dte_type,dte_recipienteitems.
ID numérico del destinatario en Tu Pana. Debe tener cuenta bancaria registrada. En modo cobro directo, todos los documentos referenciados deben pertenecer a este destinatario (es decir, su sender debe coincidir).
789
Monto en CLP, sin decimales. Requerido en modo emisión. No permitido si envías document_ids — el monto se calcula sumando los amount_with_iva de los documentos.
50000
Moneda. Siempre CLP. Si se omite, se usa CLP por defecto.
CLP URL a la que Tu Pana redirige al usuario después del pago. Si se omite, el usuario permanece en el portal de pago.
"https://tuapp.com/confirmation"
Tipo de DTE a emitir al confirmarse el pago. 39 = boleta afecta, 41 = boleta exenta, 33 = factura afecta. Requerido en modo emisión. No permitido si envías document_ids.
33, 39, 41 39
Ítems del DTE. La suma de quantity × unit_price debe coincidir con amount. Requerido en modo emisión. No permitido si envías document_ids.
IDs de documentos existentes a cobrar (modo cobro directo). Todos deben pertenecer al recipient_id, compartir el mismo receptor (pagador), ser de tipo cobrable (33, 34, 39, 41, 80, 110) y no estar pagados. Si envías este campo, omite amount, target_dte_type, dte_recipient e items.
Cuando uses una API key de sandbox, cada documento debe tener un folio que comience con SANDBOX (de lo contrario el endpoint retorna DOCUMENT_NOT_SANDBOX).
1x >= 1[9871, 9872]Minutos hasta que vence la sesión. Por defecto: 30.
30
Si true, redirige directo a Transbank sin mostrar la pantalla de Tu Pana. Por defecto: false.
Si true (default), Tu Pana emite el DTE automáticamente al confirmarse el pago. Si false, debes emitirlo manualmente con PATCH /v1/payment-requests/{id}/ enviando {"status": "issued"}. Solo aplica en modo emisión; ignorado en modo cobro directo (no hay DTE que emitir).
ID propio para idempotencia. Si ya existe una sesión con ese external_id para tu API key, se retorna la sesión original con HTTP 200.
"booking_abc123"
Datos adicionales de libre formato. Tu Pana los guarda y devuelve en webhooks y en el GET.
Response
Sesión existente retornada (idempotencia por external_id)
ID único de la sesión de cobro.
1042
pending, paid, issued, failed, expired, refunded "pending"
URL a la que debes redirigir al usuario para que complete el pago.
"https://www.tupana.ai/pagos/tok_xyz"
Fecha y hora en que vence la sesión (UTC).
"2026-04-06T12:30:00Z"
Fecha y hora de creación de la sesión (UTC).
"2026-04-06T12:00:00Z"
Monto del cobro en CLP.
50000
Tipo de DTE que se emitirá al pagarse. null en modo cobro directo (no hay DTE a emitir).
"39"
Si el DTE se emite automáticamente al confirmarse el pago. null en modo cobro directo.
true
Tu ID propio para esta sesión.
"booking_abc123"
Datos adicionales que enviaste al crear la sesión.
ID del DTE emitido. null mientras la sesión no haya emitido el DTE. Siempre null en modo cobro directo.
9871
IDs de los documentos que esta sesión cobra. Lista vacía en modo emisión (donde el DTE se emite al pagarse).
[9871, 9872]