Inicio
DocumentaciĂłn
Recursos
Partners
Comunidad

Recursos

Revisa las actualizaciones de nuestras soluciones y operatividad del sistema o pide soporte técnico.

Partners

Conoce nuestro programa para agencias o desarrolladores que ofrecen servicios de integraciĂłn y vendedores que quieren contratarlos.

Comunidad

Recibe las Ășltimas novedades, pide ayuda a otros integradores y comparte tus conocimientos.

Reembolso de transacciones con Pix - Reembolsos y cancelaciones - Mercado Pago Developers

BĂșsqueda inteligente powered by OpenAI 

Reembolso de transacciones con Pix

Al recibir pagos con Pix, es posible que necesites realizar operaciones de reembolso. En caso de ser necesario, los reembolsos pueden permanecer en proceso (contingencia) debido a algĂșn error durante el procesamiento de la transacciĂłn, por ejemplo, en la comunicaciĂłn con el Bacen.

Por defecto, estos errores son reportados a quien hizo la solicitud como un 400 - Bad Request, lo que puede dificultar la comprensiĂłn sobre el status en el que se encuentra el reembolso hasta que el pago pase al status refunded (en caso de ser aprobado).

Para obtener una respuesta mĂĄs clara, basta con enviar el header X-Render-In-Process-Refunds: true junto con el request de creaciĂłn de reembolso. De esta forma, la respuesta incluirĂĄ el status 201 - Created y el campo status con el valor in_process.

El header tambiĂ©n puede ser incluido en requests para obtener la lista de reembolsos y para la bĂșsqueda de un reembolso especĂ­fico. En estos casos, cuando sea aplicable, la respuesta traerĂĄ el mismo valor de estado mencionado anteriormente.

          
<?php
  use MercadoPago\Client\Payment\PaymentRefundClient;
  MercadoPagoConfig::setAccessToken("YOUR_ACCESS_TOKEN");
  
  $client = new PaymentRefundClient();
  $refund = $client->refund($payment_id, 20);
  echo $refund->id;
?>

        
          
MercadoPagoConfig.setAccessToken("YOUR_ACCESS_TOKEN");

PaymentRefundClient client = new PaymentRefundClient();

Map<String, String> customHeaders = new HashMap<>();
customHeaders.put("X-Render-In-Process-Refunds", "true");

MPRequestOptions requestOptions = MPRequestOptions.builder()
   .customHeaders(customHeaders)
   .build();

PaymentRefund refund = client.refund(paymentId, new BigDecimal(20), requestOptions);


        
          
import { MercadoPagoConfig, PaymentRefund } from 'mercadopago';

const client = new MercadoPagoConfig({ accessToken: 'YOUR_ACCESS_TOKEN' });
const paymentRefund = new PaymentRefund(client);

refund.create({
payment_id: '<PAYMENT_ID>',
body: {
amount: 100
}
}).then(console.log).catch(console.log);

        
          
sdk = mercadopago.SDK('YOUR_ACCESS_TOKEN')

refund_object = {
   'amount': 20
}

request_options = mercadopago.config.RequestOptions()
request_options.custom_headers = {
   'content-type': 'application/json',
   'X-Render-In-Process-Refunds': 'true'
}

sdk.refund().create('payment_id', refund_object, request_options)


        
          
sdk = Mercadopago::SDK.new('YOUR_ACCESS_TOKEN')

data = {
 amount: 20
}

custom_headers = {
 'X-Render-In-Process-Refunds': 'true'
}
custom_request_options = Mercadopago::RequestOptions.new(custom_headers: custom_headers)

refund = sdk.refund.create(payment_id, refund_data: data, request_options: custom_request_options)


        
          
MercadoPagoConfig.AccessToken = "YOUR_ACCESS_TOKEN";

PaymentRefundClient client = new PaymentRefundClient();

var requestOptions = new RequestOptions();
requestOptions.CustomHeaders.Add("X-Render-In-Process-Refunds", "true");

var refund = client.Refund(paymentId, 20, requestOptions);


        
          
package main

import (
	"context"
	"fmt"

	"github.com/mercadopago/sdk-go/pkg/config"
	"github.com/mercadopago/sdk-go/pkg/refund"
)

func main() {
	accessToken := "{{ACCESS_TOKEN}}"

	cfg, err := config.New(accessToken)
	if err != nil {
		fmt.Println(err)
		return
	}

	client := refund.NewClient(cfg)

	resource, err := client.Create(context.Background(), <PAYMENT_ID>)
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println(resource)
}

        
          
curl --location --request POST 'https://api.mercadopago.com/v1/payments/{payment_id}/refunds \

-H 'X-Render-In-Process-Refunds: true' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'X-Idempotency-Key: {idempotency_key}' \
--data-raw '{
    "amount": 20
}'

        

Ejemplo de respuesta (se omitieron algunos campos)

Json

{
 "id": 1150873004,
 "payment_id": 23443394602,
 "amount": 20,
 "metadata": {},
 "source": {
     "id": "475845652",
     "name": "Test Test",
     "type": "collector"
 },
 "date_created": "2022-06-24T16:09:03.944-04:00",
 "unique_sequence_number": null,
 "refund_mode": "standard",
 "adjustment_amount": 0,
 "status": "in_process",
 "reason": "1",
 "labels": [
     "hidden",
     "contingency"
 ],
 "amount_refunded_to_payer": 20,
 "e2e_id": "D00000000202312220000abcdefghijklm",
 "partition_details": []
}