# Cancelar o reembolsar un pago

Esta guía explica cómo procesar cancelaciones y reembolsos de pagos previamente autorizados con Getnet Web Checkout.

Este documento aplica a los siguientes países:
Argentina |
---|

## Cancelación
Para configurar una cancelación, la API de Getnet Web Checkout espera recibir el `payment_id` (extraído de la notificación del webhook) en el parámetro de ruta intermedio y la siguiente propiedad en el cuerpo de la solicitud.

| Atributo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
|`payment_id`| String | ID del pago que se cancelará o reembolsará | `44c1206c-fcfc-11ea-adc1-0242ac120002`

Solicitud a: 
```json
POST {{host_getnet_api}}/digital-checkout/v1/payments/{payment_id}/cancellation
```

Para comprobar si la solicitud fue válida, recibirás una **respuesta HTTP 201**, que indica una cancelación exitosa:

**Respuesta**
Ejemplo de una respuesta de cancelación exitosa:

```json
{
  "payment_id": "06f256c8-1bbf-42bf-93b4-ce2041bfb87e",
  "generated_by": "77d2306c-fcfc-11ea-adc1-0242ac120003",
  "status": "Cancelled",
  "transaction_datetime": "1997-07-16T19:20:30.45+01:00",
  "authorization_code": "840358"
}
```

## Reembolso

Para configurar un reembolso, la API de Getnet Web Checkout espera recibir el `payment_id` (extraído de la notificación del webhook) en el parámetro de ruta intermedio. 
La propiedad `amount` debe contener el importe del reembolso. Si no se indica ningún valor, la transacción se reembolsará por el importe total.

| Atributo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
|`payment_id`| String | ID del pago que se cancelará o reembolsará | `44c1206c-fcfc-11ea-adc1-0242ac120002` |
|`amount` | Integer | Importe del reembolso en formato entero, donde los últimos 2 dígitos representan los céntimos | `100` |

**Solicitud**
El siguiente bloque de código muestra un ejemplo de solicitud de reembolso:

```json
curl 
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "amount": 100
}'
```

Para comprobar si la solicitud fue válida, recibirás una **respuesta HTTP 201**, que indica un reembolso exitoso:

**Respuesta**
Ejemplo de una respuesta de reembolso exitosa:

```json
{
  "payment_id": "06f256c8-1bbf-42bf-93b4-ce2041bfb87e",
  "authorization_code": "840358",
  "status": "Refunded",
  "transaction_datetime": "1997-07-16T19:20:30.45+01:00",
  "generated_by": "77d2306c-fcfc-11ea-adc1-0242ac120003"
}
```

Para más detalles, consulta:

[Referencia de la API - cancelación](https://docs.globalgetnet.com/en/products/online-payments/web-checkout/swagger#tag/payment/POST/payments/{payment_id}/cancellation)
[Referencia de la API - reembolso](https://docs.globalgetnet.com/en/products/online-payments/web-checkout/swagger#tag/payment/POST/payments/{payment_id}/refund)