About IVM
IVM provides industrial vending machines, smart lockers, and automated supply distribution hardware, managed through its SmartHub platform. The Serval integration connects to the IVM API (version 21.1) so your workflows can look up machines, locations, products, inventory levels, vend history, and reports. All requests flow through Serval’s authenticated proxy - nothing is installed on your IVM tenant. Authentication: Your IVM API username and password (OAuth2 password grant against your SmartHub identity server). Serval presents IVM’s standard OAuth client to the identity server for you, so those are the only credentials you supply. Serval exchanges them for a short-lived access token and reuses it until shortly before it expires. Data sync: On-demand only. There is no background sync and no entity ingestion - workflows call the IVM API at the moment they run.What the IVM integration enables
Get your credentials
IVM does not offer a self-serve developer console for API credentials. IVM support provisions an API user account for your tenant. You need four things before connecting: a username, a password, your tenant’s API URL, and your tenant’s SmartHub identity server URL.Request an API user account
Collect your tenant URLs
Confirm the account supports direct password sign-in
Confirm API permissions
Connect in Serval
Open the IVM connect form
Enter the API URL
Enter the Identity Server URL
Enter the Username
Enter the Password
Leave Client ID, Client Secret, and Scope blank
api1 offline_access scope IVM requires. Fill them in only if IVM tells you your tenant has a dedicated OAuth client or a different scope - and if you set a Client Secret you must also set a Client ID, or the save is rejected with “client secret requires a client ID”.Save the connection
Verifying the connection
Serval runs three health checks against your IVM tenant. Each one goes through the full authentication path, so a passing check confirms both your credentials and your URLs. Saving a change on the connection’s settings page automatically re-runs the enabled health checks.- Validate IVM API Connection - reads the list of machine types in your tenant. Success shows “Successfully connected to IVM API.” Failure shows “Unable to connect to IVM API. Please verify your credentials and API URL are correct.”
- List Machines - lists a small sample of machines. Success shows “Successfully listed machines. Found [number] machines in IVM.” (the wording adjusts to “machine” when there is exactly one). Failure shows “Unable to list machines. Please verify your credentials have the necessary permissions.”
- List Locations - lists a small sample of locations. Success shows “Successfully listed locations. Found [number] locations in IVM.” (singular when there is exactly one). Failure shows “Unable to list locations. Please verify your credentials have the necessary permissions.”
Gotchas and troubleshooting
SSO portal logins are not API credentials
SSO portal logins are not API credentials
invalid_grant. If connection checks fail with valid-looking portal credentials, request a dedicated API username and password from support@ivminc.com.Enter the identity server base URL, not the token endpoint
Enter the identity server base URL, not the token endpoint
Both URLs must be HTTPS
Both URLs must be HTTPS
Blank fields on edit keep their existing values
Blank fields on edit keep their existing values
api1 offline_access rather than blanking the field.The username displays obfuscated, like the password
The username displays obfuscated, like the password
Changing the API URL changes the connection's identity
Changing the API URL changes the connection's identity
Reading the token error the health checks report
Reading the token error the health checks report
error and, when it provides one, error_description. The three you are likely to see mean different things:Access tokens are reused, not re-minted per call
Access tokens are reused, not re-minted per call
Your URLs must be on an approved IVM domain
Your URLs must be on an approved IVM domain
Need help? Contact support@serval.com for assistance with your IVM integration.

