Enviar una solicitud de reembolso
información
El pago solo se puede devolver si está en estado Confirmado.
Puede consultar el estado del pago en el endpoint:
GET /payments/{id}
Tipos de Devolución
- Devolución total
- Devolución parcial
1. Inicio de la Devolución (a través de API)
Su sistema inicia la devolución de forma remota a través de la API de PayPay:
- El sistema envía la solicitud a la API de PayPay:
Endpoint
POST /terminals/{uuid}/refunds/{paymentId}
Ejemplo básico
{
"amount": 100,
}
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
uuid | string | ✅ Sí | UUID del terminal al que se enviará la solicitud de pago |
paymentId | string | ✅ Sí | ID del pago PayPay que desea devolver |
amount | integer | ✅ Sí | Importe que desea devolver |
- API PayPay se comunica con el terminal de forma assíncrona;
- El terminal recibe y muestra automáticamente el importe al operador;
información
El terminal espera 1 minuto por la presentación de la tarjeta.
- La API de PayPay devuelve la respuesta del éxito o fracaso de la solicitud asíncrona, mientras que el terminal espera a que se presente la tarjeta.
Respuesta de la API
{
"date": "2025-09-01T12:46:22+01:00",
"success": true,
"data": {
"id": "3",
"clientId": "502056800",
"type": "refund",
"amount": 50,
"initialPaymentId": "1",
"stateDetails": {
"state": "pending_confirmation",
"createdAt": "2025-09-01T12:46:22+01:00"
},
"paymentMethod": {
"code": "CC",
"type": "TPA",
"details": {
"brand": "VISA",
"last4Digits": "7193"
}
},
"availableMethods": [
{
"code": "CC",
"type": "TPA",
"name": "Credit Debit card Physical TPA"
}
],
"bankAccount": {
"code": "O9uFVmSZ",
"bankName": "Banco",
"last4digits": "8513"
},
"createdAt": "2025-09-01T12:46:22+01:00",
"updatedAt": "2025-09-01T12:46:22+01:00"
}
}
Estructura de la Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID de la devolución PayPay |
clientId | string | NIF de la entidad a la que se asoció el pago |
type | string | Tipo de operación |
stateDetails.state | string | Estado del pago |
stateDetails.createdAt | datetime | Fecha del estado |
paymentMethod | object | Método de pago del pago original |
availableMethods | object | Formas de pago disponibles para la devolución |
bankAccount | object | Identificación del banco que recibirá los fondos |
createdAt | datetime | Fecha de creación del registro |
updatedAt | datetime | Fecha de la última actualización |
Flujo de devolución en el terminal
Una vez enviada la solicitud de devolución a través de la API, el proceso en el terminal sigue estos pasos:2. Presentación de la Tarjeta
El cliente presenta la misma tarjeta utilizada en el pago original:
- El terminal muestra el importe de la devolución al operador;
-
El cliente presenta la tarjeta mediante uno de los siguientes métodos:
- Contactless: Acerca la tarjeta o el dispositivo móvil.
- Chip: Introduce la tarjeta en el terminal.
- Banda magnética: Pasa la tarjeta.
- El terminal comprueba si la tarjeta coincide con el pago original.
aviso
La tarjeta debe ser la misma utilizada en el pago original. Si se presenta una tarjeta diferente, se rechazará la devolución.