Mercado Pago vía API Directa
Integra Mercado Pago en tu aplicación vía API.
1. Crea y ordena#
Para realizar una compra, crea un pedido en DEUNA.
Realizar una solicitud al Crear un pedido endpoint.
La API devuelve un order_token que se utiliza durante todo el flujo.
Ejemplo de solicitud
{
"order_type": "AIRLINE_ORDER",
"order": {
....
"statement_descriptor": "DEUNA_TICKET",
"store_code": "all",
"airline_information": {
"booking_items": [
{
"passenger": {
"first_name": "Jhon",
"middle_name": "Paul",
"last_name": "Smith",
"date_of_birth": "2000-06-27"
},
"legs": [
{
"carrier_name": "Aeromexico",
"sub_total_amount": 900,
"tax_amount": 600,
"total_amount": 1500,
"origin": {
"date": "2020-02-15",
"time": "15:30",
"iata_code": "SFO"
},
"destination": {
"iata_code": "DBX",
"date": "2020-02-15",
"time": "15:30"
}
}
]
}
]
}
}
}Descripción del campo
Conoce cómo se deben llenar todos los campos en el pedido de Mercado Pago vía API.
Campos comunes en todos los pedidos:
| Ruta de campo | Descripción | Valor de ejemplo |
|---|---|---|
| order_type | Tipo de pedido (debe ser AIRLINE_ORDER si la información de la aerolínea está presente) | AIRLINE_ORDER |
| order.statement_descriptor | Descripción del estado de cuenta para el pago. Longitud máxima aceptada por Mercado Pago: 13 caracteres. | DEUNA*TIENDA123 |
Campos obligatorios para pasajeros
Para cada pasajero, complete los datos personales y de cada uno de los tramos comprados.
| Ruta de campo | Descripción | Valor de ejemplo | Requerido |
|---|---|---|---|
| order.airline_information.booking_items[0].passenger.first_name | Nombre del pasajero | Juan | |
| order.airline_information.booking_items[0].passenger.middle_name | Segundo nombre del pasajero (si corresponde) | Pablo | Opcional |
| order.airline_information.booking_items[0].passenger.last_name | Apellido del pasajero | herrero | |
| order.airline_information.booking_items[0].passenger.date_of_birth | Fecha de nacimiento del pasajero | 2000-06-27 | Opcional |
| order.airline_information.booking_items[0].legs[0].carrier_name | Código de compañía aérea | Aeroméxico | Valor predeterminado "Desconocido" |
| order.airline_information.booking_items[0].legs[0].total_amount | Importe total de la pierna | 1000 | |
| order.airline_information.booking_items[0].legs[0].sub_total_amount | Subtotal del tramo sin impuestos | 1000 | |
| order.airline_information.booking_items[0].legs[0].tax_amount | Monto del impuesto | 0 | Opcional |
| order.airline_information.booking_items[0].legs[0].origin.date | fecha de origen | 2020-02-15 | |
| order.airline_information.booking_items[0].legs[0].origin.time | hora de origen | 15:30 | |
| order.airline_information.booking_items[0].legs[0].origin.iata_code | Código IATA del aeropuerto de origen | SFO | Valor predeterminado "N/A” |
| order.airline_information.booking_items[0].legs[0].destination.iata_code | Código IATA del aeropuerto de destino | DBX | Valor predeterminado "N/A” |
| order.airline_information.booking_items[0].legs[0].destination.date | fecha de destino | 2020-02-15 | |
| order.airline_information.booking_items[0].legs[0].destination.time | Hora de destino | 15:30 |
Campos de orden
| Campo | Descripción | Valor de ejemplo | Requerido |
|---|---|---|---|
| order.store_code | Código de tienda único (valor "todos") | all | |
| order.items | Colección de artículos. comprobar | Crear un pedido | Requerido por este flujo de Mercado Pago si no se incluye información de la aerolínea. |
| order.statement_descriptor | Descripción del estado de cuenta para el pago. Longitud máxima aceptada por Mercado Pago: 13 caracteres. | DEUNA\SHOP123 |
Consideraciones generales:
- Acerca de
order.items:total_amount.original_amountdebe serunit_price.amount * quantity.total_amount.amountdebe ser((unit_price.amount + tax_amount.amount) * quantity) - total_amount.total_discount.total_amount.total_discountes el valor total de los descuentos por la cantidad de artículos.
order.items_total_amountes la suma de los precios unitarios de los artículos. Esta cantidad, másorder.total_tax_amounty menosorder.discount_amount, debe coincidirorder.total_amount.order.sub_totales la suma del precio unitario de los artículos menos los descuentos. Esta cantidad, másorder.total_tax_amount, debe coincidirorder.total_amount.
2. callback_urls para enlaces profundos#
Cuando Mercado Pago se abre en la superficie de un navegador nativo (SafariViewController en iOS o Custom Tabs en Android), debes configurar enlaces profundos para que el usuario regrese a tu aplicación después del resultado del pago.
{
"order_type": "AIRLINE_ORDER",
"order": {
.
.
.
"callback_urls": {
"on_success": "yourapp://success",
"on_pending": "yourapp://pending",
"on_failed": "yourapp://failed"
}
}
}3. Procesar el pedido#
Realizar una solicitud al Compra V2 punto final y procesar el pago.