Realizar una anulación o devolución
Antes de llevar a cabo una anulación o devolución, es necesario realizar una consulta de transacciones, ya que se necesitan datos específicos obtenidos durante esta consulta para llevar a cabo dichas operaciones.
Requisitos
- Identificador de la transacción original:
paymentId - Identificador de la adquirencia:
acquirerReferenceNumber
Paso a paso
Son los mismos pasos que se aplican para realizar un pago, la diferencia está en la instancia del objeto OperationFlow(), en este caso se agregan los siguientes campos:
| Campo | Descripción |
|---|---|
| TransactionType | Tipo de transacción = ANNULMENT/REFUND |
| paymentId | Identificador del pago original. |
| acquirerReferenceNumber | Número de referencia del pago original. Retornado en el campo de respuesta operation.acquirerReferenceNumber |
- Además, es necesario establecer la marca de la tarjeta, el tipo y el indicador de nacional/internacional con los valores retornados en la consulta:
Ejemplo de implementación
if (isToday(transaction.operation.datetime)) {
operationFlow.transactionType = OperationType.ANNULMENT
} else {
operationFlow.transactionType = OperationType.REFUND
}
//Se agregan identificadores del pago original
operationFlow.acquirerReferenceNumber = transaction.operation.acquirerReferenceNumber
operationFlow.paymentId = transaction.operation.id
}
//Set datos originales de la tarjeta
operationFlow.capture?.card?.brand = transaction.card.brand
operationFlow.capture?.card?.type = transaction.card.type
operationFlow.capture?.card?.isInternational =
transaction.card.isInternational
operationFlow.installments =
transaction.installment.number.toString().padStart(2, '0')ℹ️
En México 🇲🇽 solo aplica el concepto de REFUND. En Argentina 🇦🇷, una anulación se realiza el mismo día del pago y la devolución, en días posteriores.