Powered by x402 · USDC on Solana

Your agent books flights.
You pay per call.

Flight search, booking, and on-chain settlement over x402. Live airline inventory, escrowed in USDC on Solana. No merchant onboarding, no IATA accreditation, no monthly minimums.

# 1. Search live flight inventory (pay-per-call, $0.10 ×1..50)
$ curl -X POST "https://travel.brij.fi/air/search" \
    -H "PAYMENT-SIGNATURE: <sig>" \
    -d '{"origin_iata":"SFO","destination_iata":"JFK","depart_date":"2026-12-15","adults":1,"cabin_class":"economy"}'
#    add "return_date":"2026-12-22" for a round trip (booked in one /air/book)
#    add "cheapest_per_itinerary":true,"limit":20 for compact results (LLM-friendly)
#    filters: "sort":"duration","max_stops":0,"departure_after":"12:00","departure_before":"18:00","max_price":"250.00"

# 2. Create an escrow-backed booking intent ($0.10)
$ curl -X POST "https://travel.brij.fi/air/intents" \
    -H "PAYMENT-SIGNATURE: <sig>" \
    -d '{"offer_id":"off_xxx","funding_wallet":"..."}'

# 3. Fund the escrow and book (pays the escrow amount via x402)
#    intent_id travels in the body — no endpoint takes an id in the path
$ curl -X POST "https://travel.brij.fi/air/book" \
    -H "PAYMENT-SIGNATURE: <sig>" \
    -d '{"intent_id":"'"$INTENT"'","passengers":[{"given_name":"Ada","family_name":"Lovelace","born_on":"1990-01-01","title":"ms","gender":"f","email":"[email protected]","phone_number":"+15551234567"}]}'

# HTTP 200 + Payment-Response: <settled>
# {"intent": {...}, "booking": {"order_id": "ord_xxx", "awaiting_payment": false, ...}}
# The airline PNR (booking_reference) comes from GET /air/orders/{order_id},
# which requires the X-Customer-Support-Code returned at intent creation.
from x402 import X402Client

client = X402Client(solana_wallet)

# Search
offers = client.post("https://travel.brij.fi/air/search", json={
  "origin_iata": "SFO",
  "destination_iata": "JFK",
  "depart_date": "2026-12-15",
  "adults": 1,
  "cabin_class": "economy",  # optional; "return_date" for round trips
}).json()

# Create intent from a selected offer (no passenger at this step)
intent = client.post("https://travel.brij.fi/air/intents", json={
  "offer_id": offers["search"]["offers"][0]["id"],
  "funding_wallet": solana_wallet.public_key,
}).json()

# Fund escrow + book in one x402-paid call.
# intent_id goes in the body: no endpoint takes an id in the path.
booked = client.post("https://travel.brij.fi/air/book", json={
  "intent_id": intent["intent"]["id"],
  "passengers": [{
    "given_name": "Ada", "family_name": "Lovelace",
    "born_on": "1990-01-01", "title": "ms", "gender": "f",
    "email": "[email protected]", "phone_number": "+15551234567",
  }],
}).json()

# booked["booking"]["order_id"] identifies the airline order.
# The PNR lives behind GET /air/orders/{order_id} + X-Customer-Support-Code.
Endpoints

Full booking stack. Pay per request.

Four paid endpoints cover the agent's booking lifecycle. Flat-fee endpoints settle at $0.10 USDC; the booking call pays the escrow amount directly so funding and booking happen in one x402 round-trip.

Flight Search
Live airline offers for an origin / destination / date. Dynamic pricing reflects upstream rate-limit pressure.
Create Intent
Lock in a selected offer and derive a per-intent Solana escrow PDA. Funding and refund wallets are frozen at creation; passenger details come later, at booking.
Fund & Book
x402 payment for the escrow amount triggers the airline booking. Response carries the order reference; the PNR is read back with the customer-support code once the ticket is issued — funds are captured only then.
Refund Request
File a refund when the upstream price changed before booking. Requires the customer-support code from intent creation.

Booking flow

Four calls from search to confirmation.

Each step is a single x402-paid HTTP call. Your agent never holds an account, never manages a contract, never reconciles a monthly bill.

01 / SEARCH
Find offers
POST /air/search
Pay $0.10 (scaled by live load) and get fresh flight offers for origin_iata, destination_iata, and depart_date.
02 / RESERVE
Create the intent
POST /air/intents
Pay $0.10 to lock the chosen offer. Server derives a per-intent Solana escrow and returns intent_id plus customer_support_code — persist both.
03 / BOOK
Fund the escrow
POST /air/book
Pay the escrow amount via x402 — into escrow, not to us. The booking is placed; your funds are captured only once the ticket is actually issued (anything else refunds in full). The airline PNR follows: immediately via GET /air/orders for fastbooking fares, by email once the supplier issues the ticket for lowcost fares (can take a few hours).
04 / OPTIONAL
Refund on mismatch
POST /air/refund-requests
If the upstream price changed, the booking is rejected automatically. You can also request a manual refund.

Why BRIJ Travel

A flight merchant built for autonomous agents.

Traditional flight inventory requires multi-month onboarding, monthly minimums, and human-shaped contracts. BRIJ Travel exposes live airline inventory over the x402 protocol your agent already speaks.

Traditional GDS / aggregator

  • 1
    Apply for GDS access
    Sabre, Amadeus, or Travelport onboarding. Weeks of legal and integration.
  • 2
    IATA / ARC accreditation
    Business verification, bonds, and regulatory paperwork before you can issue tickets.
  • 3
    Monthly minimums
    Volume commitments and credit lines even when your agent only books occasionally.
  • 4
    PCI compliance & settlement
    Card data handling, chargebacks, and merchant accounts to operate as a travel reseller.

With BRIJ Travel

  • No account, no contract
    Payment is authentication. Show up with USDC and start booking.
  • Pay per call in USDC
    Fractions of a cent for search, full ticket price at booking. Settle on-chain.
  • x402-native
    Same HTTP 402 flow your agent already handles for every other paid API.
  • Escrow-backed bookings
    Per-intent Solana escrow holds funds until the airline confirms; price mismatch triggers refund.

Discovery

Agent-ready out of the box.

BRIJ Travel publishes standard discovery documents so any x402-compatible agent, marketplace, or orchestrator can find and use it automatically.

Book travel that costs
only what it should.

One round-trip across the world. No contracts, no monthly minimums, no per-tenant API keys.