Buckets:
title: Getting Started - Sage Intacct SDK for Node.js | Sage Intacct Developer
url: https://developer.intacct.com/tools/sdk-node-js/getting-started/
Getting Started - Sage Intacct SDK for Node.js | Sage Intacct Developer
Overview
Getting Started
List AR Invoices
List Vendors (Legacy)
CRUD Customer
Custom Object Function
- Set up
- Understand the code
- Run the example
- Extra credit
- Log level and format
- What’s next?
This tutorial will get you up and running quickly with the Sage Intacct SDK for Node.js.
Make sure you meet the system requirements before continuing.
Set up
Download and install Node.js if you do not already have it installed.
Download or clone the Sage Intacct SDK for Node.js examples.
Create a new Node.js project for the examples in your IDE of choice (WebStorm, Visual Studio, etc.).
Note that the
package.jsonfile in the project root specifies the Sage Intacct SDK for Node.js (intacct/intacct-sdk) as a dependency.Open a terminal window in the root folder and run
npm install.This creates a
node_modulesfolder and adds the Sage Intacct SDK for Node.js libraries and dependencies.Create a
credentials.inifile in the root folder and provide your developer/sandbox credentials as follows:[default] sender_id = "mysenderid" sender_password = "mysenderpassword" company_id = "mycompanyid" user_id = "myuserid" user_password = "myuserpassword"The
defaultprofile is automatically used unless overridden in theClientConfigor by environment variables.Note: The credentials file is excluded from source control via the
.gitignorefile. You should take precautions to secure this file.
Understand the code
Take a look at
bootstrap.jsin the project root and note that it:Has an export
loggerfunction for setting up a winston logger:exports.logger = function() { const winston = require("winston"); const path = require("path"); return new winston.createLogger({ transports: [ new winston.transports.File({ level: "debug", filename: path.join(__dirname, "logs", "intacct.log"), }), ] }); };Has an export
clientfunction for setting up a client config that relies on your credentials file and returns a new online client that uses the client config:exports.client = function (logger) { const IA = require("@intacct/intacct-sdk"); const path = require("path"); let clientConfig = new IA.ClientConfig(); clientConfig.profileFile = path.join(__dirname, "credentials.ini"); clientConfig.logger = logger; return new IA.OnlineClient(clientConfig); };
Open
getting-started.jsand note that it:Constructs a
Readinstance that accesses field data for the customer whose record number is 33:let read = new IA.Functions.Common.Read(); read.objectName = "CUSTOMER"; read.fields = [ "RECORDNO", "CUSTOMERID", "NAME" ] read.keys = [ 33 ];Executes the request using the online client instance (
client) that was instantiated in the bootstrap file:const response = await client.execute(read); const result = response.getResult(); // ... let json_data = result.data; console.log("Result:"); console.log( JSON.stringify(json_data) )
Run the example
Run the
getting-started.jsfile:node getting-started.jsObserve the output, for example:
Result: [{"RECORDNO":"33","CUSTOMERID":"10182","NAME":"Ria Jones"}]If you don’t get a result, replace the record number with ones that can be found in your company, for example:
read.keys = [ 12,10,44 ];Open the generated log file, for example,
logs\intacct.log, and examine the entries.The SDK provided one debug entry for the HTTP request with the Sage Intacct endpoint (/ia/xml/xmlgw.phtml HTTP/1.1), and another for the single response. The response includes the request control ID, which defaults to the timestamp of the request, and the function control ID, which defaults to a random UUID.
Extra credit
Log level and format
Edit the export
clientfunction in thebootstrap.jsfile to change the SDK’s log message format and log level. This is done by adding logLevel and logMessageFormatter property setters:exports.client = function (logger) { const IA = require("@intacct/intacct-sdk"); const path = require("path"); let clientConfig = new IA.ClientConfig(); clientConfig.profileFile = path.join(__dirname, "credentials.ini"); clientConfig.logger = logger; clientConfig.logLevel = "info"; // add this line clientConfig.logMessageFormatter = new IA.Logging.MessageFormatter("\"{method} {target} HTTP/{version}\" {code}"); // add this line return new IA.OnlineClient(clientConfig); };Run the project again, then open
logs/intacct.logand review the new entries at the bottom. Note the response code is listed after the HTTP method in the second info block.
What’s next?
- Read the SDK overview for high level information.
- Try an example that lists AR invoices.
- Browse the reference documentation for the SDK.
Provide feedback
Xet Storage Details
- Size:
- 5.66 kB
- Xet hash:
- 462883efbd06fae9e5a63422a4627580259499c975b83a2f2ba699bb5f42479f
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.