LogoLogo
  • Welcome!
  • Integrating Klasha
    • Getting Started
    • Prerequisites
    • Integration Checklist
    • Wrap Up
  • Overview
    • Introduction
    • Parameters
    • Token Generation
    • Errors
    • Countries & Payment Methods
  • Accepting Payments
    • Test Payments
    • Payments API
      • Mobile money
      • USSD
    • Payment Link
      • Dashboard
      • Payment Link API
    • Klasha Inline
    • HTML Checkout
  • PLUGINS AND SDKS
    • Plugins
    • Mobile SDKs
    • Web SDKs
  • MISC
    • Transaction Status
    • Webhook
    • API Status
  • Features
    • One-time Payments
    • Recurrent Payment
  • Transfers
    • Payout
      • ZAR Payout(new encryption)
      • KES Payout(new encryption)
      • ZMW Payout(new encryption)
      • TZS Payout(new encryption)
      • CNY Payout(new encryption)
    • Klasha Wire API
    • Swap API
    • Currency Coverage
  • Bank Account Collection
    • Virtual Account Creation
    • VA balance and statement
    • Business Identification Service
Powered by GitBook
On this page
  • Summary
  • Integration steps
  • Encryption algorithm here
  • Get Bank Lists
  • Make a GET call to the Bank List API
  • Merchant Payout request
  • Make a POST call to the Merchant payout request API
  • Query payout status
  1. Transfers
  2. Payout

ZMW Payout(new encryption)

PreviousKES Payout(new encryption)NextTZS Payout(new encryption)

Last updated 2 months ago

Summary

These APIs are used to initiate a ZMW payout

Before you begin!

  • Find your keys on the Klasha Dashboard → Settings → Generate API Keys ()

Integration steps

Get Bank Lists

Make a GET call to the Bank List API

GET {{env_url}}/wallet/merchant/bank/transfer/request/banks/ZMW

Headers

Key
Value

Content-Type

application/json

Authorization

Bearer <token here>

{
    "message": "success",
    "error": null,
    "data": [
        {
            "code": "002",
            "name": "Absa Bank"
        },
        {
            "code": "003",
            "name": "Access Bank"
        },
        {
            "code": "005",
            "name": "Atlas Mara"
        },
        {
            "code": "006",
            "name": "Bank of China"
        },
        {
            "code": "007",
            "name": "Citibank"
        },
        {
            "code": "008",
            "name": "Ecobank"
        },
        {
            "code": "010",
            "name": "Indo Zambia Bank"
        },
        {
            "code": "011",
            "name": "Investrust Bank"
        },
        {
            "code": "012",
            "name": "First Alliance Bank"
        },
        {
            "code": "013",
            "name": "First Capital"
        },
        {
            "code": "014",
            "name": "FNB"
        },
        {
            "code": "016",
            "name": "Stanbic Bank"
        },
        {
            "code": "017",
            "name": "Standard Chartered Bank"
        },
        {
            "code": "022",
            "name": "United Bank for Africa"
        },
        {
            "code": "023",
            "name": "Zanaco"
        },
        {
            "code": "025",
            "name": "ZICB"
        }
    ]
}

Merchant Payout request

Make a POST call to the Merchant payout request API

POST {{env_url}}/wallet/merchant/{businessId}/bank/transfer/v2/request

You would need to pass, as a header the x-auth-token. This can be obtained from your merchant dashboard → Settings → Generate API keys → Merchant public key.

Headers

Key
Value

Content-Type

application/json

x-auth-token

Your merchant public key

Authorization

Bearer <token here>

Request body (encrypted):

{ 
  "message": "encrypted-request-body"
}

Request body (plain)

Request Body (json)

Name
Type
Description

country*

ZM

bankCode*

007

amount*

10

accountName*

John Doe

requestId*

String

kbtr-3857-011-133-166993253

description*

String

Hair design

currency*

String

ZMW

bankName*

String

Citibank

accountNumber*

String

0719593074

{
    "message": "success",
    "error": null,
    "data": {
        "id": 589,
        "amount": 10.00,
        "payoutStatus": "PENDING",
        "requestId": "kbtr-3857-011-133-166993253",
        "narration": "Hair dressing",
        "country": "ZM",
        "fee": 26.00,
        "bankCode": "007",
        "bankName": "Citibank",
        "accountNumber": "0719593074",
        "accountName": "John Doe"
    }
}
{
    "message": "A human readable error message",
    "error": "Bad Request",
    "data": null
}

Query payout status

Make a to fetch status of initiated payouts.

here
Token Generation
call
Encryption algorithm here