1. Collection Request
ZamuPay API Documentation
  • Introduction
  • Definitions
    • Data Types
  • Authorization
    • Overview
    • Token Request
      POST
    • Find Transaction Routes
      GET
    • Health Check
      GET
  • Checkout Request
    • Overview
    • Checkout Order Request
      POST
    • Query Checkout Request
      GET
    • Checkout Callback Request
      POST
  • Payment Request
    • Payment Order Request
      POST
    • Reject Order By OriginatorConversationId
      POST
    • Find Payment Order By OriginatorConversationId
      GET
  • Collection Request
    • Find Express Deposit By OriginatorConversationId
      GET
    • Express Deposit Request
      POST
  • Bill Payments
    • Bill Number
      POST
    • Find Bill Number By Service Id and Account Number
      GET
    • Bill Request
      POST
    • Find Bill Request By Originator Converstion Id
      GET
    • Find Bill Services
      GET
  • KYC
    • Account Number Validation Request
      POST
    • KYC Validation
      POST
    • KYC Validation
      GET
    • Find Account Validation Status by SystemTraceAuditNumber
      GET
  • Payment Links
    • Find Payment Links By Id
    • Create Payment Link
    • Update Payment Link
  • Customer Accounts
    • Balance Check
    • Find Charges By TransactionTypeId
  • Airtime Purchase
    • Airtime Purchase
    • Find Airtime Purchases By OriginatorConversationId
  1. Collection Request

Express Deposit Request

https://auth.zamupay.com
https://auth.zamupay.com
https://auth.zamupay.com
https://auth.zamupay.com
POST
/v1/express-deposit
===========================================================================
DISCLAIMER: Kindly note that this service will send two callbacks. ONLY rely on the second callback for the final status of the transaction. DO NOT rely on the first one. Refer to C2B IPN for the structure of the second callback
============================================================================
Note: A valid token is required for authentication as it expires after every hour. Refer to Token Request to generate a new token.
This is a POST request that is responsible for initiating an Express Deposit request.
The required Json body contains :

ShortCode: This is the credit party in the transaction
Amount: This is the amount to be debited
PhoneNumber: This is the debit party in the transaction
AccountNo: This is a nullable field only to be provided if it's a paybill express deposit
TransactionDesc: This is a brief description of the transaction
OriginatorConversationId: This is a unique identifier for the transaction from the client
CallBackUrl: This is your callback url
Type : This is a description of the C2B type
SuccessRedirectUrl : This is the success callback url
FailedRedirectUrl : This is the failed callback url
ServiceCode : This is the code describing the service
Currency : This is the currency of the country
FirstName: This is the first name of the debit party
LastName: This is the last name of the debit party

Data definition#

Field NameData TypeMax Length
ShortCode
string
7
Amount
decimal
8
PhoneNumber
string
13
TransactionDesc
string
100
OriginatorConversationId
string
100
CallBackUrl
string
256
Type
string
3
SuccessRedirectUrl
string
256
FailedRedirectUrl
string
256
ServiceCode
string
6
Currency
string
6
FirstName
string
128
LastName
string
128
NOTE: The type, SuccessRedirectUrl, FailedRedirectUrl and ServiceCode fields are mandatory for transactions made to Zambia.

Sample success response:#

{
    "message": {
        "appDomainName": "LIVE",
        "remarks": "Express Deposit submission accepted",
        "originatorConversationId": "r279b231rf89238723489733ygge998121",
        "systemConversationId": "16780000-a97d-3024-2e57-08d937173800",
        "timestamp": "2021-06-24T13:51:51.3331004Z"
    }
}

Sample failed response:#

{
  "appDomainName": "LIVE",
  "timestamp": "2022-02-11T10:13:11.2483928Z",
  "systemConversationId": "16780000-a97d-3024-98a9-08d9ed471bab",
  "originatorConversationId": "W93323321ei4455t40093334xxiuigggtey",
  "errors": [
    {
      "field": "OriginatorConversationId",
      "message": "duplicate originator conversation id 'W93323321ei4455t40093334xxiuigggtey'"
    }
  ]
}

Sample validation errors response:#

{
  "appDomainName": "LIVE",
  "status": "BadRequest",
  "timestamp": "2022-02-11T10:13:11.2483928Z",
  "systemConversationId": "16780000-a97d-3024-98a9-08d9ed471bab",
  "originatorConversationId": "W93323321ei4455t40093334xxiuigggtey",
  "errors": [
      {
        "field": "ShortCode",
        "message": "The Shortcode field is required."
      }
  ],
}

Sample failed callback response:#

{
    "Body": {
      "StkCallback": {
        "MerchantRequestID": "14237-1707571-2",
        "CheckoutRequestID": "ws_CO_210520211255325781",
        "ResultCode": "1032",
        "ResultDesc": "Request cancelled by user",
        "OriginatorConversationId": "F1002939292022",
        "SystemConversationId": "7f520000-0e89-0ee0-ea10-08d91c3e9181",
        "CallbackMetadata": null
      }
}

Sample success callback response:#

{
    "Body": {
        "StkCallback": {
            "MerchantRequestID": "59675-2838158-2",
            "CheckoutRequestID": "ws_CO_110520211915044651",
            "OriginatorConversationId": "2134568790",
            "SystemConversationId": "456575345435",
            "ResultCode": 0,
            "ResultDesc": "The service request is processed successfully.",
            "CallbackMetadata": {
                "Item": [
                    {
                        "Name": "Amount",
                        "Value": 1
                    },
                    {
                        "Name": "MpesaReceiptNumber",
                        "Value": "PEB0U5YIQ2"
                    },
                    {
                        "Name": "Balance"
                    },
                    {
                        "Name": "TransactionDate",
                        "Value": 20210511191517
                    },
                    {
                        "Name": "PhoneNumber",
                        "Value": 254799182092
                    }
                ]
            }
        }
    }
}

Request

Authorization
Bearer Token
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
or
Body Params application/json

Examples

Responses

🟢200Success
application/json
Body

Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://auth.zamupay.com/v1/express-deposit' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "ShortCode": "string",
    "Amount": "string",
    "PhoneNumber": "string",
    "TransactionDesc": "string",
    "OriginatorConversationId": "string",
    "CallBackUrl": "http://example.com",
    "type": 0,
    "successRedirectUrl": "http://example.com",
    "failedRedirectUrl": "http://example.com",
    "serviceCode": "string",
    "currency": "string",
    "firstName": "string",
    "lastName": "string"
}'
Response Response Example
{}
Modified at 2026-01-29 06:16:19
Previous
Find Express Deposit By OriginatorConversationId
Next
Bill Number
Built with