SI.WRITEBACKJOURNAL
Overview
The SI.WRITEBACKJOURNAL function defines a single journal transaction line to be uploaded to Sage Intacct.
For a short overview of the Journal Writeback process see: Journal Writeback (Sage Intacct).
Performing writeback (i.e., Creating entities through the Sage Intacct application programming interface) requires the access rights associated with a Full User.
Employee-type users in Sage Intacct would not be able to successfully perform a writeback.
The SI.WRITEBACKJOURNAL function is used to *create* journal transactions. It cannot be used to modify/update existing transactions.
In order to separate multiple Writeback functions into groups and execute them in batches, you can use the WRITEBACKCOMMIT function.
Syntax
=SI.WRITEBACKJOURNAL(ConnectionName,Journal,PostingDate,ReverseDate,JournalDescription,ReferenceNumber,ShouldPost,AdditionalBatchSettings,Account,Debit,Credit,LineCurrencySettings,Memo,Location,LineAllocationSettings,Dimensions,UserDefinedDimensions,Billable,TaxEntry,BatchNumberOutput,ShouldOpenAfterUpload)
Arguments
The SI. WRITEBACKJOURNAL function uses the following Header and Line arguments:
Header Info
Argument | Required/Optional | Description |
| Required | The name of the connection as configured in the Connection Manager |
| Required | GL journal symbol. This determines the type of journal entry as visible in the UI, for example, Regular, Adjustment, User-defined, Statistical, GAAP, Tax, and so forth |
| Required | The transaction date in format mm/dd/yyy |
| Optional | Reverse date in format mm/dd/yyyy. Must be greater than PostingDate |
| Required | Journal description for the transaction |
| Optional | Reference number of the transaction |
| Required |
|
| Optional | A two-column array of key and value pairs for defining the settings The
Example: ![]() (this example sets values for |
Line Info
| Required | The GL account number for the transaction |
| Optional (must be left blank if Credit amount is specified) | The Debit amount to be sent to the GL Account |
| Optional (must be left blank if Debit amount is specified) | The Credit amount to be sent to the GL Account |
| Optional | The currency code to be used for the transaction |
| Optional | A memo to be included in the transaction |
| Optional (Required if muti-entity is enabled) | ID code for the Sage Intacct location to be used for the transaction |
| Optional | Allocation ID The
|
| Optional | A two-column (or two-row) Excel range, where the first column/row contains the name of a predefined analytical dimension (e.g. department, customer, project etc.), and the second column/row contains the semicolon-separated list of values or that dimension. For user-defined dimensions, use the |
| Optional | A two-column (or two-row) Excel range, where the first column/row contains the name of a user-defined analytical dimension, and the second column/row contains the respective value (or a semicolon-separated list of values) for that dimension. For predefined analytical dimensions like customer, project etc., use the |
| Optional |
|
| Required for AU, GB, ZA only | A two-column Excel range, where the first column contains text specifying the tax rate (as specified via the unique ID of a tax detail) and the second column contains a currency value denoting the value of the tax. |
| Optional | The Excel cell to receive the batch code number of the batch that is created |
| Optional |
Indicates whether or Sage Intacct should be opened to the batch following its creation |
Examples
Example 1
=SI.WRITEBACKJOURNAL("Sage","GJ","12/31/2019",,"Liability Insurance Accrual for December 2019",,False,,"60330",,"1322.41","USD",,"100",,,,,,I9,TRUE)
Expanded:
=SI.WRITEBACKJOURNAL("Sage","GJ","12/31/2019",,"Liability Insurance Accrual for December 2019",,False,,"60330",,"1322.41","USD",,"100",,,,,,I9,TRUE)
Description
Creates a transaction in the "GJ" journal. The transaction:
will be dated "12/31/2019"
does not have a reversal date
has the description of "Liability Insurance Accrual for December 2019"
should not be automatically posted
will be created for GL account #60330
will have the credit amount of 1,322.41 US dollars
will be created in location 100
In addition:
the number for the created batch number will be recorded in cell I9
Sage Intacct will automatically be opened to the batch immediately after it is created
using cell references:
=SI.WRITEBACKJOURNAL($E$2,"GJ",$E$5,$I$11,$E$6,,IF($I$10="Yes",TRUE,FALSE),,$E$12,,
J17,$I$4,,$B17,,,,,,I9,TRUE)
Here you can see an example where the cells contain the data for the function in cell K16:

Example 2
Using the TaxEntry and AdditionalBatchSettings arguments:
For Credit transactions:
=SI.WRITEBACKJOURNAL("Sage", "GJ", "12/31/2019", , "Liability Insurance Accrual for November 2019", , FALSE, {"TaxImplications","Outbound";"TaxSolutionID","United Kingdom - VAT";"VatCustomerID","10052"}, "60330", , 467.75, "USD", , "500", , , , , , I9, TRUE)
Expanded:
=SI.WRITEBACKJOURNAL("Sage,"GJ","12/31/2019",,"Liability Insurance Accrual for November 2019",,FALSE,{"TaxImplications","Outbound";"TaxSolutionID","United Kingdom - VAT";"VatCustomerID","10052"},"60330",,467.75,"USD",,"500",,,,,,I9,TRUE)
For Debit transactions:
=SI.WRITEBACKJOURNAL("Sage", "GJ", "12/31/2019", , "Liability Insurance Accrual for November 2019", , FALSE, {"TaxImplications","Outbound";"TaxSolutionID","United Kingdom - VAT";"VatCustomerID","10052"}, "20330", 1,403.25, , "USD", , "500", , , , , {"UK Sale Goods Reduced Rate","89.2"}, I9, TRUE)
Expanded:
=SI.WRITEBACKJOURNAL("Sage","GJ","12/31/2019",,"Liability Insurance Accrual for November 2019",,FALSE,{"TaxImplications","Outbound";"TaxSolutionID","United Kingdom - VAT";"VatCustomerID","10052"}, "20330",1,403.25,,"USD",,"500",,,,,{"UK Sale Goods Reduced Rate","89.2"},I9,TRUE)
Description
Creates a transaction in the "GJ" journal. The transaction:
will be dated "12/31/2019"
does not have a reversal date
has the description of "Liability Insurance Accrual for December 2019"
should not be automatically posted
with Tax implications = Outbound taxes for sales, Customer = 10052, Tax solution = United Kingdom - VAT.
60330 GL account will be credited with the amount of 467.75 USD
20330 GL account will be debited with the amount of 1,403.25 USD, including tax entry with "UK Sale Goods Reduced Rate" description and 89.20 USD amount
will be created in location 500
In addition:
The number for the created batch number will be recorded in cell I9
Sage Intacct will automatically be opened to the batch immediately after it is created
Here is the created journal entry in Sage Intacct:


In Excel, the transaction number from the journal entry has been recorded in cell I9 and the line status has been updated to Line uploaded.
Example 3
Using the LineAllocationSettings argument to provide an Allocation ID.
For Debit transactions:
=SI.WRITEBACKJOURNAL("Sage", "GJ", "06/06/2025", , "Sample transaction 3", , FALSE,, "10000", 2000, , "USD", , , LOC_STD_SPLIT, , , , , , TRUE)
=SI.WRITEBACKJOURNAL("Sage","GJ","12/31/2019",,"Sample transaction 3",,FALSE,,
"10000",1000,,"USD",,,LOC_STD_SPLIT,,,,,H9,TRUE)
For Credit transactions:
=SI.WRITEBACKJOURNAL("Sage", "GJ", "06/06/2025", , "Sample transaction 3", , FALSE,, "10000", , 1200, "USD", , , LOC_STD_SPLIT, , , , , , TRUE)
=SI.WRITEBACKJOURNAL("Sage","GJ","12/31/2019",,"Sample transaction 3",,FALSE,,
"10000",,2000,"USD",,,LOC_STD_SPLIT,,,,,H9,TRUE)
Description
Creates a transaction in the "GJ" journal. The transaction:
will be dated "06/06/2025"
does not have a reversal date
has the description of "Sample transaction 3"
should not be automatically posted
without tax implications.
10000 GL account will be credited with the amount of 1000 USD
10000 GL account will be debited with the amount of 1200 USD
will be created according to Allocation ID LOC_STD_SPLIT, which splits the value of transactions by percentage to three locations:
In addition:
The number for the created batch number will be recorded in cell H9
Sage Intacct will automatically be opened to the batch immediately after it is created
The formulas above result in the following entry in Sage Intacct:

Where the amounts are split according to the selected Allocation:

