Skip to main content
The booking flow for resellers is three steps: create a booking attempt, receive payment from your customer, then confirm it with Seyaha by posting the external payment ID.

Booking status lifecycle

Booking Attempt  →  (payment received)  →  Paid by Customer  →  (cancelled)  →  Cancelled

Create a booking

POST /api/v1/resellers/add-booking
curl -X POST https://api.seyaha.net/api/v1/resellers/add-booking \
  -H "x-api-token: $RESELLER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "activity_id": "6744810075becd2ef8c140f7",
    "variation_id": "6751ad2d7533f379c9a1711b",
    "customer_details": {
      "name": "Jane Smith",
      "email": "[email protected]",
      "phone": "+966501234567"
    },
    "booking_details": {
      "booking_date": "2026-07-15",
      "booking_time": "10:00",
      "currency": "USD",
      "guests": { "adult": 2, "child": 1, "infant": 0 },
      "pickup_address": {
        "address": "Riyadh Marriott Hotel",
        "lat": 24.6877,
        "lng": 46.7219
      }
    }
  }'
The response booking has status: "Booking Attempt". The slot is reserved but not confirmed until payment is posted.

Confirm after payment

Once your payment gateway confirms payment, post the external payment ID to convert the booking to Paid by Customer:
POST /api/v1/resellers/payment-success
curl -X POST https://api.seyaha.net/api/v1/resellers/payment-success \
  -H "x-api-token: $RESELLER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "booking_id": "67c896a6639e6ff76dd2f882",
    "external_payment_id": "pay_1N9dvSLkdIwHu2QOxgMtN9dE"
  }'

Cancel a booking

Cancellation processes a refund according to the activity’s cancellation policy. Only bookings with status Paid by Customer can be cancelled. Cancellation is irreversible — there is no undo endpoint.
POST /api/v1/resellers/bookings/cancel-booking
curl -X POST https://api.seyaha.net/api/v1/resellers/bookings/cancel-booking \
  -H "Authorization: Bearer $RESELLER_JWT" \
  -H "Content-Type: application/json" \
  -d '{ "booking_id": "67c896a6639e6ff76dd2f882" }'

Look up bookings for a user

GET /api/v1/resellers/users/bookings/{user_id}
curl "https://api.seyaha.net/api/v1/resellers/users/bookings/$USER_ID?page=1&pageSize=10" \
  -H "x-api-token: $RESELLER_TOKEN"

Booking object reference

FieldDescription
_idBooking ID
statusBooking Attempt / Paid by Customer / Cancelled
partnerConfirmationPending / Confirmed / Rejected / Not Required
bookingDateDate of the activity (YYYY-MM-DD)
bookingTimeTime of the activity (HH:mm)
price.totalPriceTotal amount charged
external_payment_idPayment gateway reference (set after payment-success)