RAM Connector - SDK

RAM Connector - SDK

Introduction

Real Time Asset Management Connector, (RAMConnector),  is a proprietary REST API built by WM-Synergy that acts as a connector layer between RAM asset management and ERP/financial systems. It exposes three primary resource controllers — Connectivity, Vouchers, and GeneralJournal — all inheriting from a shared BaseController.

 

All requests require a valid license to be present on the server. If the license is invalid, the API returns 400 Bad Request before any controller logic executes.

 

Property

Value

Framework

ASP.NET Web API 2

Base URL

/api/{controller}

Serialization

XML (XmlSerializer)

Encoding

URL-encoded XML

Controllers

3 resource controllers

Auth Mechanism

DBAUTH request header

 

Authentication and Headers

Every request must supply database credentials and, where applicable, an action directive via HTTP request headers. These are processed by BaseController before any endpoint logic runs.

 

Header

Required

Format

Description

DBAUTH

REQUIRED

URL-encoded XML

Contains DatabaseCredentials XML. Decoded via UrlWork.DecodeXml() then deserialized using XmlSerializer.

ACTION

CONDITIONAL

string

Required for POST /Vouchers. Must be one of: DELETE, CLEAR, RESET, PROCESSED.

 

The DBAUTH header value is decoded via UrlWork.DecodeXml() then deserialized using XmlSerializer into a DatabaseCredentials object before being passed to the repository layer.

 

Example Request Header

GET /api/Connectivity HTTP/1.1

Host: your-server.com

DBAUTH: <?xml version="1.0"?><DatabaseCredentials>

          <Server>SQLSRV01</Server>

          <Database>RAM_DB</Database>

          <Username>ramuser</Username>

          <Password>secret</Password>

        </DatabaseCredentials>

Content-Type: text/xml

 

Routing Configuration

The API uses a single conventional route registered in WebApiConfig.cs. The {id} segment is optional and used by specific actions like GetLineStatus.

 

config.Routes.MapHttpRoute(

    name:          "DefaultApi",

    routeTemplate: "api/{controller}/{id}",

    defaults:      new { id = RouteParameter.Optional }

);

 

The {id} route parameter must match the method parameter name exactly in the controller action. GetLineStatus receives id in PURCHASE_ORDER-LINE_NO format (e.g. PO-12345-3) which is split internally on the last '-' character.

 

Route Mapping Table

HTTP Method

URL Pattern

Controller Action

GET

/api/Connectivity

ConnectivityController.Get()

GET

/api/Vouchers

VouchersController.GetVouchers()

GET

/api/Vouchers/{id}

VouchersController.GetLineStatus(id)

POST

/api/Vouchers

VouchersController.Post()

POST

/api/GeneralJournal

GeneralJournalController.Post()

 

Error Handling

All controllers inherit from BaseController which provides centralised error handling via ThrowHttpException(). Errors are logged to dated text files in the /Errors server directory before being returned to the caller.

 

HTTP Status

Reason Phrase

Trigger Condition

400 Bad Request

No Credentials

DBAUTH header is missing or empty

400 Bad Request

Invalid License

Server license file is not valid; checked on every request

400 Bad Request

Invalid Action

ACTION header is missing or not in the allowed list

400 Bad Request

No XML

POST body is empty when an XML payload is required

400 Bad Request

Error

Unhandled exception from the repository or database layer

 LogFile

A generated Log File can be found in the ~/Errors/ folder inside the application directory, named by date: Errors\MM-DD-YYYY.txt (e.g., Errors\5-5-2026.txt). Errors are appended with a timestamp and separator. On your server this would be something like:
C:\inetpub\wwwroot\RAMConnector\Errors\5-5-2026.txt
Notes
Note: logging only captures errors — there's no general info/debug logging, only exceptions that flow through ThrowHttpException
.

Connectivity EndPoints

Tests that the supplied database credentials are valid and can establish a database connection. Used as a health-check before performing data operations.

 

GET  /api/Connectivity

GET

/api/Connectivity

ConnectivityController

 

Tests the database connection using the credentials supplied in the DBAUTH header. Returns true if the connection succeeds, or throws a 400 Bad Request if it fails.

 

Request Headers

Header

Type

Required

Description

DBAUTH

XML string

YES

URL-encoded XML containing DatabaseCredentials

 

Responses

Status

Description

200 OK

Returns boolean true — connection established successfully

400 Bad Request

Connection failed, invalid credentials, or license error

 

Example Request

GET /api/Connectivity HTTP/1.1

DBAUTH: [URL-encoded DatabaseCredentials XML]

 

Example Response

true

 

SECTION 06  CONTROLLER

Vouchers Endpoints

Manages purchase order vouchers and their processing lifecycle. Supports retrieving new vouchers, querying line status, and performing state-changing operations via the ACTION header.

 

GET  /api/Vouchers

GET

/api/Vouchers

GetVouchers

 

Retrieves a list of Voucher objects and their associated lines that have a status of "New". These represent unprocessed purchase order lines ready for RAM processing.

 

Request Headers

Header

Type

Required

Description

DBAUTH

XML string

YES

URL-encoded XML containing DatabaseCredentials

 

Responses

Status

Description

200 OK

XML-serialized List<Voucher> — all vouchers with Status = "New"

400 Bad Request

Credentials invalid or database error

 

Example Response Body (XML)

<ArrayOfVoucher>

  <Voucher>

    <PurchaseOrder>PO-12345</PurchaseOrder>

    <Lines>

      <VoucherLine>

        <LineNo>1</LineNo>

        <Status>New</Status>

      </VoucherLine>

    </Lines>

  </Voucher>

</ArrayOfVoucher>

 

GET  /api/Vouchers/{id}

GET

/api/Vouchers/{id}

GetLineStatus

 

Retrieves the current status of a specific Purchase Order Line. The id parameter must be passed in PURCHASE_ORDER-LINE_NO format. The API splits on the last "-" character to extract the purchase order number and line number.

 

URL Parameters

Parameter

Type

Format

Example

Description

id

string

PO_NUMBER-LINE_NO

PO-12345-3

Split on last '-': PO=PO-12345, Line=3

 

Request Headers

Header

Type

Required

Description

DBAUTH

XML string

YES

URL-encoded XML containing DatabaseCredentials

 

Responses

Status

Description

200 OK

Status string (e.g. "New", "Processing", "Processed")

400 Bad Request

Invalid credentials or database error

 

Example Request

GET /api/Vouchers/PO-12345-3 HTTP/1.1

DBAUTH: [URL-encoded DatabaseCredentials XML]

  

POST  /api/Vouchers

POST

/api/Vouchers

Action-driven

 Performs a state-changing operation on voucher lines. The specific operation is controlled by the ACTION request header. Different actions require different request body formats.

 

Request Headers

Header

Type

Required

Description

DBAUTH

XML string

YES

URL-encoded XML containing DatabaseCredentials

ACTION

string

YES

One of: DELETE, CLEAR, RESET, PROCESSED

 

ACTION Behaviour

ACTION Value

Body Required

Effect

DELETE

YES — PO-LINE string

Resets the PO-Line RAM column to "New" (used when a record is deleted from RAM)

CLEAR

YES — PO-LINE string

Sets the PO-Line RAM column to empty string

RESET

NO

Resets all asset RAM columns to their default state

PROCESSED

YES — List<ProcessedVoucher> XML

Marks the specified voucher lines as "Processing" status

 

Request Body — ACTION: DELETE or CLEAR

Plain text string in PURCHASE_ORDER-LINE_NO format:

PO-12345-3

 

Request Body — ACTION: PROCESSED

URL-encoded XML representing List<ProcessedVoucher>:

<ArrayOfProcessedVoucher>

  <ProcessedVoucher>

    <PurchaseOrder>PO-12345</PurchaseOrder>

    <LineNo>3</LineNo>

  </ProcessedVoucher>

</ArrayOfProcessedVoucher>

 

Responses

Status

Description

200 OK

Returns boolean true — operation completed successfully

400 Bad Request

Missing body, invalid ACTION value, or database error

 

General Journal Endpoints

Handles the creation of General Journal entries in the connected ERP/financial database. Accepts a list of journal entries as XML in the request body.

 

POST  /api/GeneralJournal

POST

/api/GeneralJournal

GeneralJournalController

 

Accepts a URL-encoded XML payload representing a List<GeneralJournal> and posts the journal entries to the database. Both the body XML and credentials XML are decoded before processing. Newlines are stripped from both strings prior to decoding.

 

Request Headers

Header

Type

Required

Description

DBAUTH

XML string

YES

URL-encoded XML containing DatabaseCredentials. Newlines stripped before decoding.

 

Request Body

URL-encoded XML string representing List<GeneralJournal>. Body must not be empty — a 400 is returned otherwise.

 

<ArrayOfGeneralJournal>

  <GeneralJournal>

    <JournalDate>2026-05-05</JournalDate>

    <AccountCode>1000-100</AccountCode>

    <Debit>1500.00</Debit>

    <Credit>0.00</Credit>

    <Description>Asset depreciation</Description>

  </GeneralJournal>

</ArrayOfGeneralJournal>

 

Responses

Status

Description

200 OK

Returns integer — number of records successfully posted. Returns -1 on a handled exception.

400 Bad Request

Body is empty ("No XML"), credentials invalid, or database error

 


 

 



    • Related Articles

    • RAM Connector - Installation Guide

      Prerequisites Supported Visual version are 7.0.0 – 11 Database Platform: SQL Server & Oracle .Net Framework 4.6.2 Installation Use the following Production Link to download the setup file. Once downloaded follow these steps to install QA Release, ...
    • Troubleshooting RAM / Asset 4000 Connector Error(s)

      Error Handling In the installed directory, a folder named “Errors” will be created to hold any error(s) that occur anytime the API is called. The text file will be named the date in which the error(s) occurred. All error(s) will be appended to that ...
    • WM-Synergy Business Objects SDK Information

      WM-Synergy Business Objects WM-Synergy Business Objects, SBO, is a comprehensive transaction library built on the both the .net standard and .net framework platforms. This library allows the developer to quickly read/write/update transactional data ...
    • Synergy uniPoint Connector - Installation

      Prerequisites Visual 9.0 or later Database platform: SQL Server 2012 or later .NET Framework 4.6.2 or later IIS 8 or later Synergy Macro Server Installer Use the following link to download the setup file Run SynergyUniPointConnectorSetup.exe Click ...
    • Avalara Tax Connector - How To - Find Version Number

      Using Visual ERP From Visual ERP run Customer Maintenance -> Macros -> Tax Configuration The 'Avalara Tax Configuration' window will be displayed as shown below. A window will appear with the current version number in the lower left corner. Provide a ...