Airline

Handling third-party vendor settlement as an airline business

This guide covers the following:

  • An overview of airline vendor settlements.
  • An introduction to split payments.
  • Step-by-step instructions to implement split payments in an airline business.

Overview of Airline Vendor Settlement

Beyond booking flights and making reservations, a common practice among airlines is to offer customers opportunities to purchase value-added products or services, both onboard and offboard. While most airlines own and manage these value-added services, they sometimes partner with third-party vendors to sell on their behalf.

Typically, the agreement with the vendor includes a base price, to which the airline adds its own markup based on factors such as the sales channel, location (onboard or offboard), and customer class (regular or premium). Vendor payments are made according to agreed terms, often periodically (monthly or quarterly) or when current stock is depleted.

Although this arrangement generally benefits both parties, it presents some challenges:

  • Payment terms may disrupt vendors' financial plans and projections.
  • Settlement periods (e.g., monthly, quarterly, or post-stock depletion) can create cash flow challenges for vendors, potentially delaying restocking as vendors may need to source materials before fulfilling new orders.
  • Financial and administrative tasks, such as reconciliation and transaction matching, increase overhead and the risk of human error.

What is Split Payment?

Split payment is a feature on Flutterwave that allows businesses to divide payments from a single transaction among multiple recipients instantly and automatically. It is particularly useful for airline businesses that work with multiple vendors, partners, or contractors, as it simplifies revenue sharing and reduces manual calculation. The key aspects of split payments include:

  • Flexible Split Configuration: Businesses can set the split based on percentage or fixed amounts among the recipients.
  • Real-Time Settlements: Flutterwave processes the split in real-time, ensuring each party receives their shares as soon as the payment is made.
  • Automated Distribution: No need for manual intervention, and efficiency is improved because split payments occur automatically per transaction based on the set configurations.

How to Use the Split Payment Feature

Before we dive into using the split payment feature, let’s consider a scenario:

Imagine you're a developer at RagnaRok Airline, one of Nigeria’s leading airlines, and you've been tasked with adding a luxury magazine to the product catalog for passengers. The magazine is supplied by Aduke Enterprise Limited, with the following payment terms:

  • Magazine price: NGN 5,600
  • Airline commission per transaction: NGN 1,500
  • Settlement account for Aduke Enterprise Limited: Access Bank - 0123267834

To add split payment support for the luxury magazine, you’ll do the following:

  1. Get the Bank Code: Bank codes are unique identifiers that every bank has, and you need them to process a settlement.
// Install with: npm i flutterwave-node-v3

const Flutterwave = require('flutterwave-node-v3');
const flw = new Flutterwave(
	process.env.FLW_PUBLIC_KEY,
	process.env.FLW_SECRET_KEY
);
const bankName = 'Access Bank';
const bankCountry = { country: 'NG' };

// get list of banks
const response = await flw.Bank.country(bankCountry);

//filter the list to match the vendor bank (Access bank)
const vendorBank = response.data.find((bank) => bank.name === bankName);
  1. Create a Subaccount for the Vendor: Subaccounts are secondary accounts linked to a primary account that Flutterwave uses to process the split payments. To create a subaccount for the vendor, specify the payment details and split configuration as shown below:
const details = {
	account_bank: vendorBank.code,
	account_number: '0123267834',
	business_name: 'Aduke Enterprise Limited',
	business_mobile: '09087930450',
	country: 'NG',
	split_type: 'flat',
	split_value: 1500,
};

flw.Subaccount.create(details).then(console.log).catch(console.log);

Based on the configuration specified above, the airline will get a commission of NGN 1,500 on each transaction.

You’ll get a response similar to this:

{
	"status": "success",
	"message": "Subaccount created",
	"data": {
		"id": 9530,
		"account_number": "0123267834",
		"account_bank": "044",
		"full_name": "Aduke Enterprise Limited",
		"created_at": "2021-04-21T10:43:24.000Z",
		"meta": [],
		"split_type": "flat",
		"split_value": 1500,
		"subaccount_id": "RS_FB312AA6C2C84A13421F3079E714F2CB",
		"bank_name": "ACCESS BANK NIGERIA"
	}
}

The important value here is the data.subaccount_id. You’ll use it to split payments into the subaccount.

  1. Use the Subaccount to Charge Customers: With the subaccount created, use it to process split payments using any of our integration options. For example, use it in Flutterwave inline as shown below:
<script>
  function makePayment() {
    FlutterwaveCheckout({
      // ...
      amount: 7,100,
      currency: "NGN",
      subaccounts: [
        {
          id: "RS_A8EB7D4D9C66C0B1C75014EE67D4D663",
        }
      ],
    });
  }
</script>

Note that the total amount specified above is NGN 7,100, which is the addition of the magazine price (NGN 5,600) and the airline charge (NGN 1,500).

With this, anytime customers make a purchase, Flutterwave will automatically split the payment between the airline and the vendor.

Next Step

To learn more about split payments and other edge cases you can handle with it, check out the API reference and the documentation.