Pular para o conteúdo principal
Nesta página

A DEUNA considera os dados de reserva de voos como parte da ordem, e não como um conjunto de metadados. Preserva o contexto comercial e de viagens utilizado por provedores de pagamento, controles de fraude, reconciliação e operações com clientes.

Completa o payload da ordem da companhia aérea#

Uso AIRLINE_ORDER e inclua airline_information.booking_itemsO exemplo reflete o modelo utilizado pelas soluções de pedido e pagamento, similar ao modelo de companhias aéreas.

Payload completo do pedido

Companhias aéreas

PNR, passageiro, bilhete, itinerário, tarifa, impostos e serviços adicionais em um pedido aéreo tipado.

airline_informationbooking_itemslegsancillaries
Corpo da solicitaçãoJSON
{
  "order_type": "AIRLINE_ORDER",
  "order": {
    "order_id": "pnr-N7K4Q2",
    "store_code": "web-eu",
    "currency": "EUR",
    "items_total_amount": 52000,
    "sub_total": 52000,
    "total_tax_amount": 9200,
    "total_amount": 61200,
    "items": [
      {
        "id": "ticket-0741234567890",
        "name": "Madrid to Paris",
        "description": "Economy Flex airfare with one checked bag",
        "quantity": 1,
        "category": "airfare",
        "taxable": true,
        "unit_price": {
          "amount": 52000,
          "currency": "EUR",
          "currency_symbol": "€"
        },
        "total_amount": {
          "amount": 52000,
          "original_amount": 52000,
          "currency": "EUR",
          "currency_symbol": "€",
          "total_discount": 0
        },
        "tax_amount": {
          "amount": 9200,
          "currency": "EUR",
          "currency_symbol": "€"
        }
      }
    ],
    "airline_information": {
      "booking_items": [
        {
          "pnr": "N7K4Q2",
          "ticket_number": "0741234567890",
          "e_ticket": true,
          "airline_3_digit_code": "074",
          "airline_iata_designator": "UX",
          "reservation_system_code": "AMADEUS",
          "ticketing_travel_agency": {
            "iata_code": "91234567",
            "name": "DEUNA Travel",
            "agency_invoice_number": "INV-2026-00421"
          },
          "passenger": {
            "user_id": "traveler-8821",
            "first_name": "Alex",
            "middle_name": "",
            "last_name": "Morgan",
            "title": "Mx",
            "date_of_birth": "1990-06-25",
            "document_type": "passport",
            "identity_document_number": "PA1234567",
            "document_number": "PA1234567",
            "email": "alex@example.com",
            "phone": "+34600000000",
            "frequent_flyer_code": "UX008821",
            "country_code": "ES",
            "type": "ADT"
          },
          "legs": [
            {
              "origin": {
                "iata_code": "MAD",
                "date": "2026-11-14",
                "time": "09:10",
                "city": "Madrid",
                "country_code": "ES"
              },
              "destination": {
                "iata_code": "ORY",
                "date": "2026-11-14",
                "time": "11:05",
                "city": "Paris",
                "country_code": "FR"
              },
              "carrier_code": "UX",
              "carrier_name": "Air Europa",
              "flight_number": "UX1027",
              "seat_location": "12A",
              "fare_basis_code": "YFLEX",
              "stopover_code": "O",
              "sub_total_amount": 48500,
              "tax_amount": 9200,
              "total_amount": 57700,
              "service_class": "Y",
              "airport_tax_amount": 4700
            }
          ],
          "ancillaries": [
            {
              "type": "BAGGAGE",
              "ticket_number": "0741234567890",
              "total_amount": 3500,
              "service_category": "baggage",
              "description": "One checked bag",
              "category_code": "BG",
              "sub_category_code": "23K",
              "fee_code": "0CC",
              "unit_price": 3500
            }
          ]
        }
      ]
    },
    "payer_info": {
      "email": "alex@example.com",
      "date_of_birth": "1990-06-25T00:00:00Z"
    },
    "description": "N7K4Q2 · MAD–ORY",
    "statement_descriptor": "DEUNA TRAVEL",
    "channel_type": "desktop_web",
    "metadata": {
      "vertical": "airline",
      "sales_channel": "direct",
      "loyalty_tier": "gold"
    },
    "callback_urls": {
      "on_success": "https://merchant.example.com/payments/success",
      "on_pending": "https://merchant.example.com/payments/pending",
      "on_reject": "https://merchant.example.com/payments/rejected",
      "on_canceled": "https://merchant.example.com/payments/canceled",
      "on_failed": "https://merchant.example.com/payments/failed"
    }
  }
}

Modelar o contexto de negócios#

RequisitoCampos de pedido
Reserva e bilhetepnr, ticket_number, e_ticket, reservation_system_code
Passageiropassenger Campos de identidade, contato, tipo e de frequentadores
Voolegs[].origin, destination, carrier_code, flight_number, service_class
Preço e impostosTrecho e subtotal do pedido, impostos, taxa aeroportuária e valores totais
Serviços adicionaisancillaries[] Tipo, categoria de serviço, bilhete, código de taxa e valor

Lista de verificação de produção#

  • Mapear booking_item Para cada passageiro e relação de bilhete utilizada pelo seu sistema de reservas.
  • Utilize consistentemente os designadores de aeroportos e companhias aéreas da IATA.
  • Reconcilie os totais de pedido, trecho, impostos, serviços adicionais e o total final em unidades monetárias menores.
  • Mantenha os dados pessoais dos passageiros limitados aos campos necessários para o fluxo.
  • Teste cenários de autorização, 3DS, captura adiada, cancelamento, reembolso e alteração de itinerário.

Continuar com Autenticação 3DS, Fluxos de captura e reembolsoe Processar o pagamento do pedido.