ZamuPay API Documentation
    ZamuPay API Documentation
    • Zamupay overview
    • Token Request
      POST
    • Payment Order Request
      POST
    • Reject Order By OriginatorConversationId
      POST
    • Express Deposit Request
      POST
    • Find Payment Order By OriginatorConversationId
      GET
    • Find Express Deposit By OriginatorConversationId
      GET
    • Bill Number
      POST
    • Find Bill Number By Service Id and Account Number
      GET
    • Find Transaction Routes
      GET
    • Find Charges By TransactionTypeId
      GET
    • Bill Request
      POST
    • Find Bill Request By Originator Converstion Id
      GET
    • Find Bill Services
      GET
    • Account Number Validation Request
      POST
    • Find Account Validation Status by SystemTraceAuditNumber
      GET
    • Airtime Purchase
      POST
    • Find Airtime Purchases By OriginatorConversationId
      GET
    • Health Check
      GET
    • Create Payment Link
      POST
    • Find Payment Links By Id
      GET
    • Update Payment Link
      PUT
    • KYC Validation
      POST
    • KYC Validation
      GET
    • Balance Check
      GET

      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 2025-12-09 12:39:20
      Previous
      Reject Order By OriginatorConversationId
      Next
      Find Payment Order By OriginatorConversationId
      Built with