API de Anulaciones y Reembolsos

La API de Anulaciones y Reembolsos permite cancelar o reembolsar transacciones que han sido autorizadas o cobradas. Dependiendo del estado de la transacción, puedes enviar una solicitud utilizando los métodos Void o Refund.

Para comprender mejor las anulaciones y reembolsos, incluidos los conceptos clave y consideraciones, consulta este documento.

Consideraciones por país

Antes de usar la API de Anulaciones y Reembolsos, ten en cuenta las siguientes consideraciones específicas por país.

  Argentina
Anulaciones Reembolsos
  • Envía la solicitud dentro de 14 días; de lo contrario, el sistema anula automáticamente la transacción.
  • Solicita un reembolso al menos 10 minutos después de la aprobación y hasta 357 días después de la transacción.
  • No incluyas montos decimales en los reembolsos.
  • Puedes solicitar más de un reembolso parcial para pagos realizados con AMEX, Mastercard, Naranja o Visa.
  • Una vez aprobado, PayU transfiere los fondos al pagador dentro de 30 días hábiles.
  Brasil
Anulaciones Reembolsos
  • Envía la solicitud dentro de 7 días; de lo contrario, el sistema anula automáticamente la transacción.
  • Solicita un reembolso al menos 10 minutos después de la aprobación.
  • Para transacciones realizadas con PIX, solicita reembolsos hasta 87 días después de la transacción.
  • Para transacciones con tarjeta, solicita reembolsos hasta 172 días después de la transacción.
  • Puedes solicitar más de un reembolso parcial para pagos realizados con AMEX, Elo, Mastercard, PIX o Visa.
  • Una vez aprobado, los reembolsos para transacciones PIX se procesan inmediatamente.
  • Una vez aprobado, los reembolsos para otros métodos de pago tardan hasta 15 días hábiles.
  Chile
Anulaciones Reembolsos
  • Envía la solicitud dentro de las 3 horas posteriores a la transacción; de lo contrario, la red no autoriza la anulación.
  • Si la anulación no es aceptada o no se envía la captura dentro de 7 días, el sistema anula automáticamente la transacción.
  • Solicita un reembolso al menos 10 minutos después de la aprobación y hasta 327 días después de la transacción.
  • Los reembolsos también están disponibles para transacciones procesadas a través de WebPay Plus o Redcompra.
  • Para transacciones con tarjetas prepago no procesadas por WebPay Plus:
    • Si solicitas un reembolso dentro de la primera hora, la red financiera puede aprobarlo o rechazarlo.
    • Si solicitas un reembolso después de la primera hora, la red financiera lo rechaza automáticamente.
  • Si la red financiera rechaza un reembolso, PayU muestra el código de error correspondiente.
  • No incluyas montos decimales en los reembolsos.
  • Una vez aprobado, el pagador recibe los fondos dentro de 8 a 20 días hábiles.
  • Puedes enviar reembolsos parciales para transacciones con cuotas; PayU los recibe en línea pero los procesa manualmente debido a restricciones del adquirente.
  • Sigue los montos mínimos de reembolso requeridos por la red adquirente:
    • Más de 10 CLP para transacciones procesadas por TRANSBANK.
    • Más de 50 CLP para transacciones procesadas por KLAP.
  • Puedes solicitar más de un reembolso parcial para pagos realizados con AMEX, Mastercard o Visa.
  Colombia
Anulaciones Reembolsos
  • La integración no admite anulaciones para transacciones en Colombia.
  • Solicita un reembolso al menos 10 minutos después de la aprobación y hasta 357 días después de la transacción.
  • El monto mínimo de reembolso es 100 COP.
  • Si no envías la solicitud de reembolso el mismo día de la captura de la transacción (antes de las 9 PM UTC-5), PayU lo procesa manualmente en lugar de intentarlo en línea.
  • Una vez aprobado, el pagador recibe los fondos dentro de 15 días hábiles.
  • Solicita solo un reembolso parcial por orden. Si el cliente solicita un reembolso adicional, procésalo fuera de PayU (por ejemplo, a través de una tarjeta de regalo, descuento o transferencia bancaria). También puedes usar nuestra API de Payouts para enviar el monto directamente desde tu saldo en PayU. Esta opción solo está disponible bajo el modelo agregador y requiere solicitar los datos de la cuenta bancaria del cliente cada vez. Es especialmente útil para métodos de pago alternativos como Efecty o PSE.
  • Los reembolsos parciales para tarjetas de crédito internacionales no están disponibles.
  • Los reembolsos parciales (solo uno por orden) están disponibles para pagos realizados con AMEX, Codensa, Diners, Mastercard o Visa.
  México
Anulaciones Reembolsos
  • Envía la solicitud al menos 10 minutos después de la autorización y hasta 7 días.
  • Si no envías una anulación o captura dentro de este plazo, el sistema anula automáticamente la transacción.
  • Solicita un reembolso al menos 10 minutos después de la aprobación.
  • Para la mayoría de las transacciones, solicita reembolsos hasta 175 días después de la transacción.
  • Para transacciones procesadas por Bancomer, solicita reembolsos hasta 40 días después de la transacción.
  • Una vez aprobado, el pagador recibe los fondos dentro de 30 días hábiles.
  • No incluyas montos decimales en los reembolsos.
  • Puedes solicitar más de un reembolso parcial para pagos realizados con AMEX, Mastercard o Visa.
  Panamá
Anulaciones Reembolsos
  • La integración no admite anulaciones para transacciones en Panamá.
  • Solicita un reembolso al menos 10 minutos después de la aprobación y hasta 357 días después de la transacción.
  • Una vez aprobado, el pagador recibe los fondos dentro de 8 días hábiles.
  Perú
Anulaciones Reembolsos
  • Sigue el plazo máximo permitido por cada red de pago:
    • Visa: 21 días → Si no envías una anulación o captura, el sistema captura automáticamente la transacción.
    • Mastercard: 28 días → Si no envías una anulación o captura, el sistema captura automáticamente la transacción.
    • American Express: 30 días → Si no envías una anulación o captura, el sistema anula automáticamente la transacción.
    • Diners: 11 días → Si no envías una anulación o captura, el sistema anula automáticamente la transacción.
  • Solicita un reembolso al menos 10 minutos después de la aprobación y hasta 357 días después de la transacción.
  • Solicita reembolsos parciales solo para transacciones sin cuotas (incluyendo transacciones de una sola cuota).
  • Para transacciones Visanet, envía reembolsos parciales al menos un día después de la transacción.
  • El monto mínimo de reembolso es 1 USD o 1 PEN.
  • Puedes solicitar más de un reembolso parcial para pagos realizados con AMEX, Diners, Mastercard (crédito o débito) o Visa (crédito o débito).
  • Una vez aprobado, el pagador recibe los fondos dentro de 15 a 25 días hábiles.

Anulación

El método VOID cancela una transacción previamente autorizada. Este es un proceso automático—tan pronto como se envía la solicitud VOID, no sigue un flujo de aprobación y la transacción no se carga al titular de la tarjeta.

Parámetros para la Solicitud y Respuesta

Solicitud
Nombre del Campo Formato Tamaño Descripción Obligatorio
language Alfanumérico 2 Idioma utilizado en la solicitud. Esto determina el idioma de los mensajes de error. Ver idiomas compatibles.
command Alfanumérico Máx: 32 Debe establecerse en SUBMIT_TRANSACTION.
test (JSON)
isTest (XML)
Booleano Establezca en true para modo de prueba; de lo contrario, false.
merchant Objeto Contiene los datos de autenticación.
merchant > apiLogin Alfanumérico Mín: 12, Máx: 32 Usuario o login proporcionado por PayU. Cómo obtener API Login.
merchant > apiKey Alfanumérico Mín: 6, Máx: 32 Contraseña proporcionada por PayU. Cómo obtener API Key.
transaction Objeto Contiene los datos de la transacción.
transaction > order Objeto Contiene los detalles de la orden.
transaction > order > id Numérico ID de la orden que se va a anular.
transaction > type Alfanumérico 32 Establezca en VOID para cancelar una transacción autorizada.
transaction > reason Alfanumérico Motivo de la anulación de la transacción. No
transaction > parentTransactionId Alfanumérico 36 ID de la transacción que se va a anular.
Respuesta
Nombre del Campo Formato Tamaño Descripción
code Alfanumérico Código de respuesta de la transacción. Valores posibles: ERROR, SUCCESS.
error Alfanumérico Máx: 2048 Mensaje de error cuando el código de respuesta es ERROR.
transactionResponse Objeto Contiene los detalles de la respuesta.
transactionResponse > orderId Numérico ID de la orden generada o existente en PayU.
transactionResponse > transactionId Alfanumérico 36 ID de la transacción en PayU.
transactionResponse > state Alfanumérico Máx: 32 Estado de la transacción.
transactionResponse > paymentNetworkResponseCode Alfanumérico Máx: 255 Código de respuesta de la red financiera.
transactionResponse > paymentNetworkResponseErrorMessage Alfanumérico Máx: 255 Mensaje de error de la red financiera.
transactionResponse > trazabilityCode Alfanumérico Máx: 32 Código de trazabilidad de la red financiera.
transactionResponse > authorizationCode Alfanumérico Máx: 12 Código de autorización de la red financiera.
transactionResponse > responseCode Alfanumérico Máx: 64 Código de respuesta relacionado con el estado de la transacción.
transactionResponse > responseMessage Alfanumérico Máx: 2048 Mensaje relacionado con el código de respuesta.
transactionResponse > operationDate Fecha Fecha en la que se generó la respuesta en el sistema de PayU.

Llamada a la API

Los siguientes ejemplos muestran los cuerpos de solicitud y respuesta para este tipo de transacción.


Ejemplo de una Solicitud:

{
   "language": "es",
   "command": "SUBMIT_TRANSACTION",
   "merchant": {
      "apiKey": "4Vj8eK4rloUd272L48hsrarnUA",
      "apiLogin": "pRRXKOl8ikMmt9u"
   },
   "transaction": {
      "order": {
         "id": "1400462414"
      },
      "type": "VOID",
      "reason": "Razón para solicitar la anulación de la transacción",
      "parentTransactionId": "c8ec8737-7645-4756-a991-6e60a99eb4d9"
   },
   "test": false
}

Ejemplo de una Respuesta:

{
    "code": "SUCCESS",
    "error": null,
    "transactionResponse": {
        "orderId": 1400462414,
        "transactionId": "57546e0a-8275-48e3-af11-7d3dc7420bfe",
        "state": "APPROVED",
        "paymentNetworkResponseCode": "0",
        "paymentNetworkResponseErrorMessage": null,
        "trazabilityCode": "49263990",
        "authorizationCode": "NPS-011111",
        "pendingReason": null,
        "responseCode": "APPROVED",
        "errorCode": null,
        "responseMessage": "APROBADA - Autorizada",
        "transactionDate": null,
        "transactionTime": null,
        "operationDate": 1624880273010,
        "referenceQuestionnaire": null,
        "extraParameters": null,
        "additionalInfo": null
    }
}

Ejemplo de una Solicitud:

<request>
   <language>es</language>
   <command>SUBMIT_TRANSACTION</command>
   <merchant>
      <apiKey>4Vj8eK4rloUd272L48hsrarnUA</apiKey>
      <apiLogin>pRRXKOl8ikMmt9u</apiLogin>
   </merchant>
   <transaction>
      <order>
         <id>1400462466</id>
      </order>
      <type>VOID</type>
      <parentTransactionId>50876ad6-46f2-4c8d-bb91-2f028b56ccb8</parentTransactionId>
   </transaction>
   <isTest>false</isTest>
</request>

Ejemplo de una Respuesta:

<paymentResponse>
    <code>SUCCESS</code>
    <transactionResponse>
        <orderId>1400462466</orderId>
        <transactionId>5fbb1ab0-3d2e-448f-a0be-b0bcfb5501ae</transactionId>
        <state>APPROVED</state>
        <paymentNetworkResponseCode>0</paymentNetworkResponseCode>
        <trazabilityCode>49263990</trazabilityCode>
        <authorizationCode>NPS-011111</authorizationCode>
        <responseCode>APPROVED</responseCode>
        <responseMessage>APROBADA - Autorizada</responseMessage>
        <operationDate>2021-06-28T06:57:44</operationDate>
    </transactionResponse>
</paymentResponse>

Reembolsos

Un reembolso se emite cuando un comerciante devuelve voluntariamente el pago al comprador. Esto puede ocurrir debido a insatisfacción del cliente o cuando el producto está agotado. El método REFUND revierte una transacción previamente capturada.

Los reembolsos pueden emitirse por el monto total o como un reembolso parcial (PARTIAL_REFUND).

Parámetros para la Solicitud y Respuesta

Solicitud
Nombre del Campo Formato Tamaño Descripción Obligatorio
language Alfanumérico 2 Idioma utilizado en la solicitud. Esto determina el idioma de los mensajes de error. Ver idiomas compatibles.
command Alfanumérico Máx: 32 Debe establecerse en SUBMIT_TRANSACTION.
test (JSON)
isTest (XML)
Booleano Establezca en true para modo de prueba; de lo contrario, false.
merchant Objeto Contiene los datos de autenticación.
merchant > apiLogin Alfanumérico Mín: 12, Máx: 32 Usuario o login proporcionado por PayU. Cómo obtener API Login.
merchant > apiKey Alfanumérico Mín: 6, Máx: 32 Contraseña proporcionada por PayU. Cómo obtener API Key.
transaction Objeto Contiene los datos de la transacción.
transaction > additionalValues Objeto Especifica el monto para un reembolso parcial. Requerido para reembolsos parciales. No
transaction > additionalValues > TX_VALUE Objeto Contiene los detalles del monto de la transacción. Requerido para reembolsos parciales. No
transaction > additionalValues > TX_VALUE > value Numérico Máx: 19 Monto a reembolsar. Requerido para reembolsos parciales. No
transaction > additionalValues > TX_VALUE > currency Alfanumérico 3 Código de moneda ISO. Ver monedas aceptadas. Requerido para reembolsos parciales. No
transaction > order Objeto Contiene los detalles de la orden.
transaction > order > id Numérico ID de la orden a reembolsar.
transaction > type Alfanumérico 32 Especifica el tipo de reembolso:
- REFUND para reembolsos totales.
- PARTIAL_REFUND para reembolsos parciales (si es compatible).
transaction > reason Alfanumérico Motivo del reembolso. No
transaction > parentTransactionId Alfanumérico 36 ID de la transacción original que se está reembolsando.
Respuesta
Nombre del Campo Formato Tamaño Descripción
code Alfanumérico Código de respuesta de la transacción. Valores posibles: ERROR, SUCCESS.
error Alfanumérico Máx: 2048 Mensaje de error cuando el código de respuesta es ERROR.
transactionResponse Objeto Contiene los detalles de la respuesta.
transactionResponse > orderId Numérico ID de la orden generada o existente en PayU.
transactionResponse > transactionId Alfanumérico 36 ID de la transacción en PayU.
transactionResponse > state Alfanumérico Máx: 32 Estado de la transacción.
transactionResponse > paymentNetworkResponseCode Alfanumérico Máx: 255 Código de respuesta de la red financiera.
transactionResponse > paymentNetworkResponseErrorMessage Alfanumérico Máx: 255 Mensaje de error de la red financiera.
transactionResponse > trazabilityCode Alfanumérico Máx: 32 Código de trazabilidad de la red financiera.
transactionResponse > authorizationCode Alfanumérico Máx: 12 Código de autorización de la red financiera.
transactionResponse > responseCode Alfanumérico Máx: 64 Código de respuesta asociado con el estado de la transacción.
transactionResponse > responseMessage Alfanumérico Máx: 2048 Mensaje asociado con el código de respuesta.
transactionResponse > operationDate Fecha Fecha en la que se generó la respuesta en el sistema de PayU.

Llamada a la API

Los siguientes ejemplos muestran los cuerpos de solicitud y respuesta para este tipo de transacción.


Ejemplo de una Solicitud de Reembolso:

{
   "language": "es",
   "command": "SUBMIT_TRANSACTION",
   "merchant": {
      "apiKey": "4Vj8eK4rloUd272L48hsrarnUA",
      "apiLogin": "pRRXKOl8ikMmt9u"
   },
   "transaction": {
      "order": {
         "id": "1400462687"
      },
      "type": "REFUND",
      "reason": "Razón para solicitar el reembolso de la transacción",
      "parentTransactionId": "60e2080d-08b1-4db2-a54f-8bcbe8271662"
   },
   "test": false
}

Ejemplo de una Solicitud de Reembolso Parcial:

{  
   "command":"SUBMIT_TRANSACTION",
   "language":"es",
   "merchant":{  
      "apiKey": "4Vj8eK4rloUd272L48hsrarnUA",
      "apiLogin": "pRRXKOl8ikMmt9u"
   },
   "transaction":{  
      "additionalValues":{  
         "TX_VALUE":{  
            "value":"950",
            "currency":"ARS"
         }
      },
      "order":{  
         "id":"1400462690"
      },
      "parentTransactionId":"0486359b-a048-4b6b-9b72-af584e710e64",
      "reason":"Razón para solicitar el reembolso de la transacción",
      "type":"PARTIAL_REFUND"
   }
}

Ejemplo de una Respuesta:

{
    "code": "SUCCESS",
    "error": null,
    "transactionResponse": {
        "orderId": 1400462690,
        "transactionId": null,
        "state": "PENDING",
        "paymentNetworkResponseCode": null,
        "paymentNetworkResponseErrorMessage": null,
        "trazabilityCode": null,
        "authorizationCode": null,
        "pendingReason": "PENDING_REVIEW",
        "responseCode": null,
        "errorCode": null,
        "responseMessage": "1400462690",
        "transactionDate": null,
        "transactionTime": null,
        "operationDate": null,
        "referenceQuestionnaire": null,
        "extraParameters": null,
        "additionalInfo": null
    }
}

Ejemplo de una Solicitud de Reembolso:

<request>
   <language>es</language>
   <command>SUBMIT_TRANSACTION</command>
   <merchant>
      <apiKey>4Vj8eK4rloUd272L48hsrarnUA</apiKey>
      <apiLogin>pRRXKOl8ikMmt9u</apiLogin>
   </merchant>
   <transaction>
      <order>
         <id>1400462689</id>
      </order>
      <type>REFUND</type>
      <reason>Razón para solicitar el reembolso de la transacción.</reason>
      <parentTransactionId>1d31ea44-0d8f-4e65-93ac-6be4347e5b40</parentTransactionId>
   </transaction>
   <isTest>false</isTest>
</request>

Ejemplo de una Solicitud de Reembolso Parcial:

<request>
   <command>SUBMIT_TRANSACTION</command>
   <language>es</language>
   <merchant>
      <apiKey>4Vj8eK4rloUd272L48hsrarnUA</apiKey>
      <apiLogin>pRRXKOl8ikMmt9u</apiLogin>
   </merchant>
   <transaction>
      <additionalValues>
         <entry>
            <string>TX_VALUE</string>
            <additionalValue>
               <value>950</value>
               <currency>ARS</currency>
            </additionalValue>
         </entry>
      </additionalValues>
      <order>
         <id>1400462690</id>
      </order>
      <parentTransactionId>0486359b-a048-4b6b-9b72-af584e710e64</parentTransactionId>
      <reason>Reason for requesting the refund or cancellation of the transaction</reason>
      <type>PARTIAL_REFUND</type>
   </transaction>
</request>

Ejemplo de una Respuesta:

<paymentResponse>
    <code>SUCCESS</code>
    <transactionResponse>
        <orderId>1400462691</orderId>
        <transactionId>6cef020a-8006-4744-b7f9-d9a343807297</transactionId>
        <state>PENDING</state>
        <pendingReason>PENDING_REVIEW</pendingReason>
        <responseMessage>1400462690</responseMessage>
    </transactionResponse>
</paymentResponse>

Consultar el Estado del Reembolso

Como se mencionó anteriormente, las solicitudes de reembolso pasan por un proceso de aprobación en el que PayU tarda entre 1 y 3 días en procesarlas y aprobarlas o rechazarlas. Puedes verificar el estado de un reembolso utilizando uno de los siguientes métodos:

Consultar el Estado a través del Panel de Administración de PayU

  1. Inicia sesión en tu cuenta del módulo de PayU. En el panel izquierdo, expande el menú Transacciones y selecciona Reporte de Ventas.

    PrintScreen

  2. Usa el campo Filtrar mis ventas para buscar la orden utilizando el ID de la orden o el ID de la transacción.

    PrintScreen

  3. La columna Estado indica si el reembolso ha sido aprobado, rechazado o si está pendiente.

    PrintScreen

Consultar el Estado a través de la API de Consultas

También puedes verificar el estado del reembolso utilizando la API de Consultas. Para hacerlo, envía una solicitud que contenga el ID de la orden.

Al consultar una orden, el sistema devuelve la última transacción asociada con ella.

La respuesta puede indicar uno de los tres posibles estados:

  • Solicitud No Resuelta: Si la solicitud de reembolso aún está en revisión, la orden aparece con el estado CAPTURED (result.payload.status en la respuesta).

    • El primer tipo de transacción es AUTHORIZATION_AND_CAPTURE (result.transactions.type en la respuesta).
    • El primer estado de la transacción es APPROVED (result.transactions.transactionResponse.state en la respuesta).
  • Aprobado: Si la solicitud de reembolso es aprobada por un agente de servicio al cliente de PayU, la orden aparece con el estado REFUNDED (result.payload.status en la respuesta).

    • El primer tipo de transacción es REFUND (result.transactions.type en la respuesta).
    • El primer estado de la transacción es APPROVED (result.transactions.transactionResponse.state en la respuesta).
  • Rechazado: Si la solicitud de reembolso es rechazada por un agente de servicio al cliente de PayU, la orden aparece con el estado CAPTURED (result.payload.status en la respuesta).

    • El primer tipo de transacción es REFUND (result.transactions.type en la respuesta).
    • El primer estado de la transacción es DECLINED (result.transactions.transactionResponse.state en la respuesta).
Última modificación 26 de septiembre de 2025: Documentation updates (8db15c9f4)