Skip to main content

Overview

Split Settlement lets you automatically route a portion of every payment directly to a beneficiary’s bank account at settlement time — no manual transfers or reconciliation needed. A typical use case is a marketplace or platform that needs to pay a vendor, partner, or sub-merchant their share of every transaction. How the split is calculated:
The split_value defines how much of the transaction amount you (the Payaza account owner) keep. The remainder is sent to the split account beneficiary.
For example, with split_type: "PERCENTAGE" and split_value: 20 on a ₦10,000 transaction — you keep ₦2,000 (20%) and the split account beneficiary receives ₦8,000 (80%). Here is how it fits into a payment flow:
  1. You create one or more split accounts via the API — each one defines a beneficiary bank account, a split type, and the portion you retain.
  2. Each split account gets a unique code (e.g. SSA_C0900E891783950401871).
  3. When you initiate a checkout, you pass those codes in the split_accounts array.
  4. Payaza automatically retains your defined portion and routes the remainder to the beneficiary at settlement time.

Key Requirements

Retrieve your API keys from your dashboard by following the steps on our Authentication page. Use your public API key for all split settlement requests.
Set the following headers on every request:
Set X-TenantID to test while developing and live when processing real payments.

Split types

When creating a split account, you choose how the retained amount is calculated. In both cases, split_value defines what you (the Payaza account owner) keep — the beneficiary receives whatever is left over.
This is the opposite of what you might expect. The split_value is your cut, not the beneficiary’s. The beneficiary always receives the remainder after your portion is deducted.
For PERCENTAGE splits, split_value must be between 0 and 100. Passing a value outside this range will return an error.

How split settlement works end to end

    1. Create a split account for each beneficiary using the Create Split Account endpoint. Each account is tied to a bank account number, bank code, split type, and the portion you retain.
    1. Copy the code from the Create Split Account response (e.g. SSA_C0900E891783950401871). This is the only value you need to reference the split account later.
    1. Initiate a checkout and include the split_accounts array with the relevant code(s).
    1. When a customer completes the payment, Payaza automatically retains your defined portion and routes the remainder to the beneficiary. No further action is needed from your server.
  • You run a marketplace. For every ₦10,000 sale, you want to keep your 20% platform fee and send the rest to the vendor.Create one split account for the vendor with split_type: "PERCENTAGE" and split_value: 20.
    • You (Payaza account owner) keep: ₦2,000 (20%)
    • Vendor (split account beneficiary) receives: The remainder of the transaction
    At checkout, pass that split account’s code in the split_accounts array. Payaza handles the rest automatically.
    You charge a flat ₦1,500 platform fee on every order and want the rest to go to the service provider, regardless of order size.Create one split account for the service provider with split_type: "FLAT" and split_value: 1500.
    • You (Payaza account owner) keep: ₦1,500
    • Service provider (split account beneficiary) receives: the remainder of every transaction
    On a ₦10,000 order, the provider receives ₦8,500. On a ₦5,000 order, the provider receives ₦3,500.

    Step 1 — Create a Split Account

    This creates a new split account for a beneficiary. A unique code is returned on success which can be passed in the checkout SDK.
    Request body parameters Sample response — success
    Save data.code immediately after creating a split account. This is the value you will pass to the Checkout SDK — without it you cannot use this split account in a transaction. It can be retrieved by using the Fetch Split Accounts API.
    Sample response — failed (invalid percentage)
    Sample response — failed (duplicate)
    API reference: Create Split Account

    Step 2 — Use the split account code in Checkout

    Once you have a split account code, pass it in the split_accounts array when initiating a Checkout transaction. Payaza will automatically route settlement to the beneficiary accounts you specify. You can include multiple split accounts in a single checkout to distribute funds across several beneficiaries at once.
    Single split account
    Multiple split accounts
    Every code in the split_accounts array must reference an existing, active split account.
    split_accounts parameters

    Step 3 — Fetch all Split Accounts

    Retrieve a paginated list of all split accounts belonging to your merchant account. Useful for displaying a list of configured beneficiaries in your dashboard or verifying that a split account exists before including it in a checkout.
    Query parameters Sample response
    API reference: Fetch Split Accounts

    Step 4 — Update a Split Account

    Update the details of an existing split account using its id. All body parameters are optional — include only the fields you want to change. Fields not included in the request retain their existing values.
    Path parameter BODY Parameters (all optional) Sample response — success
    Setting active: false deactivates the split account without deleting it. A deactivated split account cannot be used in a checkout until it is reactivated by setting active: true again.
    API reference: Update Split Account

    Step 5 — Delete a Split Account (optional)

    Permanently deletes a split account by its id. This cannot be undone. If you want to temporarily stop using a split account without deleting it, use the Update endpoint to set active: false instead.
    Path parameter Sample response — success
    Sample response — failed (invalid key)
    Sample response — failed (not found)
    Sample response — failed (already deleted or deactivated)
    API reference: Delete Split Account

    Error handling

    Developer notes

    • split_value is your cut, not the beneficiary’s. The split_value defines how much the Payaza account owner retains. The split account beneficiary always receives the remainder. This is the single most important thing to get right when configuring splits.
    • For PERCENTAGE splits, a split_value of 20 means you keep 20% — the beneficiary receives 80%. If you want the beneficiary to receive only 10%, set split_value: 90.
    • For FLAT splits, a split_value of 2000 means you keep ₦2,000 from every transaction — the beneficiary receives the transaction amount minus ₦2,000. Ensure your split_value never exceeds the minimum transaction amount or the split will fail.
    • Always save data.code immediately after creating a split account — this is the only identifier used in Checkout requests, and it can be retrieved later using the Fetch Split Accounts API.
    • The id (integer) and code (string prefixed SSA_) are two different identifiers. Use code in Checkout requests; use id in Update and Delete requests.
    • You can include multiple split accounts in a single checkout by adding multiple objects to the split_accounts array. Each must have a valid, active code.
    • Prefer active: false via the Update endpoint over Delete if you think you may need the split account again. Deletion is permanent.
    • Split accounts can be created in advance and reused across many transactions — you do not need to create a new split account per transaction. Create once, reference many times.
    • If you add multiple PERCENTAGE split accounts to a single checkout, each one defines a separate retained amount — the percentages do not combine. Validate your split logic carefully in the test environment before going live.