Open Finance
Open Finance es un nuevo sistema financiero que te permite tener un dominio total de tus datos y mayor libertad con tus finanzas. Con él, es posible compartir historias financieras con otras instituciones para acceder a productos y servicios mås ventajosos.
Con Open Finance, se pueden hacer pagos Pix con saldos de otras cuentas bancarias, en Checkout Transparente.
Crear un pago Pix
Para iniciar un pago utilizando Open Finance, debes tener configurado previamente el método de pago Pix. Para obtener instrucciones de configuración e integración, consulta la documentación.
Una vez que hayas configurado correctamente el método de pago, deberås agregar nueva información a la solicitud para crear el pago a través del paråmetro point_of_interaction
, que indica el modo de financiación abierta. Esto es vålido tanto a través de la API como a través de nuestros SDK, como se muestra en los siguientes ejemplos:
MercadoPago\SDK::setAccessToken("access_token");
$payment = new MercadoPago\Payment();
$payment->transaction_amount = 100;
$payment->description = "TĂtulo do produto";
$payment->payment_method_id = "pix";
$payment->payer = array(
"email" => "test@test.com",
"first_name" => "Test",
"last_name" => "User",
"identification" => array(
"type" => "CPF",
"number" => "19119119100"
),
);
$payment->point_of_interaction = array(
"linked_to" => "openfinance"
);
$payment->save();
mercadopago.configurations.setAccessToken("access_token");
var payment = {
transaction_amount: 100,
description: 'description',
payment_method_id: 'pix',
payer: {
email: 'test@test.com'
},
point_of_interaction: {
linked_to: "openfinance"
}
};
mercadopago.payment.create(payment).then(function (data) {
console.log(data.response);
}).catch(function (error) {
console.log(error);
});
MercadoPagoConfig.setAccessToken("access_token");
PaymentClient client = new PaymentClient();
PaymentCreateRequest createRequest =
PaymentCreateRequest.builder()
.transactionAmount(new BigDecimal(100))
.description("description")
.paymentMethodId("pix")
.pointOfInteraction(
PaymentPointOfInteractionRequest.builder().linkedTo("openfinance").build())
.payer(PaymentPayerRequest.builder().email("test@test.com").build())
.build();
Payment payment = client.create(createRequest);
sdk = Mercadopago::SDK.new('access_token')
payment_request = {
transaction_amount: 100,
description: 'description',
payment_method_id: 'pix',
payer: {
email: 'test@test.com'
},
point_of_interaction: {
linked_to: "openfinance"
}
}
payment_response = sdk.payment.create(payment_request)
payment = payment_response[:response]
MercadoPagoConfig.AccessToken = "access_token";
var request = new PaymentCreateRequest
{
TransactionAmount = 100,
Description = "description",
PaymentMethodId = "pix",
Payer = new PaymentPayerRequest
{
Email = "test@test.com"
},
PointOfInteraction = new PaymentPointOfInteractionRequest
{
LinkedTo = "openfinance"
}
};
var client = new PaymentClient();
Payment payment = await client.CreateAsync(request);
sdk = mercadopago.SDK("access_token")
payment_data = {
"transaction_amount": 100,
"description": "description",
"payment_method_id": "pix",
"payer": {
"email": "test@test.com"
},
"point_of_interaction": {
"linked_to": "openfinance"
}
}
payment_response = sdk.payment().create(payment_data)
payment = payment_response["response"]
curl --location --request POST 'https://api.mercadopago.com/v1/payments' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
"transaction_amount": 1000,
"description": "Teste Pix Open Finance",
"payment_method_id": "pix",
"payer": {
"email": "test_user_19734329@testuser.com"
},
"point_of_interaction": {
"linked_to": "openfinance"
},
"callback_url": "https://example.com"
}'
La respuesta de la solicitud serĂĄ muy similar a la respuesta de un pago con un Pix comĂșn, con algunas modificaciones:
- El valor de openfinance en
point_of_interaction.linked_to
- Valor nulo en
point_of_interaction.transaction_data.qr_code
ypoint_of_interaction.transaction_data.qr_code_base64
- Valor de
point_of_interaction.transaction_data.ticket_url
con URL a la aplicaciĂłn que finaliza el pago por Open Finance
Respuesta:
json
{ "point_of_interaction": { "linked_to": "openfinance", "transaction_data": { "qr_code": null, "ticket_url": "https://mercadopago.com.br/payments/12/openfinance?caller_id=1&hash=1111", "qr_code_base64": null } } }
Finalizar el pago
Con la respuesta de solicitud de creaciĂłn de pago, simplemente usa la URL disponible en el objeto point_of_interaction.transaction_data.ticket_url
para que el comprador pueda finalizar el pago a través de Open Finance.
Para esto, puedes redirigir al usuario a la URL directamente o presentar un botĂłn que redirija cuando se haga clic.
La imagen siguiente muestra un ejemplo de este proceso en la vista del usuario:
Prueba la integraciĂłn
Para probar la integraciĂłn, debes usar una credencial de prueba al crear un pago y tener un usuario de prueba con una Clave Pix registrada. Haz clic aquĂ para acceder a la documentaciĂłn y encontrar mĂĄs detalles sobre cĂłmo hacerlo.
Crea un pago de Pix Open Finance y utiliza la URL disponible en el atributo point_of_interaction.transaction_data.ticket_url
para acceder a la pĂĄgina de redirecciĂłn.
json
{ "point_of_interaction": { "linked_to": "openfinance", "transaction_data": { "qr_code": null, "ticket_url": "https://mercadopago.com.br/payments/12/openfinance?caller_id=1121&hash=11", "qr_code_base64": null } } }
En esta pĂĄgina, tendrĂĄs acceso a la informaciĂłn de pago y tendrĂĄs la posibilidad de seleccionar solo el banco 370 - Mercado Pago - Pagos para continuar con la prueba.
Al seleccionar el banco indicado, serĂĄ posible confirmar el pago y finalmente, se producirĂĄ la redirecciĂłn a la pantalla de Feedback definida en el parĂĄmetro callback_url
.