Enable / Disable Menu
The Enable/Disable Menu API allows you to remotely control whether the payment menu is available on a terminal.
Once disabled, users cannot initiate transactions from the terminal until the menu is enabled again.
Enable Menu
Enables the payment menu on the specified terminal.
baseUrl/api/v1/terminals/enable-menu/{terminalId}/enableHeaders
Authorization: Bearer {{accessToken}}
- Parameters
- Response
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
terminalId | string | Yes | Unique identifier of the terminal whose menu will be enabled. |
Example Request
PUT /api/v1/terminals/enable-menu/1560127620231203/enable
Authorization: Bearer {{accessToken}}
Example Response
{
"StatusCode": "00",
"ecrRef": ""
}
Disable Menu
Disables the payment menu on the specified terminal.
baseUrl/api/v1/terminals/enable-menu/{terminalId}/disableHeaders
Authorization: Bearer {{accessToken}}
- Parameters
- Response
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
terminalId | string | Yes | Unique identifier of the terminal whose menu will be disabled. |
Example Request
PUT /api/v1/terminals/enable-menu/1560127620231203/disable
Authorization: Bearer {{accessToken}}
Example Response
{
"StatusCode": "00",
"ecrRef": ""
}
Response Codes
| StatusCode | Description |
|---|---|
00 | Request completed successfully. The terminal menu has been updated. |
Use Cases
The Enable/Disable Menu API is designed to control whether cashiers can initiate manual purchase transactions directly from the Mada application on the payment terminal.
Enable Manual Purchase
Allow cashiers to initiate purchase transactions by manually entering the transaction amount through the Mada application.
This is useful when merchants want to permit standalone terminal transactions without requiring an external ECR system.
Disable Manual Purchase
Prevent cashiers from initiating manual purchase transactions from the Mada application.
When disabled, purchases can only be initiated through integrated systems, such as an ECR or POS application, helping enforce an integration-only workflow.
ECR/POS Integrated Deployments
For merchants using an integrated ECR or POS solution, disable manual purchases to ensure all transactions originate from the external system. This helps prevent duplicate transactions, maintains transaction consistency, and ensures every payment is associated with a corresponding sales order.
Reduce Operational Errors
Restrict manual transaction entry to minimize the risk of incorrect purchase amounts, accidental transactions, or cashier input errors.
Merchant-Specific Configuration
Enable or disable manual purchase functionality based on merchant requirements or operational policies. This allows different merchants or terminals to have different transaction capabilities without requiring application updates.
Temporary Operational Control
Temporarily disable manual purchases during maintenance, investigations, or operational changes, and re-enable them once normal operations resume.
Usage Tips
- Ensure the target terminal is registered and online before sending the request.
- Only authorized users should invoke this API.
- The operation takes effect immediately once the request is successfully processed.
- Calling Enable on an already enabled terminal or Disable on an already disabled terminal does not affect terminal stability.
- Record configuration changes for audit and troubleshooting purposes.
Error Handling
If the request cannot be completed, the API returns an appropriate HTTP status code and an error message.
| Scenario | API Response | HTTP Status |
|---|---|---|
| Invalid or expired access token | Authentication failed. Invalid or expired token. | 401 Unauthorized |
| Terminal not found | Terminal not found. | 404 Not Found |
| Terminal is offline | Unable to communicate with terminal. | 409 Conflict |
| Insufficient permissions | Access denied. You are not authorized to update this terminal. | 403 Forbidden |
| Internal server error | An unexpected error occurred while updating the terminal configuration. | 500 Internal Server Error |
Example Error Response
{
"StatusCode": "500",
"message": "An unexpected error occurred while updating the terminal configuration."
}