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:
payment_id - Identificador de la adquirencia:
acquirer_id
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 |
| payment_id | Identificador del pago original. |
| acquirer_id | Número de referencia del pago original. Retornado en el campo de respuesta operation.acquirer_id |
- 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.acquirer_id = transaction.operation.acquirer_id
operationFlow.payment_id = 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.is_international
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.