Skip to main content
POST
/
api
/
v1
/
merchants
/
{merchantID}
/
operations
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"
  }'
{
  "operationID": "op_8b7c9d3e-4f5a-6b7c-8d9e-0f1a2b3c4d5e"
}

Endpoint

POST /api/v1/merchants/{merchantID}/operations

Authentication

Authorization
string
required
Bearer token with your API key. Must have Perform Operations permission.
Content-Type
string
required
Must be application/json

Path Parameters

merchantID
string
required
The unique identifier of the merchant. Must match the merchant ID associated with the API key.

Request Body

Cash-Out Operation

operationType
string
required
Must be "cash-out"
amount
string
required
Amount to withdraw (e.g., “20000.00”)
distributorToShortCode
string
required
Distributor short code to withdraw to
memo
string
Optional reference note or description for the operation

Pay Merchant Operation

operationType
string
required
Must be "pay-merchant"
amount
string
required
Amount to pay (e.g., “15000.00”)
merchantToShortCode
string
required
Destination merchant’s short code
memo
string
Optional reference note or description for the operation

Pay Individual Operation

operationType
string
required
Must be "pay-individual"
amount
string
required
Amount to pay (e.g., “3000.00”)
phoneTo
string
required
Recipient’s phone number in international format (e.g., “+234 8123456781”)
memo
string
Optional reference note or description for the operation

Response

operationID
string
Unique identifier for the created operation
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"
  }'
{
  "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:
  1. Operation is saved with status pending
  2. A checker with appropriate permissions must approve it via the web interface
  3. Once approved, the operation is executed on the blockchain
  4. The operation status changes to completed or failed

Get Balance

Check merchant balance before creating operations

Get Operations

Query operation history and status