A
Aliste Volta / API
Staging Postman

API reference

The Aliste Volta API is organized around REST. Requests use JSON-encoded bodies, return JSON-encoded responses, and use standard HTTP response codes and verbs.

Base URL
https://test.alistetechnologies.com
Authentication
HTTP Basic — base64(keyId:keyPassword)

Authentication #

The Aliste Volta API uses HTTP Basic authentication. Generate an API key from your dashboard with the roles you need; the password is shown only once, so store it securely.

Use the keyId as the username and the keyPassword as the password. Base64-encode them together as keyId:keyPassword and pass the result in an Authorization header.

All API requests must be made over HTTPS. Requests made without authentication, or with an expired key, will fail.

Keep your keys secret. Your API keys carry many privileges — do not share them in publicly accessible places such as GitHub, client-side code, or screenshots.
curl https://test.alistetechnologies.com/integration/room/details \
  -H "Authorization: Basic MjJVeHFkN2o6Y0p3bmdYSFI4cTJGTzhuYm84YVYwRGZoMEl5eVRzd1A=" \
  -H "Content-Type: application/json" \
  -d '{"roomId":"TEST001"}'
const token = Buffer
  .from(`${keyId}:${keyPassword}`)
  .toString('base64');

await fetch('https://test.alistetechnologies.com/integration/room/details', {
  method: 'POST',
  headers: {
    'Authorization': `Basic ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ roomId: 'TEST001' })
});

Errors #

Aliste Volta uses conventional HTTP response codes. Codes in the 2xx range indicate success; codes in the 4xx range indicate a client error; codes in the 5xx range indicate a server error.

Every response — successful or not — has the same envelope, so your code can branch on a single boolean.

Response envelope

successboolean

true if the request was successful, false otherwise.

messagestring

Human-readable description. On errors, this explains what went wrong.

dataobject

The payload — shape varies by endpoint. May be {} on errors.

{
  "success": true,
  "message": "Room fetched successfully",
  "data": { "room": { /* ... */ } }
}
{
  "success": false,
  "message": "Missing fields: roomId",
  "data": {}
}

Quickstart #

Five steps to take your integration from zero to live. Steps 1 and 2 are completed by your Aliste admin; the rest are handled by your engineering team.

1
Admin
Share access
2
Admin
Create API key
3
You
List properties
4
You
Map your IDs
5
You
Use your IDs
1
Admin

Get share access

Ask your Aliste admin to grant your team integration access from the Share access section of the dashboard. This is what authorises your organisation to issue API keys.

2
Admin

Create a production API key

From the API Keys section, your admin generates a production key for the integration and grants it access to all properties you intend to integrate.

The key's password is shown only once — store it in your secret manager before closing the dialog. You'll use it in every request as Basic base64(keyId:keyPassword).

3
You

List all properties

Call GET /integration/property/all/details once with your new key. The response enumerates every property and room you have access to — each one carries an alisteId you'll reference in the next step.

4
You

Map your IDs onto Aliste's

For each property, call Update a property once: pass Aliste's alisteId as propertyId, and your own ID as referenceId. Do the same for every room via Update a room.

This one-time write tells Aliste how your IDs correspond to its records. Every subsequent endpoint accepts either ID.

5
You

Use your own IDs going forward

You're done. From here on, every API call can use the IDs from your own database — no need to persist Aliste's internal IDs anywhere in your system.


List all properties #

Returns every property accessible to your API key, fully expanded with rooms and common areas. No body required.

GET/integration/property/all/details
curl https://test.alistetechnologies.com/integration/property/all/details \
  -H "Authorization: Basic {token}"
{
  "success": true,
  "message": "Properties and rooms fetched successfully",
  "data": {
    "properties": [
      {
        "id": "PROP12345",
        "alisteId": "66fe39d21cd53cdac238f8c0",
        "name": "Sample Property Alpha",
        "cpu": 8, "cpdu": 12,
        "rooms": [{ "id": "TEST001", "name": "Room A-101", "balance": 540.25 }],
        "commonAreas": [{ "id": "CA1001", "name": "Recreation Hall" }]
      }
    ]
  }
}

List rooms in a property #

Lists every room and common area under a property, with per-meter monitoring state.

POST/integration/property/rooms

Body parameters

propertyIdstringRequired

Your property ID or Aliste property ID.

curl https://test.alistetechnologies.com/integration/property/rooms \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{"propertyId":"PROP12345"}'
{
  "success": true,
  "message": "Rooms fetched successfully",
  "data": {
    "room": [
      {
        "id": "TEST001",
        "alisteId": "66fe39d21cd53cdac238f8c0",
        "name": "Room A-101",
        "cpu": 8, "cpdu": 12,
        "balance": 540.25,
        "blocked": false,
        "devices": ["M240000"],
        "monitoring": true
      }
    ],
    "commonAreas": [
      {
        "id": "CA1001",
        "name": "Recreation Hall",
        "devices": ["M310000"],
        "monitoring": true
      }
    ]
  }
}

Retrieve a property #

Returns the configuration of a single property including tariffs, minimums, and monitoring status.

POST/integration/property/detailsscope: property.view

Body parameters

propertyIdstringRequired

Your property ID (referenceId) or Aliste property ID.

curl https://test.alistetechnologies.com/integration/property/details \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{"propertyId":"PROP12345"}'
{
  "success": true,
  "message": "Property fetched successfully",
  "data": {
    "property": {
      "id": "PROP12345",
      "name": "Sample Property Alpha",
      "cpu": 8,
      "cpdu": 12,
      "mnb": 0,
      "meb": 200,
      "minRecharge": 150,
      "supportNumbers": ["+919834343434"],
      "supportEmails": ["support@example.com"],
      "monitoring": true
    }
  }
}

Update a property #

Updates property-level settings such as unit cost and minimum recharge.

POST/integration/property/configurescope: property.update

Body parameters

propertyIdstringRequired

Aliste or client property ID.

cpunumberOptional

Cost per unit at the property.

cpdunumberOptional

Cost per DG / inverter unit.

mnbnumberOptional

Minimum negative balance allowed.

mebnumberOptional

Minimum expected balance.

minRechargenumberOptional

Minimum recharge amount enforced on payment links.

referenceIdstringOptional

Update or set your client-side property ID.

Updating these values propagates to every room currently mirroring the property's configuration. Rooms that have been individually configured are left untouched.
curl https://test.alistetechnologies.com/integration/property/configure \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "propertyId": "PROP12345",
    "cpu": 9,
    "minRecharge": 200
  }'
{
  "success": true,
  "message": "Property updated successfully",
  "data": {
    "property": {
      "id": "PROP12345",
      "cpu": 9,
      "minRecharge": 200
    }
  }
}

Retrieve a room #

Fetches a room's full configuration including live device connection state and a real-time current balance (today's spend already deducted).

POST/integration/room/detailsscope: rooms.view

Body parameters

roomIdstringRequired

Your referenceId or Aliste room ID.

Response highlights

balancenumber

Stored room balance.

currentBalancenumber

balance minus today's consumption — what the tenant effectively has right now.

devicesStatusarray

Per-device connected flag fetched live from the meter cloud.

monitoringboolean

true if every meter on the room is being monitored.

curl https://test.alistetechnologies.com/integration/room/details \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{"roomId":"TEST001"}'
{
  "success": true,
  "message": "Room fetched successfully",
  "data": {
    "room": {
      "id": "TEST001",
      "name": "Room A-101",
      "cpu": 8, "cpdu": 12,
      "mnb": 0, "meb": 200,
      "minRecharge": 150,
      "balance": 540.25,
      "currentBalance": 528.12,
      "blocked": false,
      "monitoring": true,
      "devices": ["M240000"],
      "devicesStatus": [
        { "deviceId": "M240000", "connected": true }
      ]
    }
  }
}

List room users #

Returns every tenant currently attached to a room.

POST/integration/room/users/detailsscope: rooms.view

Body parameters

roomIdstringRequired

Your referenceId or Aliste room ID.

curl https://test.alistetechnologies.com/integration/room/users/details \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{"roomId":"TEST001"}'
{
  "success": true,
  "message": "Room fetched successfully",
  "data": {
    "room": {
      "roomId": "TEST001",
      "alisteRoomId": "66fe39d21cd53cdac238f8c0",
      "users": [
        {
          "userId": "CLIENT_USR_88421",
          "alisteUserId": "66fe39d23cd53cdac238f8c0",
          "name": "Aarav Mehta",
          "mobile": "9999999999"
        }
      ]
    }
  }
}

Update a room #

Override property-level defaults for a single room. Only the fields you send are updated.

POST/integration/room/configurescope: rooms.update

Body parameters

roomIdstringRequired

Aliste or client room ID.

cpunumberOptional

Cost per unit override.

cpdunumberOptional

Cost per DG / inverter unit.

mnbnumberOptional

Minimum negative balance allowed.

mebnumberOptional

Minimum expected balance.

minRechargenumberOptional

Minimum recharge amount.

referenceIdstringOptional

Replace your client-side room ID.

curl https://test.alistetechnologies.com/integration/room/configure \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "roomId": "TEST001",
    "minRecharge": 250,
    "mnb": -100
  }'
{
  "success": true,
  "message": "Room updated successfully",
  "data": {
    "room": {
      "id": "TEST001",
      "mnb": -100,
      "minRecharge": 250
    }
  }
}

Block or unblock a room #

Disconnects (or reconnects) the meter associated with a room. Blocking sends a power-cut command to the meter; the action is logged with the API key's identity and is reversible at any time.

POST/integration/room/blockUnblockscope: rooms.block / unblock

Body parameters

roomIdstringRequired

Room to act on.

blockbooleanRequired

true to block, false to unblock.

controllerDetailsobjectOptional

Arbitrary metadata stored on the audit log (e.g. ticket reference, operator note).

curl https://test.alistetechnologies.com/integration/room/blockUnblock \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "roomId": "TEST001",
    "block": true,
    "controllerDetails": { "reason": "Non-payment" }
  }'
{
  "success": true,
  "message": "Room blocked successfully",
  "data": {
    "room": { "id": "TEST001", "blocked": true }
  }
}

Room consumption #

Returns every deduction (energy and manual) on a room within a window. Dates must be UTC ISO-8601.

POST/integration/room/consumptionscope: deductions.view

Body parameters

roomIdstringRequired

Room reference.

startDatestring · ISO-8601Required

2025-01-15T00:00:00.000Z — inclusive.

endDatestring · ISO-8601Required

2025-01-31T23:59:59.999Z — exclusive.

curl https://test.alistetechnologies.com/integration/room/consumption \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "roomId": "TEST001",
    "startDate": "2025-01-01T00:00:00.000Z",
    "endDate":   "2025-01-31T23:59:59.999Z"
  }'
{
  "success": true,
  "message": "Deductions fetched successfully",
  "data": {
    "deductions": [
      {
        "roomName": "Room A-101",
        "startTime": "2025-01-14T18:30:00.000Z",
        "endTime":   "2025-01-15T18:30:00.000Z",
        "amount": 42.50,
        "units": 5.31,
        "type": "Regular",
        "source": "energy",
        "deductionTime": "2025-01-15T18:30:05.000Z",
        "note": "",
        "userMessage": ""
      }
    ]
  }
}

Add user to room #

Adds a user to the specified room. If the user does not yet exist in Aliste, they are registered automatically and then attached to the room.

POST/integration/room/user/add

Body parameters

roomIdstringRequired

Your room ID (matches meta_data.referenceId) or the Aliste room ID.

phoneNumberstringRequired

10-digit phone number. Only the last 10 digits are kept — prefixes are stripped.

firstNamestringRequired

First name of the tenant.

userIdstringRequired

Your unique user ID, stored on the Aliste user as meta_data.referenceId.

lastNamestringOptional

Last name of the tenant.

emailstringOptional

Contact email for the tenant.

Errors

400
Room not found
No room matches the supplied ID for your client.
400
User already exists in this room
The phone number is already attached to this room.
400
User already exists in a room of a different property
The user is bound to a room in another property and must be removed first.
curl https://test.alistetechnologies.com/integration/room/user/add \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "roomId": "TEST001",
    "phoneNumber": "9999999999",
    "firstName": "Aarav",
    "lastName": "Mehta",
    "email": "aarav@example.com",
    "userId": "CLIENT_USR_88421"
  }'
{
  "success": true,
  "message": "User added to the room successfully",
  "data": {}
}

Remove user from room #

Detaches a user from a room. The user remains in Aliste — only the room mapping is severed.

POST/integration/room/user/remove

Body parameters

roomIdstringRequired

Room ID (your referenceId or Aliste room ID).

phoneNumberstringRequired

10-digit phone number of the user to detach.

curl https://test.alistetechnologies.com/integration/room/user/remove \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "roomId": "TEST001",
    "phoneNumber": "9999999999"
  }'
{
  "success": true,
  "message": "User removed from room",
  "data": {}
}

Retrieve a recharge #

Look up the lifecycle and settlement details of a single recharge.

POST/integration/recharge/status

Body parameters

rechargeIdstringRequired

Returned from Create a recharge link or any webhook.

Response fields

statusenum

One of pending, success, failed.

amountnumber

Gross amount charged.

gatewayChargenumber

Payment-gateway fee deducted.

balanceAddednumber

Net amount credited to the room.

roomBalancenumber

Room balance after this recharge.

curl https://test.alistetechnologies.com/integration/recharge/status \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{"rechargeId":"66fe38d21cd53cdac238f8c0"}'
{
  "success": true,
  "message": "Recharge fetched successfully",
  "data": {
    "status": "success",
    "amount": 1000,
    "gatewayCharge": 15,
    "paymentMode": "Card",
    "rechargeId": "66fe38d21cd53cdac238f8c0",
    "balanceAdded": 985,
    "rechargedAt": "2025-01-01T10:00:00.000Z",
    "createdAt":   "2025-01-01T10:00:00.000Z",
    "roomBalance": 2500.50,
    "phoneNumber": "9999999999",
    "roomId": "TEST001",
    "userId": "CLIENT_USR_88421",
    "userName": "Aarav Mehta",
    "metaData": {
      "alisteRoomId": "66fe39d21cd53cdac238f8c0",
      "alisteUserId": "66fe39d23cd53cdac238f8c0"
    }
  }
}

List recharges #

Lists every paid or failed recharge for a room in a date window, across PayU, Razorpay and manual entries.

POST/integration/room/rechargesscope: recharges.view

Body parameters

roomIdstringRequired

Room reference.

startDateISO-8601Required

UTC timestamp.

endDateISO-8601Required

UTC timestamp.

curl https://test.alistetechnologies.com/integration/room/recharges \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "roomId": "TEST001",
    "startDate": "2025-01-01T00:00:00.000Z",
    "endDate":   "2025-01-31T23:59:59.999Z"
  }'
{
  "success": true,
  "message": "Recharges fetched successfully",
  "data": {
    "recharges": [
      {
        "roomName": "Room A-101",
        "tenantName": "Aarav Mehta",
        "paymentMode": "Card",
        "phone": "9999999999",
        "status": "paid",
        "transactionId": "66fe38d21cd53cdac238f8c0",
        "amount": 1000,
        "balanceAdded": 985,
        "gatewayCharges": 15,
        "rechargeDate": "2025-01-15T10:00:00.000Z",
        "userReason": "",
        "note": "October recharge"
      }
    ]
  }
}

Manual recharge #

Adds credit to a room balance without a payment gateway. Use for adjustments, cashback, or offline collections.

POST/integration/room/recharge/manual

Body parameters

roomIdstringRequired

Room reference.

amountnumberRequired

Credit amount. Must be ≥ 0.

notestringRequired

Internal/admin note.

userMessagestringRequired

Tenant-facing message shown on the transaction.

curl https://test.alistetechnologies.com/integration/room/recharge/manual \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "roomId": "TEST001",
    "amount": 200,
    "note": "Goodwill credit for outage 14 Jan",
    "userMessage": "Credit for power outage"
  }'
{
  "success": true,
  "message": "Recharge created successfully",
  "data": {
    "room": { "id": "TEST001", "balance": 740.25 }
  }
}

Manual deduction #

Pulls credit from a room balance. Use for penalties, CAM charges, or fixed-cost recoveries.

POST/integration/room/deduction/manual

Body parameters

roomIdstringRequired

Room reference.

amountnumberRequired

Amount to deduct. Must be ≥ 0.

notestringRequired

Internal note.

userMessagestringRequired

Tenant-facing reason.

sourcestringOptional

Defaults to Penalty. Pass an Aliste deduction source value to categorise.

curl https://test.alistetechnologies.com/integration/room/deduction/manual \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "roomId": "TEST001",
    "amount": 150,
    "note": "CAM charges – Jan",
    "userMessage": "Common area maintenance",
    "source": "CAM"
  }'
{
  "success": true,
  "message": "Deduction created successfully",
  "data": {
    "room": { "id": "TEST001", "balance": 590.25 }
  }
}

Device status #

Returns the live connection state of a smart meter. If the upstream meter cloud is unreachable, the call still returns success: true with connected: false — failures are normalised, not raised.

POST/integration/device/status

Body parameters

deviceIDstringRequired

The meter's serial identifier (e.g. M240000).

curl https://test.alistetechnologies.com/integration/device/status \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{"deviceID":"M240000"}'
{
  "success": true,
  "message": "Device status fetched successfully",
  "data": { "connected": true }
}

Create a ticket #

Files a new support ticket against a room. The category and subcategory pair determines routing inside Aliste's support tooling.

POST/integration/ticket/create

Body parameters

roomIdstringRequired

Room the ticket is filed against.

categorynumber · enumRequired

One of 1, 2, 3, 4, 5 — see matrix below.

subcategorynumber · enumRequired

Subcategory matching the chosen category.

subjectstringOptional

Short title shown in the agent inbox.

descriptionstringOptional

Body of the ticket.

userIdentifierstringOptional

Tenant's userId or +91 phone number. If provided, must exist.

attachmentsURLsstring[]Optional

Publicly accessible media URLs.

Category & subcategory matrix

CatCategorySubSubcategory
1Deductions0Over consumption
1Deductions1Can't see deduction
2Recharge0Recharge not reflected
2Recharge1Unable to recharge
3Balance0Wrong balance being shown
4Room0Wrong room number
4Room1Roommate not added
5Other0Other
curl https://test.alistetechnologies.com/integration/ticket/create \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "roomId": "TEST001",
    "category": 2,
    "subcategory": 0,
    "subject": "My recharge isn't reflecting",
    "description": "Paid ₹500 30 minutes ago — still not in balance.",
    "userIdentifier": "+919999999999"
  }'
{
  "success": true,
  "message": "Ticket raised successfully",
  "data": { "ticketId": "Tdfds34" }
}

Retrieve a ticket #

Pulls a ticket by its ticketId along with its activity timeline.

POST/integration/ticket/fetch

Body parameters

ticketIdstringRequired

The ID returned from Create a ticket.

curl https://test.alistetechnologies.com/integration/ticket/fetch \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{"ticketId":"Tdfds34"}'
{
  "success": true,
  "message": "Ticket fetched successfully",
  "data": {
    "ticket": {
      "id": "Tdfds34",
      "subject": "My recharge isn't reflecting",
      "description": "Paid ₹500 30 minutes ago...",
      "userId": "CLIENT_USR_88421",
      "userName": "Aarav",
      "roomId": "TEST001",
      "createdAt": "2025-01-01T10:00:00.000Z",
      "attachments": [],
      "status": "created",
      "activity": [
        { "status": "created",  "comment": "", "timestamp": "2025-01-01T10:00:00.000Z" },
        { "status": "resolved", "comment": "Refund processed", "timestamp": "2025-01-01T11:30:00.000Z" }
      ],
      "metaData": {
        "alisteRoomId": "66fe39d21cd53cdac238f8c0",
        "alisteUserId": "66fe39d23cd53cdac238f8c0"
      }
    }
  }
}

List done payouts #

Returns every completed payout for the given properties between two dates, with full recharge breakdown and invoice details.

POST/integration/payouts/done

Body parameters

propertyIdsstring[]Required

List of properties to filter by.

startDateISO-8601Required

Inclusive lower bound on transactionDate.

endDateISO-8601Required

Inclusive upper bound on transactionDate.

Response fields

payoutIdstring

Unique identifier for the payout record.

transactionIdstring

Bank reference ID from the transfer.

rechargeAmountnumber

Sum of all recharges in this payout window.

transferredAmountnumber

Net amount actually wired.

extraPropertiesPayoutsarray

Payouts spanning properties outside your key's scope — only IDs are returned.

curl https://test.alistetechnologies.com/integration/payouts/done \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "propertyIds": ["PROP12345", "PROP12346"],
    "startDate": "2024-01-14T18:30:00.000Z",
    "endDate":   "2025-11-14T18:30:00.000Z"
  }'
{
  "success": true,
  "message": "Payout fetched successfully",
  "data": {
    "payouts": [
      {
        "payoutId": "507f1f77bcf86cd799439011",
        "transactionId": "TXN123456789",
        "transactionDate": "2025-01-15T00:00:00.000Z",
        "method": "imps",
        "rechargeAmount": 5000,
        "invoiceAmount": 1500,
        "adjustmentAmount": 100,
        "transferredAmount": 3400,
        "properties": [
          { "name": "Sample Property", "propertyId": "PROP12345", "alistePropertyId": "507f191e810c19729de860ea" }
        ],
        "rechargeBreakdown": [
          { "propertyId": "PROP12345", "propertyName": "Sample Property", "amount": 5000 }
        ],
        "invoices": [
          { "propertyId": "PROP12345", "amount": 1500, "invoiceId": "INV987654321" }
        ],
        "comment": "Monthly payout for January",
        "startDate": "2025-01-01T00:00:00.000Z",
        "endDate":   "2025-01-31T23:59:59.999Z"
      }
    ],
    "extraPropertiesPayouts": [
      { "payoutId": "507f1f77bcf86cd799439012" }
    ]
  }
}

Pending payouts #

Returns the running pending amount per property — recharges collected since the last payout minus any outstanding invoices.

POST/integration/payouts/pending

Body parameters

propertyIdsstring[]Required

Properties to compute pending payouts for.

curl https://test.alistetechnologies.com/integration/payouts/pending \
  -H "Authorization: Basic {token}" \
  -H "Content-Type: application/json" \
  -d '{"propertyIds":["PROP12345","PROP12346"]}'
{
  "success": true,
  "message": "Payout fetched successfully",
  "data": [
    {
      "propertyId": "PROP12345",
      "alistePropertyId": "670000000000000000000001",
      "propertyName": "Sample Property 1",
      "startDate": "2025-09-25T10:00:00.000Z",
      "endDate":   "2025-10-02T10:00:00.000Z",
      "totalRecharges": 1200,
      "invoiceAmount":  800,
      "adjustmentAmount": 0,
      "pendingAmount":  400
    }
  ]
}

Recharge status webhook #

Sent when a recharge transitions to success or failed. The payload schema is identical to the Retrieve a recharge response.

POSThttps://your-server.com/webhooks/aliste/recharge
Always reply with 200 OK within 5 seconds. Aliste retries non-2xx responses with exponential backoff.
{
  "status": "success",
  "amount": 1000,
  "gatewayCharge": 15,
  "paymentMode": "Card",
  "rechargeId": "66fe38d21cd53cdac238f8c0",
  "balanceAdded": 985,
  "createdAt":   "2025-01-01T10:00:00.000Z",
  "rechargedAt": "2025-01-01T10:00:00.000Z",
  "roomBalance": 2500.50,
  "phoneNumber": "9999999999",
  "roomId": "TEST001",
  "userId": "CLIENT_USR_88421",
  "userName": "Aarav Mehta",
  "metaData": {
    "alisteRoomId": "66fe39d21cd53cdac238f8c0",
    "alisteUserId": "66fe39d23cd53cdac238f8c0"
  }
}

Ticket status webhook #

Pushed on every ticket status transition. The activity array contains the complete history. Observed statuses: created, in_progress, resolved, closed.

POSThttps://your-server.com/webhooks/aliste/ticket
{
  "ticketId": "Tdfds34",
  "status": "resolved",
  "createdAt": "2025-01-01T10:00:00.000Z",
  "subject": "My recharge isn't reflecting",
  "description": "Paid ₹500 30 minutes ago...",
  "phoneNumber": "9999999999",
  "userId": "CLIENT_USR_88421",
  "category": 2,
  "subcategory": 0,
  "activity": [
    { "status": "created",     "comment": "",                "timestamp": "2025-01-01T10:00:00.000Z" },
    { "status": "in_progress", "comment": "Looking into it", "timestamp": "2025-01-01T10:15:00.000Z" },
    { "status": "resolved",    "comment": "Refund processed","timestamp": "2025-01-01T11:30:00.000Z" }
  ]
}

Test credentials #

Use this demo Basic auth token against the staging base URL to validate your integration end-to-end.

Authorization header
Basic MjJVeHFkN2o6Y0p3bmdYSFI4cTJGTzhuYm84YVYwRGZoMEl5eVRzd1A=
curl https://test.alistetechnologies.com/integration/room/details \
  -H "Authorization: Basic MjJVeHFkN2o6Y0p3bmdYSFI4cTJGTzhuYm84YVYwRGZoMEl5eVRzd1A=" \
  -H "Content-Type: application/json" \
  -d '{"roomId":"TEST001"}'

Demo data #

Rooms wired up on staging. Only TEST001 is currently active.

NameReference IDDevice IDStatus
001TEST001M240000● active
002TEST002M310000idle
003TEST003M320000idle
004TEST004H320000idle
005TEST005H310000idle

© Aliste Technologies · Volta Integration API