Skip to main content

Direct Collection API

Initiates a direct collection transaction to request funds from a specified account.

  • URL: /v1/payment/direct-collection
  • Method: POST
  • Auth Required: Yes
  • Request Body:
    {
    "reference_id": "abc12345678494850545900",
    "amount": 650,
    "trans_type": "PULL",
    "currency": "UGX",
    "product_id": 10012,
    "phone": "256711111111",
    "account_number": "256711111111"
    }
  • Success Response:
    {
    "status": 202,
    "message": "Collection request sent to payment provider",
    "data": {
    "trans_id": "887becb4-a414-4d57-89a4-82e099adb037",
    "status": "PENDING"
    }
    }
  • Error Response:
    {
    "status": 400,
    "message": "Invalid request",
    "data": {
    "error": "Invalid account number or insufficient funds"
    }
    }

Request Fields

  • reference_id: Your unique reference for the transaction
  • amount: Amount to collect
  • trans_type: Should be "PULL" for collections
  • currency: Currency code (e.g., "UGX")
  • product_id: Product identifier for the collection
  • phone: Phone number of the account to collect from
  • account_number: Account number to collect from (same as phone for mobile money)

Response Fields

  • trans_id: Unique transaction identifier
  • status: Transaction status (e.g., "PENDING")

Transaction Status

Possible transaction status values:

  • PENDING: Transaction is being processed
  • SUCCESS: Transaction completed successfully
  • FAILED: Transaction failed to complete