| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Create Charge Anywhere Terminal
Creates a new terminal within the Charge Anywhere gateway for a specified merchant. The terminal can be one of several device types including Android/iOS mobile apps, QuickSale hardware variants, a Virtual Terminal, or an E-Commerce integration. For wireless physical terminals, optional SIM configuration fields (type and number) can be supplied. On success, the response returns a terminal identification string and a newly assigned license key.
Endpoint
POST /api/v1/merchant/chargeAnywhere/terminal
Authentication
Basic HTTP Authentication required.
Encode username:password in Base64 and pass in the Authorization header:
Authorization: Basic {base64(username:password)}
When to use
Use this endpoint when setting up a merchant's Charge Anywhere payment capability for the first time, or when adding additional terminals to an existing merchant account. It supports both virtual terminals for online/MOTO use and physical hardware terminals. The deviceTypeId enum determines how the terminal will be provisioned in the Charge Anywhere gateway.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| merchantProfileId | integer (int32) | Yes | Merchant profile identifier to associate the new terminal with |
| deviceTypeId | string (enum) | Yes | Type of device to create. One of: AndroidProd, iOSProd, QuickSaleQ1, QuickSaleQ2, QuickSaleQ3, VirtualTerminal, ECommerce |
| terminalId | integer (int32) | No | Existing terminal ID to associate with this Charge Anywhere terminal; omit to auto-assign |
| serialNumber | string | No | Serial number of the physical terminal device |
| wireless | boolean | No | Set to true if the terminal uses a wireless/cellular connection |
| simType | string | No | SIM card type (e.g., 4G, LTE); required when wireless is true |
| simNumber | string | No | SIM card number for the wireless terminal; required when wireless is true |
{
"merchantProfileId": 78234,
"deviceTypeId": "VirtualTerminal",
"terminalId": 1042,
"serialNumber": null,
"wireless": false,
"simType": null,
"simNumber": null
}Response
200 OK
| Field | Type | Description |
|---|---|---|
| identification | string | Identification string assigned to the newly created terminal |
| licenseKey | string | License key generated and assigned to the new terminal |
| requestId | integer | Unique request ID for tracking and debugging |
| success | boolean | True if the terminal was created successfully |
| error | string | Error message if creation failed; null on success |
| validationErrors | array | Field-level validation errors, if any |
{
"identification": "VT-MID78234-0091",
"licenseKey": "CA-LIC-X9Y8Z7W6V5U4",
"requestId": 11523,
"success": true,
"error": null,
"validationErrors": []
}Error Codes
| Code | When it happens |
|---|---|
| 400 | Required fields (merchantProfileId or deviceTypeId) are missing or invalid; deviceTypeId is not one of the allowed enum values |
| 401 | Invalid or missing Basic Auth credentials |
| 403 | User does not have permission for this operation |
| 404 | Merchant profile not found for the given merchantProfileId |
| 500 | Internal server error during terminal creation |
Common Mistakes
- Supplying an invalid
deviceTypeIdvalue — only the exact enum strings are accepted:AndroidProd,iOSProd,QuickSaleQ1,QuickSaleQ2,QuickSaleQ3,VirtualTerminal,ECommerce - Setting
wireless: truewithout providingsimTypeandsimNumber— wireless terminals require both SIM fields - Passing a string for
merchantProfileId— this field must be an integer - Creating duplicate terminals for the same merchant by not first calling
GET /api/v1/merchant/chargeAnywhere/terminalsto check existing devices
Related Endpoints
GET /api/v1/merchant/chargeAnywhere/terminals— list all existing Charge Anywhere terminals for a merchantGET /api/v1/merchant/chargeAnywhere/licenses— retrieve license information after terminal creationPOST /api/v1/merchant/chargeAnywhere/keepLicenseActive— manage the keep-active status for a terminal's license
Example
curl -X POST "https://hq.staging.netevia.dev/api/v1/merchant/chargeAnywhere/terminal" \
-H "Authorization: Basic $(echo -n 'username:password' | base64)" \
-H "Content-Type: application/json" \
-d '{
"merchantProfileId": 78234,
"deviceTypeId": "VirtualTerminal",
"terminalId": 1042,
"wireless": false
}'