Endpoint
POST /api/v1/merchants/{merchantID}/operations
Authentication
Bearer token with your API key. Must have Perform Operations permission.
Path Parameters
The unique identifier of the merchant. Must match the merchant ID associated with the API key.
Request Body
Cash-Out Operation
Amount to withdraw (e.g., “20000.00”)
Distributor short code to withdraw to
Optional reference note or description for the operation
Pay Merchant Operation
Amount to pay (e.g., “15000.00”)
Destination merchant’s short code
Optional reference note or description for the operation
Pay Individual Operation
Amount to pay (e.g., “3000.00”)
Recipient’s phone number in international format (e.g., “+234 8123456781”)
Optional reference note or description for the operation
Response
Unique identifier for the created operation
Cash-Out cURL
Pay Merchant cURL
Pay Individual cURL
Pay Merchant Node.js
Pay Individual Python
curl -X POST "https://api.yourdomain.com/api/v1/merchants/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d/operations" \
-H "Authorization: Bearer uwk_YOUR_API_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"operationType": "cash-out",
"amount": "20000.00",
"distributorToShortCode": "100000",
"memo": "Cash withdrawal"
}'
200 Success
400 Bad Request - Invalid Amount
403 Forbidden - Insufficient Permission
403 Forbidden - Insufficient Balance
{
"operationID" : "op_8b7c9d3e-4f5a-6b7c-8d9e-0f1a2b3c4d5e"
}
Maker-Checker Workflow
Operations created via API follow the maker-checker approval pattern. The operation is created in a pending state and requires approval by a checker before execution.
After creating an operation:
Operation is saved with status pending
A checker with appropriate permissions must approve it via the web interface
Once approved, the operation is executed on the blockchain
The operation status changes to completed or failed
Get Balance Check merchant balance before creating operations
Get Operations Query operation history and status