RahalCorporate
OrdersConcepts

Payment Providers

Understanding the different payment methods and providers supported by Rahal

Payment Providers

Rahal supports multiple payment providers to accommodate different user needs and booking contexts. Each provider has its own flow, fee structure, and use case.

Supported Providers

ProviderDescriptionUse Case
SUPER_QI_APPSuper Qi mobile walletConsumer bookings in Iraq
CHECKOUT_COMCard payments via Checkout.comCard payments
BNPLBuy Now, Pay LaterInstallment payments
SANDBOXTest/sandbox paymentsDevelopment and testing
CORPORATE_DIRECTCompany billingCorporate travel bookings

Provider Details

SUPER_QI_APP

The primary payment method for consumer bookings in Iraq using the Super Qi mobile wallet.

Flow:

  1. Order created → Payment session initiated
  2. User redirected to Super Qi app
  3. User approves payment in wallet
  4. Webhook confirms payment → Order processed

Features:

  • Mobile wallet integration
  • Instant payment verification
  • User-friendly for Iraqi market

CHECKOUT_COM

Credit/debit card payments processed through Checkout.com.

Flow:

  1. Order created → Checkout.com session created
  2. User enters card details in hosted form
  3. Payment processed → 3DS if required
  4. Payment confirmed → Order processed

Features:

  • Supports major card networks (Visa, Mastercard)
  • 3D Secure authentication
  • PCI-compliant card handling

BNPL (Buy Now, Pay Later)

Installment payment option allowing users to pay over time.

Flow:

  1. Order created → BNPL eligibility checked
  2. User confirms installment plan
  3. First installment processed
  4. Order processed → Remaining installments scheduled

Features:

  • Split payments over multiple months
  • Additional fee percentage applied
  • Eligibility requirements apply

Fee Structure:

Original Price + (Original Price × Fee Percentage) = Total Price

The fee percentage is configured at the system level. When viewing orders, both the base amount and BNPL fee are displayed.

BNPL orders show isPaid: false until all installments are confirmed. The initial PAID status reflects the first installment only.

SANDBOX

Test payment provider for development and testing environments.

Flow:

  1. Order created with test payment ID
  2. Payment automatically marked as successful
  3. Order processed normally

Features:

  • No actual payment processing
  • Instant verification
  • Available in development/staging only

SANDBOX should never be available in production. It bypasses all payment verification.

CORPORATE_DIRECT

Special provider for corporate travel where the company is billed directly.

Flow:

  1. Policy and budget evaluation
  2. Order created (no payment required)
  3. Budget reserved
  4. Reservations created
  5. Budget confirmed on success

Features:

  • No user payment required
  • Company invoiced separately
  • Integrated with policies and budgets
  • Detailed audit trail

See Corporate Direct for complete details.

Provider Selection

The payment provider is determined at order creation based on:

  1. User Context: Consumer vs. corporate user
  2. Platform: Which app/platform initiated the booking
  3. User Selection: Which payment method the user chose

Provider by Platform

PlatformAvailable Providers
Consumer AppSUPER_QI_APP, CHECKOUT_COM, BNPL
Corporate AppCORPORATE_DIRECT
Travel Zone WebSUPER_QI_APP, CHECKOUT_COM

Payment Verification

Each provider has its own verification mechanism:

ProviderVerification Method
SUPER_QI_APPAPI call to verify payment status
CHECKOUT_COMWebhook callback from Checkout.com
BNPLBNPL provider confirmation
SANDBOXAlways returns success
CORPORATE_DIRECTAlways returns success (no payment)

Order Fields by Provider

When viewing orders, provider-specific fields are displayed:

FieldSUPER_QI_APPCHECKOUT_COMBNPLCORPORATE_DIRECT
providerSUPER_QI_APPCHECKOUT_COMBNPLCORPORATE_DIRECT
paymentIdSuper Qi IDCheckout.com IDBNPL IDOrder ID
bnplFeeAmount00> 00
bnplFeePercentage00> 00
companyIdnullnullnullCompany ID
policyIdnullnullnullPolicy ID

Transaction Records

Each successful payment creates a transaction record linking:

  • Order reference
  • Payment amount
  • Payment timestamp
  • Provider-specific payment ID
  • BNPL installment ID (if applicable)

Refunds are linked to transactions, tracking:

  • Refund amount
  • External reference
  • Refund reason

Error Handling

Payment failures are handled differently by provider:

SUPER_QI_APP

  • User can retry in app
  • Order remains in ACCEPTED until timeout

CHECKOUT_COM

  • Error displayed to user
  • User can retry with different card
  • 3DS failures logged

BNPL

  • Eligibility failures prevent order creation
  • Installment failures logged for follow-up

CORPORATE_DIRECT

  • Policy blocks: Order rejected with violation message
  • Budget blocks: Order rejected with budget message

On this page