Mercado Pago via Direct API
Integre o Mercado Pago na sua aplicação via API.
1. Crie e encomende#
Para efetuar uma compra, crie um pedido na DEUNA.
Faça uma solicitação ao Crie um pedido endpoint.
A API retorna um order_token que é usado em todo o fluxo.
Exemplo de solicitação
{
"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"
}
}
]
}
]
}
}
}Descrição do campo
Saiba como todos os campos devem ser preenchidos no pedido do Mercado Pago via API.
Campos comuns em todos os pedidos:
| Caminho do campo | Descrição | Valor de exemplo |
|---|---|---|
| order_type | Tipo de pedido (deve ser AIRLINE_ORDER se houver informações da companhia aérea) | AIRLINE_ORDER |
| order.statement_descriptor | Descrição do extrato para pagamento. Comprimento máximo aceito pelo Mercado Pago: 13 caracteres. | DEUNA*SHOP123 |
Campos obrigatórios do passageiro
Para cada passageiro, preencha os dados pessoais e de cada trecho adquirido.
| Caminho do campo | Descrição | Valor de exemplo | Obrigatório |
|---|---|---|---|
| order.airline_information.booking_items[0].passenger.first_name | Nome do passageiro | João | |
| order.airline_information.booking_items[0].passenger.middle_name | Nome do meio do passageiro (se aplicável) | Paulo | Opcional |
| order.airline_information.booking_items[0].passenger.last_name | Sobrenome do passageiro | Smith | |
| order.airline_information.booking_items[0].passenger.date_of_birth | Data de nascimento do passageiro | 2000-06-27 | Opcional |
| order.airline_information.booking_items[0].legs[0].carrier_name | Código da companhia aérea | Aeroméxico | Valor padrão "Desconhecido" |
| order.airline_information.booking_items[0].legs[0].total_amount | Valor total da perna | 1000 | |
| order.airline_information.booking_items[0].legs[0].sub_total_amount | Subtotal da perna sem impostos | 1000 | |
| order.airline_information.booking_items[0].legs[0].tax_amount | Valor do imposto | 0 | Opcional |
| order.airline_information.booking_items[0].legs[0].origin.date | Data de origem | 2020-02-15 | |
| order.airline_information.booking_items[0].legs[0].origin.time | Hora de origem | 15:30 | |
| order.airline_information.booking_items[0].legs[0].origin.iata_code | Código IATA do aeroporto de origem | SFO | Valor padrão "N/A” |
| order.airline_information.booking_items[0].legs[0].destination.iata_code | Código IATA do aeroporto de destino | DBX | Valor padrão "N/A” |
| order.airline_information.booking_items[0].legs[0].destination.date | Data de destino | 2020-02-15 | |
| order.airline_information.booking_items[0].legs[0].destination.time | Hora de destino | 15:30 |
Campos de pedido
| Campo | Descrição | Valor de exemplo | Obrigatório |
|---|---|---|---|
| order.store_code | Código de loja exclusivo (valor “todos”) | all | |
| order.items | Coleção de itens. Verifique | Crie um pedido | Obrigatório por este fluxo do Mercado Pago caso as informações da companhia aérea não estejam incluídas. |
| order.statement_descriptor | Descrição do extrato para pagamento. Comprimento máximo aceito pelo Mercado Pago: 13 caracteres. | DEUNA\SHOP123 |
Considerações gerais:
- Sobre
order.items:total_amount.original_amountdeve serunit_price.amount * quantity.total_amount.amountdeve ser((unit_price.amount + tax_amount.amount) * quantity) - total_amount.total_discount.total_amount.total_discounté o valor total dos descontos pela quantidade de itens.
order.items_total_amounté a soma dos preços unitários dos itens. Esse valor, maisorder.total_tax_amounte menosorder.discount_amount, deve corresponderorder.total_amount.order.sub_totalé a soma do preço unitário dos itens menos os descontos. Esse valor, maisorder.total_tax_amount, deve corresponderorder.total_amount.
2. callback_urls para links diretos#
Quando o Mercado Pago abre em uma superfície nativa do navegador (SafariViewController no iOS ou Custom Tabs no Android), você deve configurar links diretos para que o usuário retorne ao seu aplicativo após o resultado do pagamento.
{
"order_type": "AIRLINE_ORDER",
"order": {
.
.
.
"callback_urls": {
"on_success": "yourapp://success",
"on_pending": "yourapp://pending",
"on_failed": "yourapp://failed"
}
}
}3. Processe o pedido#
Faça uma solicitação ao Compra V2 endpoint e processa o pagamento.