Skip to main content

Cashier Management API

The Cashier Management APIs enable merchants and ECR partners to manage cashiers directly via API, without requiring access to the NeoPaaS Merchant Portal.

These APIs streamline operations for environments where terminals are shared, cashiers work in shifts, or new terminals are being provisioned dynamically.


Overview

In traditional setups, adding or updating a cashier required manual actions on the Merchant Portal. With our Cashier Management APIs, this process can now be automated directly from the ECR system through our API.

These APIs allow:

  • Adding a new cashier.
  • Associating/Binding a cashier to a terminal.
  • Deassociating/Unbinding a cashier from a terminal.

Each cashier account is securely linked to a merchant and terminal within NeoPaaS, ensuring that transactions and access control remain traceable.


Add Cashier

Creates a new cashier under a merchant account.

POST{{url}}/api/v1/cashiers
FieldTypeRequiredDescription
fullNamestringYesFull name of the cashier being created.
usernamestringYesUnique username the cashier will log in with.
passwordstringYesPassword for the cashier account.
branchIdstringYesBranch the cashier belongs to.
terminalIdstringNoTerminal to associate the cashier with immediately.

Example Request

{
"fullName": "new third cashier",
"username": "cash123",
"password": "2121",
"branchId": "240",
"terminalId": "4445678988"
}

Associate Cashier to Terminal (Binding)

Associates/binds an existing cashier with a terminal. A cashier must be associated before initiating any transactions via the client app.

PUT{{url}}/api/v1/terminals/associate
FieldTypeRequiredDescription
terminalIdstringYesTerminal to associate the cashier with.
cashierUsernamestringYesUsername of the cashier to bind.

Example Request

{
"terminalId": "14582488",
"cashierUsername": "cash12"
}

Deassociate Cashier from Terminal (Unbinding)

Removes the current cashier assigned to a terminal, allowing a new cashier to take over. This can be done using the merchant credential. Useful for shift-based operations or reassigning terminals to new staff.

POST{{url}}/api/v1/terminals/{terminalId}/dissociate
ParameterTypeRequiredDescription
terminalIdstringYesThe terminal to remove the current cashier from, in the URL path.

Error Handling

The Cashier Management APIs return standardized error codes to help identify and troubleshoot request failures. Refer to the appropriate table below based on the API being called.

Add Cashier

Error CodeError ScenarioAPI Response MessageAction Required
1000Merchant Not FoundMerchant record was not found for the requested assignment flow.Verify the merchantId exists before submitting the request.
1001Terminal Not FoundTerminal record was not found.Verify the terminalId is correct and exists in the system.
1002Branch Not FoundBranch record was not found.Ensure a valid, existing branchId is provided.
1003Terminal Already AssignedThe terminal is already assigned and cannot be assigned again.Unassign the terminal from its current cashier, or select an unassigned terminal.
1004Branch DeactivatedThe branch is deactivated and cannot be used in the workflow.Use an active branch, or reactivate the branch before proceeding.
1005Internal Server ErrorA server-side error occurred during the cashier onboarding process.Retry the request. If the issue persists, contact support and provide the request reference or transaction details.

Associate / Dissociate Cashier

Error CodeError ScenarioAPI Response MessageAction Required
1006Forbidden Terminal UpdateThe operation is forbidden for the requested terminal update.Verify the terminal's current state permits this update, or use an authorized terminal.
1007Cashier Already LinkedThe cashier is already linked to a different terminal.Unlink the cashier from its current terminal before assigning it to another.
1008Terminal Server ErrorA terminal server-side error occurred while processing the request.Retry the request. If the issue persists, contact support with the request reference.
1009Missing Required IdentifierThe request is missing the terminal or cashier identifier required to continue.Include both terminalId and cashierId in the request.
1010Terminal Not FoundThe terminal could not be found.Verify the terminalId is correct and exists in the system.
1011Invalid Cashier ID FormatThe cashier ID format is invalid.Ensure the cashierId is provided in the correct format.
1012Cashier Already LinkedThe cashier is already linked to a different terminal.Select a cashier that is not currently associated with another terminal.
1013Validation ErrorA validation error occurred while processing the request.Review the request payload and correct any invalid or missing fields.
1014Terminal Not Found (Dissociation)The terminal could not be found for dissociation.Verify the terminalId exists before attempting dissociation.
1015Dissociation ForbiddenDissociation is not permitted for the current terminal state.Ensure the terminal is not locked or in a state that prevents cashier removal.
1016No Cashier AssociatedNo cashier is associated with the specified terminal.Confirm a cashier is currently linked to the terminal before attempting dissociation.
1017Dissociation Server ErrorA server-side error occurred while dissociating the terminal.Retry the request. If the issue persists, contact support and provide the request reference.

Example Error Response

{
"errorCode": 1003,
"message": "The terminal is already assigned and cannot be assigned again."
}

Use Cases

1. Shift-Based Cashier Replacement

In retail or restaurant environments, multiple cashiers may operate on the same terminal during different shifts. The Deassociate and Associate APIs allow:

  • The merchant to deassociate the outgoing cashier at shift end.
  • The merchant to associate the incoming cashier to the same terminal seamlessly.
  • This eliminates dependency on Merchant Portal access and ensures that each transaction is logged under the correct cashier.

2. New Cashier Onboarding

When a new employee joins, the Add Cashier API can be triggered automatically from the ECR or HR system to create their account under the merchant. The system can then associate them to a terminal immediately using the Associate API — reducing manual configuration time.

3. Terminal Replacement / Device Migration

The merchant (via merchant API credentials) can deassociate the cashier from the old terminal. The same cashier can then be re-associated to a new terminal without impacting permissions or historical transaction data, ensuring business continuity with minimal operational disruption.

4. Multi-Terminal Merchants

Merchants with several terminals can use these APIs to dynamically assign cashiers to different terminals based on demand — e.g., during busy hours, cashiers can log in to new terminals quickly.

Security and Access Control

  • All Add, Associate, and Deassociate Cashier APIs must be invoked using merchant account API credentials or tokens.
  • Cashier accounts/credentials themselves cannot invoke these APIs.
  • Role-based access control is enforced to ensure only authorized merchant-level entities can manage cashier–terminal associations.

Usage Tips

  • Ensure that each terminal has exactly one active cashier association at a time.
  • A deassociated terminal cannot perform transactions until a new cashier is associated.