Buckets:
title: Getting Started - Sage Intacct SDK for PHP | Sage Intacct Developer
url: https://developer.intacct.com/tools/sdk-php/getting-started/
Getting Started - Sage Intacct SDK for PHP | Sage Intacct Developer
Overview
Getting Started
List AR Invoices
List Vendors (Legacy)
CRUD Customer
Custom Object Function
Troubleshooting
- 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 PHP.
Make sure you meet the system requirements before continuing.
Set up
Download or clone the Sage Intacct SDK for PHP examples.
Create a new PHP project for the examples in your IDE of choice (PHPStorm, NetBeans, etc.).
Note that the
composer.jsonfile in the project root specifies the Sage Intacct SDK for PHP (intacct/intacct-sdk-php) as a dependency.Open a terminal window in the root folder and run
composer install.This creates a
vendorfolder and adds the Sage Intacct SDK for PHP 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.phpin the project root and note that it:Includes the Composer autoloader:
$loader = require __DIR__ . '\vendor\autoload.php';Sets up a Monolog HTML logger.
$logger = new \Monolog\Logger('intacct-sdk-php-examples');Creates a client config that relies on your credentials file:
$clientConfig = new ClientConfig(); $clientConfig->setProfileFile(__DIR__ . '/.credentials.ini');Creates an online client that uses the client config:
$client = new OnlineClient($clientConfig);
Open
getting-started.phpand note that it:Requires
bootstrap.php:require __DIR__ . '/bootstrap.php';Constructs a
Readobject to get information about a customer with the record number 33:$read = new Read(); $read->setObjectName('CUSTOMER'); $read->setFields([ 'CUSTOMERID', 'NAME', 'RECORDNO', 'STATUS', ]); $read->setKeys([ 33 ]);Executes the query using the online client instance (
$client) that was instantiated in the bootstrap file:$response = $client->execute($read); $result = $response->getResult();
Run the example
Run the
getting-started.phpfile:php getting-started.phpObserve the terminal output, for example:
Result: [{"CUSTOMERID":"C-9829","NAME":"Jenifer Jones","RECORDNO":"33","STATUS":"active"}]If you don’t get a result, replace the example record number with one or more that can be found in your company, for example:
$read->setKeys([ 12, 10, 44 ]);Open the generated
logs/intacct.htmlfile in your browser and review 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
Add the following lines to the bottom of the bootstrap file to change the SDK’s log message format and log level:
$formatter = new \Intacct\Logging\MessageFormatter( '"{method} {target} HTTP/{version}" {code}' ); $client->getConfig()->setLogLevel(\Psr\Log\LogLevel::INFO); $client->getConfig()->setLogMessageFormatter($formatter);Run the PHP file again, then open
logs/intacct.htmland review the new entries at the bottom. Note the response code is listed after the HTTP method in the second INFO block."POST /ia/xml/xmlgw.phtml HTTP/1.1" 200
What’s next?
- Read the SDK overview for high level information.
- Try an example that lists AR invoices based on attributes of associated customers.
- Browse the reference documentation for the SDK.
Provide feedback
Xet Storage Details
- Size:
- 4.78 kB
- Xet hash:
- 1d773759aadc83924fa20b9421c652ed609a458799bf1dd99b7c0804b82c75e2
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.