Skip to main content
POST
/
api
/
payment-requests
/
{payment_request_id}
/
refund
Reembolsar un cobro
curl --request POST \
  --url https://api.tupana.ai/api/payment-requests/{payment_request_id}/refund/ \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "amount": 50000,
  "reason": "appointment_cancelled"
}
'
{
  "refund_id": "ref_001",
  "status": "pending",
  "amount": 50000,
  "estimated_days": 3
}

¿Para qué se usa?

Inicia el proceso de reembolso de una sesión de cobro ya pagada. El dinero se devuelve al medio de pago original del usuario.

Qué hace

  • Inicia el reembolso vía Transbank (reversión del cargo).
  • El reembolso queda en estado pending mientras se procesa.
  • Cuando se completa, Tu Pana envía el webhook payment_request.refunded.

Ejemplos de uso

  • Cancelación de cita: Un paciente cancela y la plataforma inicia el reembolso automáticamente.
  • Error en el cobro: Se cobró un monto incorrecto y se necesita devolver el dinero.

Consideraciones importantes

Solo sobre cobros pagados

Solo se pueden reembolsar sesiones en estado paid. Si la sesión está en otro estado, recibirás un error.

Monto del reembolso

El campo amount no puede superar el monto pagado originalmente. Los reembolsos parciales son soportados.

Seguimiento del reembolso

Suscríbete al evento payment_request.refunded en tus webhooks para recibir notificación cuando el proceso se complete. El campo estimated_days de la respuesta indica el tiempo estimado.

DTE

El reembolso no anula automáticamente el DTE emitido. Si necesitás emitir una nota de crédito, gestionala a través de la API de Facturación.

Authorizations

Authorization
string
header
required

API Key para autenticación. Formato: Api-Key YOUR-API-KEY

Path Parameters

payment_request_id
string
required

ID de la sesión de cobro a reembolsar.

Body

application/json
amount
integer
required

Monto a reembolsar en CLP. No puede superar el monto pagado.

Example:

50000

reason
string

Motivo del reembolso (libre formato, para registro interno).

Example:

"appointment_cancelled"

Response

Reembolso iniciado

refund_id
string
Example:

"ref_001"

status
enum<string>
Available options:
pending
Example:

"pending"

amount
integer
Example:

50000

estimated_days
integer

Días estimados para completar el reembolso.

Example:

3