Passa al contenuto principale
In questa pagina

DEUNA considera i dati di prenotazione delle compagnie aeree come parte dell'ordine, non come un blob di metadati opaco. Preserva il contesto commerciale e di viaggio utilizzato dai fornitori di servizi di pagamento, controlli antifrode, riconciliazione e operazioni per i clienti.

Payload completo dell'ordine aereo#

Uso AIRLINE_ORDER e includi airline_information.booking_items. L'esempio riflette il modello utilizzato dalle soluzioni di ordine e pagamento, simile a quello delle compagnie aeree.

Payload completo dell’ordine

Compagnie aeree

PNR, passeggero, biglietto, itinerario, tariffa, imposte e servizi accessori in un ordine aereo tipizzato.

airline_informationbooking_itemslegsancillaries
Corpo della richiestaJSON
{
  "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"
    }
  }
}

Modella il contesto aziendale#

RequisitoOrdinare i campi
Prenotazione e bigliettipnr, ticket_number, e_ticket, reservation_system_code
Passeggeropassenger Campi per l'identità, i dati di contatto, il tipo e la registrazione come cliente fedele.
Vololegs[].origin, destination, carrier_code, flight_number, service_class
Tariffe e tasseImporto per gambe e sottototale dell'ordine, tasse, tassa aeroportuale e importo totale.
Servizi aggiuntiviancillaries[] tipo, categoria del servizio, ticket, codice tariffario e importo

Controllo di avvio#

  • Mappa 1 booking_item per definire la relazione tra passeggero e biglietto, utilizzata dal vostro sistema di prenotazione.
  • Utilizzare in modo coerente i designatori aeroportuali e delle compagnie aeree secondo lo standard IATA.
  • Verificare la coerenza tra totale ordine, tratta, tasse, servizi aggiuntivi e totale finale in valute minori.
  • Limitare i dati personali dei passeggeri ai campi richiesti dal flusso.
  • Testare scenari di autorizzazione, 3DS, cattura ritardata, cancellazione, rimborso e modifica itinerario.

Continua con Autenticazione 3DS, Flussi di cattura e rimborsoe Elaborare il pagamento di un ordine.