Contents
What is this integration?
The Flutterwave integration connects Golfmanager with the Flutterwave payment gateway, one of the leading payment providers in Africa. It lets your customers pay online when they make a booking or a purchase, with different methods: card, bank transfer or USSD.
It also lets the customer save their card for future payments and process refunds directly from Golfmanager.
A payment gateway is the service that connects your business with the banks to charge securely. USSD is a widely used payment method in Africa: the customer pays via a code they dial on their phone, with no internet needed.
What problem does it solve?
It lets clubs that operate with Flutterwave charge online, with several local payment methods.
It increases security: the payment details are entered in a protected Flutterwave form and don't pass through Golfmanager's servers.
It saves the card so the customer doesn't have to enter it again.
It speeds up refunds: they're processed from Golfmanager, without going into the Flutterwave dashboard.
Which systems does it connect, and which way does the data flow?
It connects Golfmanager's checkout (payment) with the Flutterwave gateway, in real time:
The customer pays in a secure Flutterwave form (card, transfer or USSD).
Golfmanager verifies the transaction with Flutterwave to confirm the payment is real, before treating anything as paid.
If it's confirmed, the sale is marked as paid automatically.
To refund, Golfmanager sends the refund request to Flutterwave.
What information is exchanged?
Information | Direction | Purpose |
Amount, currency and customer email | Golfmanager → Flutterwave | Start the payment |
Transaction identifier | Flutterwave → Golfmanager | Verify and confirm the payment |
Refund request | Golfmanager → Flutterwave | Refund the customer |
🔒 Security: the card details are entered in the Flutterwave form and don't pass through Golfmanager. If the customer saves the card, it's stored in the Flutterwave merchant account.
Prerequisites (before turning the integration on)
Have a Flutterwave merchant account (for testing, sandbox accounts are free; you can create them with a Golfmanager email).
Have the Flutterwave module installed in your Golfmanager, along with the billing module.
The Flutterwave credentials: Merchant ID, public key, secret key and encryption key (you get them from the Flutterwave dashboard).
The currency to charge in (for example, NGN), supported by your account.
System administrator permissions to configure the integration and view the transactions.
How to install it
There are two ways to install the module:
From the App Market: go to the App Market, look for the Flutterwave module and download it. If it doesn't appear, contact the Golfmanager support team to enable it for you.
Via terminal: if you prefer a manual install, the support team can install it with a command in the terminal.
After installing it, the Flutterwave menu appears with the Configuration and the Transactions.
How to set it up (step by step)
Step 1 — Get the credentials
Sign in to your Flutterwave dashboard and locate your API keys: Merchant ID, Public Key, Secret Key and Encryption Key.
Decide the currency you'll charge in (it must be enabled on your account).
Step 2 — Enter the details in Golfmanager
Go to Flutterwave > Flutterwave Configuration (the Flutterwave Account Details section).
Enter the Merchant ID, the Public key, the Secret key and the Encryption key.
Select the Currency (for example, NGN).
Leave Production Mode off to start testing.
Save your changes. The keys are stored encrypted.
Step 3 — Test in test mode
With Production Mode off, make a test payment with a sandbox card.
Check in Flutterwave Transactions that the payment shows as successful.
Step 4 — Turn on production
When everything works, go back to the configuration and turn on Production Mode.
Save your changes. From that moment, payments are real.
⚠️ The test and production credentials are different. Make sure to use the production ones when you turn on Production Mode, and only do so once the tests have gone well.
Each configuration field explained
Below, each field in Flutterwave > Flutterwave Configuration is explained: what it is, how it affects the system, how it behaves, and an example of use. All sensitive data is stored encrypted.
Merchant ID
Field name: Merchant ID.
Description: your merchant identifier in Flutterwave.
System impact: it identifies your account to the gateway. It's required.
System behavior: if it's missing, the integration isn't considered configured and warns that "there is no Flutterwave configuration".
Example of use / what happens: you copy it from the Flutterwave dashboard and paste it here.
Public key
Field name: Public key.
Description: the key used by the Flutterwave payment form in the customer's browser.
System impact: it's the one that initializes the secure checkout where the customer pays.
System behavior: it's sent to the browser to open the payment form; it's required.
Example of use / what happens: you paste it from the dashboard; with it the Flutterwave form is shown at checkout.
Secret key
Field name: Secret key.
Description: the private key Golfmanager uses to communicate with the Flutterwave API.
System impact: it's used to verify the payment and to send the refunds. It's the most sensitive one.
System behavior: it's never sent to the browser; it travels only between Golfmanager and Flutterwave. It's required.
Example of use / what happens: you paste it from the dashboard; with it each charge is confirmed and refunds are processed.
Encryption key
Field name: Encryption key.
Description: an additional Flutterwave key that your account requires for payments.
System impact: it's part of the credentials required to operate.
System behavior: it's stored encrypted along with the rest of the credentials; it's required.
Example of use / what happens: you copy it from the Flutterwave dashboard and paste it here.
Currency
Field name: Currency.
Description: the currency the payments are charged in.
System impact: it's sent to Flutterwave on each charge; it must be enabled on your account.
System behavior: it's single for the club (there's no per-payment currency selection). If it isn't supported on your account, the payment is rejected.
Example of use / what happens: you set
NGN(Nigerian naira) and all charges are made in that currency.
Production Mode
Field name: Production Mode. It's a toggle (on/off, off by default).
Description: it decides whether payments are real or test.
System impact: on, it processes real charges; off, it only allows tests (sandbox).
System behavior: remember the test and production credentials are different; when switching mode you must use the matching ones.
Example of use / what happens: you leave it off while testing and turn it on when you're going to charge for real.
How it works day to day
The customer's online payment
The customer makes a booking or a purchase and goes to pay.
They select Flutterwave as the payment method.
The Flutterwave form opens, where they choose how to pay (card, transfer or USSD).
If they want, they tick save the card for future payments.
Once the payment is confirmed, Golfmanager verifies the transaction and the sale is marked as paid.
Saving the card for future payments
During payment, the customer can tick the save card option. The card is stored securely in the Flutterwave merchant account (not in Golfmanager) and, in future purchases, appears as a payment option without having to enter it again.
Refunds
Go to Bookings > Occupancy.
Select the booking paid with Flutterwave that you want to refund.
Run the full or partial refund: Golfmanager sends the request to Flutterwave.
ℹ️ A refund is always made against an original payment. If you try to refund without a reference payment, the system warns that "you must void the original payment".
Checking the transactions
In Flutterwave > Flutterwave Transactions you'll see all the charges and refunds sent to the gateway. Each record shows:
The customer and the amount.
The type (payment or refund) and the returned amount, if any.
Whether it was successful or failed, the operation identifier in Flutterwave and the error detail if there was one.
It's the first screen to check when a payment or a refund hasn't gone as expected. (It requires system administrator permissions.)
Limitations to keep in mind
It's for the customer's online payments (bookings, vouchers and shop), not for the physical POS.
Flutterwave operates mainly in Africa; you must have a valid merchant account with them.
The test and production credentials are different: remember to turn on Production Mode (with its keys) to charge for real.
A single currency per club: there's no per-payment currency selection.
The available methods (card, transfer, USSD) depend on your account and country in Flutterwave.
If the customer abandons the payment, the sale remains unpaid and the items stay in the cart; there's no automatic cleanup.
It depends on an external service: if Flutterwave is unavailable, payments can't be processed at that time.
Frequently asked questions
Which payment methods does Flutterwave support?
Card, bank transfer and USSD (a code the customer dials on their phone). The specific methods available depend on your account and country in Flutterwave.
Where are the card details entered?
In the secure Flutterwave form, not in Golfmanager. The card details don't pass through Golfmanager's servers.
How do I install the module?
From the App Market (look for "Flutterwave" and download it; if it doesn't appear, ask support) or, alternatively, via terminal with support's help. Afterwards the Flutterwave menu appears with the configuration and the transactions.
Where do I get the Merchant ID and the keys?
From the Flutterwave dashboard. There you'll find the Merchant ID, the public key, the secret key and the encryption key. If you don't have a production account, you can create a test (sandbox) one for free.
What is "Production Mode" for?
On, it processes real charges; off, it only allows tests (sandbox). Start off, test, and turn it on when everything works (with the production keys).
I get "There is no Flutterwave configuration". What should I check?
The Merchant ID or one of the keys is missing. Go to Flutterwave > Flutterwave Configuration and check that all the details are filled in.
I get "Error loading Flutterwave configuration" or "Inactive gateway". What do I do?
The configuration couldn't be read or is incomplete. Check that the credentials are correct and saved; if it persists, contact support.
The customer doesn't see Flutterwave at checkout. Why?
Because the module isn't installed or the method isn't available in that context. Install it from the App Market and check the configuration.
The payment was declined. What do I do?
The payment was declined by the bank or by Flutterwave. Review the detail in Transactions; the customer can try another method or card.
How does Golfmanager verify the payment is real?
After the customer pays, Golfmanager queries Flutterwave for the transaction status with the secret key. Only if Flutterwave confirms it was successful is the sale marked as paid. This avoids treating something as paid that wasn't charged.
How do I make a refund?
In Bookings > Occupancy, select the booking paid with Flutterwave and run the full or partial refund. Golfmanager sends the request to Flutterwave.
Can I make partial refunds?
Yes. You can refund the full amount or a part. The refund is always made against the original payment.
I get "You must void the original payment" when trying to refund. What's going on?
A refund needs a reference payment. Make sure you refund against the original payment operation; you can't refund without it.
What happens if the customer closes the form without paying?
The sale remains unpaid and the items stay in the cart. The operation is recorded as not completed. The customer can try again by going into the payment once more.
Does the saved-card feature work?
Yes. If the customer ticks save card, it's stored in the Flutterwave merchant account and appears as an option in future purchases, without re-entering it.
Which currency can I use?
The one you have enabled on your Flutterwave account (for example, NGN). It's a single currency for the whole club; if you configure an unsupported one, payments are rejected.
Does it work for the front-desk physical POS?
No. This integration is for the customer's online payments (bookings, vouchers and shop), not for the POS card reader.
What can Flutterwave payments be used for?
For whatever the customer pays online from the portal: bookings, vouchers and shop purchases (including balance top-ups).
Where do I see the status of a payment or a refund?
In Flutterwave > Flutterwave Transactions: there you'll find the customer, the amount, whether it was successful or failed, the identifier in Flutterwave and the error detail if there was one.
Are the keys secure?
Yes. All the credentials (Merchant ID, public, secret and encryption keys) are stored encrypted. Even so, don't share them and treat them like passwords.
Do I need to reauthorize or renew anything periodically?
No. It doesn't use tokens that expire. As long as the credentials are valid, the integration works.
It charges for real in a test (or doesn't charge in real). What should I check?
Production Mode is set wrong, or you've mixed test and production keys. Adjust the mode and verify the keys match the active mode.
What permissions do I need to configure the integration?
System administrator permissions, which give access to the Flutterwave configuration and the transactions.
What should I do before charging for real?
Make a test charge and a test refund in sandbox mode, validate them in Transactions, and only then turn on Production Mode with the real keys.
Recommended best practices
Test first in test mode with the sandbox cards before turning on production.
Keep the production credentials safe and don't share them; they're stored encrypted in Golfmanager.
Configure the correct currency according to your Flutterwave account.
On a failed payment, check Transactions first: the error detail usually shows the cause.
Make a test charge and refund at go-live, to validate the whole cycle.
