Online Payment Providers¶
HellaBooking supports two online payment gateways for processing card payments from customers.
Supported Providers¶
| ID | Provider | Market | Integration Project |
|---|---|---|---|
| 1 | SimplePay | Hungary | SimplePay/ |
| 2 | Stripe | International | Stripe/ |
Provider Configuration¶
Providers are configured in the PaymentProvider table with the following fields:
| Field | Description |
|---|---|
| Name | Display name |
| Merchant | Merchant identifier |
| SecretKey | API secret key |
| RemoteURL | Gateway endpoint URL |
| OperatorName | Operator legal name |
| OperatorAddress | Operator legal address |
Demo environment
The demo system has 1 payment provider configured.
Linking Providers to Services¶
Each ServiceType can reference up to two providers via PaymentProvider_ID (primary) and PaymentProvider2_ID (secondary).
SimplePay Integration¶
SimplePay is a Hungarian payment gateway supporting bank cards and SZEP cards (Szechenyi Pihenokartya).
Key characteristics:
- Uses IPN (Instant Payment Notification) callbacks for asynchronous status updates.
- The Order table tracks each transaction:
| Field | Description |
|---|---|
| OrderReference | Unique order identifier |
| SimplePayStatus | Current transaction status |
| SimplePayReference | SimplePay's reference ID |
| TransactionResult | Outcome of the transaction |
- Customers opt in via the SimplePayAcceptance flag on the
Usertable.
Recurring Card Payments¶
For subscriptions, the system stores card details for recurring charges:
- SimplePayReference -- token for recurring charges
- CardExpiry -- card expiration date for validation
Stripe Integration¶
Stripe is an international payment gateway used for non-Hungarian markets.
Event tracking via StripeEventEnum:
| ID | Event |
|---|---|
| 1 | Success |
| 2 | Failed |
| 3 | Cancelled |
| 4 | Timeout |
Split Payment¶
Split payment allows multiple customers to share the cost of a booking.
flowchart LR
A[Booking created] --> B{Split payment mode?}
B -->|OFF| C[Single payer]
B -->|OPTIONAL| D[Customer chooses]
B -->|MANDATORY| E[All participants pay share]
D --> F[Payment links sent]
E --> F
F --> G{All paid within 24h?}
G -->|Yes| H[Booking confirmed]
G -->|No| I[Booking expired]
| Setting | Level | Value |
|---|---|---|
| SplitPaymentEnabled | Per sports field type (SportsFieldType_Enum) |
OFF / OPTIONAL / MANDATORY |
| SplitPaymentEnabled | Global (SystemParameter) |
NO (default) |
| SplitPaymentExpiration | Global (SystemParameter) |
24 hours |
Warning
The global SplitPaymentEnabled parameter must be set to YES before the per-field-type setting takes effect. The expiration window of 24 hours means unpaid split portions will cause the booking to lapse.