ZedPay
AuthenticationDeposits API
Disbursements API
AuthenticationDeposits API
Disbursements API
  1. Deposits API
  • Making a deposit
  • Make Deposit
    POST
  • Fetch transactions
    POST
  1. Deposits API

Making a deposit

This endpoint creates a payment intent for a deposit.
Use it when you want ZedPay to prepare a deposit request and return a payment reference you can track.

Endpoint#

Method: POST
URL: /payment/v1/make-deposit

Authentication And Security#

Your request must include these headers:
HeaderRequiredDescription
AuthorizationYesBearer token used to authenticate your client. Format: Bearer <token>
timestampYesTimestamp is required
Content-TypeYesUse application/json
If the token is missing or invalid, the API returns 401.

Request Body#

FieldTypeRequiredWhat it meansExample
walletAccountNonumberRequiredYour ZedPay wallet account number. Your wallet account numbers are visible on your management portal. Must be a whole number.200001
referenceNostringRequiredYour reference number. A unique identifier for this transaction, generated by your system.b1d05644-c52c-409b-af09-50f5eb54bcb0
transactionCategorystringRequiredTransaction category for this payment. Get the list of transaction categories from the masterdata endpoint."CUSTOMER_PAYMENT"
amountnumberRequiredAmount to collect. Send it as a number, not a string.50000
paidBystringOptionalName of the person making the payment. If not specified, we shall substitute with customerName"Devine Balizza"
remarksstringRequiredShort description of the deposit or reason for payment."Monday deposit"
telephoneNumberstringRequiredThe (Ugandan) telephone number from which the money will be deducted from."256752002106"
telephoneNetworkstringRequiredThe mobile money network, such as AIRTEL or MTN."AIRTEL"
customerNamestringRequiredThe customer's name."Devine Balizza"
requestMethodstringRequiredUse this to show where the payment request came from."MOBILE"

Example Request Body#

This is a valid and easy-to-follow example:
{
    "walletAccountNo": 200001,
    "referenceNo": "b1d05644-c52c-409b-af09-50f5eb54bcb0",
    "transactionCategory": "CUSTOMER_PAYMENT",
    "amount": 50000,
    "paidBy": "Devine Balizza",
    "remarks": "Monday deposit",
    "telephoneNumber": "256752002106",
    "telephoneNetwork": "AIRTEL",
    "customerName": "Devine Balizza",
    "requestMethod": "MOBILE"
}

Example cURL Request#

Replace the token, timestamp, and sample values with your real integration values:

Success Response#

If the payment intent is created successfully, the API returns a response like this:
This is a simplified example. The actual data object may include additional stored fields.
{
    "status": "success",
    "message": "Payment intent created successfully",
    "error": null,
    "data": {
        "id": "b7d9a2f7-3d5a-4db2-8c44-53b6a64ce001",
        "uiReferenceNo": "TXN-AB12CD34",
        "walletAccountNo": 200001,
        "transactionCategory": "CUSTOMER_PAYMENT",
        "requestMethod": "MOBILE",
        "currency": "UGX",
        "amount": 50000,
        "paymentMethod": "MOBILEMONEY",
        "telephoneNumber": "256752002106",
        "telephoneNetwork": "AIRTEL",
        "paidBy": "Devine Balizza",
        "customerName": "Devine Balizza",
        "remarks": "Monday deposit",
        "transactionStatus": "PENDING"
    }
}

Important Notes#

A successful call creates a payment intent. It does not mean the customer has already paid.
The API generates uiReferenceNo for you. You do not send it in the request.
The initial transactionStatus is typically PENDING.
Send numeric fields like walletAccountNo and amount as numbers, not quoted strings.

Quick field guide#

Use this checklist when preparing your request:
Always send: walletAccountNo, referenceNo,transactionCategory, amount, paidBy, remarks, telephoneNumber, telephoneNetwork, customerName, requestMethod
Next
Make Deposit
Built with