PostTrans XML API for Sage 200 - Nominal Journal
The PostTrans XML API for Sage 200 posts Nominal Journals, Reversing Nominals and Recurring Journals into Sage 200, from a simple XML file, submitted to import directory or IMAP e-mail account.
After posting the file is moved to a processed folder, and the Transaction Reference is added to the top of XML file. If the file fails validation, then the error/errors are appended to the top of the file. A user can then easily edit and resubmit to PostTrans XML API for Sage 200.
List of Tags/Entities for mapping are at bottom of page.
Click here for an overview of the XML API for Sage 200
Demonstration Video
| 0:00 | Where to get help | |
| 1:00 | Where to import from | |
| 1:40 | Open example and walk tNominal Journal XML API | |
| 4:00 | Post Nominal Journal into Sage 200 | |
| 4:30 | The proof |
List of Examples
- 200 Nominal Journal Amount.xml
- 210 Nominal journal CrDb.xml
- 220 Nominal Journal with VAT.xml
- 230 Nominal Journal Recuring.xml
- 240 Nominal Journal Reversing.xml
- List Of Tags used
Example – 200 Nominal Journal Amount.xml
<?xml version="1.0" ?>
<sage200Data>
<settings>
<companyCode>DEMO03</companyCode>
<mappings>
</mappings>
</settings>
<NomHeader>
<!-- ===== Header ==== -->
<THJournalType>NOM</THJournalType> <!-- Text 3 - Journal Type NOM, BAT or REV only -->
<!-- Values:NOM,Normal Journal,REV,Reversing Journal,REC,Recurring Journal-->
<THDate>2017-02-20</THDate> <!-- Date - Overide Heading Date, thus causing a new transaction on change -->
<THRef>My Test using Cr/Db </THRef> <!-- Text 30 - Overide Heading Ref, thus causing a new transaction on change -->
<!-- using Sage API 200 post three line Nominal Journal user either
<TLAmount> or <TLDebit> and <TLCredit>
to define the amounts which must balance -->
<NomLine>
<TLDetails>Optional:Set the description on this line</TLDetails> <!-- Text 60 - Details -->
<TLExterRef>Optional:And an External ref</TLExterRef> <!-- Text 30 - External Referance -->
<TLNomCode>31100/LON/VAL</TLNomCode> <!-- Credit -->
<TLAmount>-100</TLAmount>
</NomLine>
<NomLine>
<TLNomCode>31100/LON/ADM</TLNomCode>
<TLAmount>50</TLAmount> <!-- Debit -->
</NomLine>
<NomLine>
<TLNomCode>31100/SCO/ADM</TLNomCode>
<TLAmount>50</TLAmount> <!-- Debit -->
</NomLine>
</NomHeader>
</sage200Data>
Example – 210 Nominal journal CrDb.xml
<?xml version="1.0" ?>
<sage200Data>
<settings>
<companyCode>DEMO03</companyCode>
<mappings>
</mappings>
</settings>
<NomHeader>
<!-- ===== Header ==== -->
<THJournalType>NOM</THJournalType> <!-- Text 3 - Journal Type NOM, BAT, REC or REV only -->
<!-- Values:NOM,Normal Journal,REV,Reversing Journal,REC,Recurring Journal-->
<THDate>2017-02-20</THDate> <!-- Date - Overide Heading Date, thus causing a new transaction on change -->
<THRef>My Test </THRef> <!-- Text 30 - Overide Heading Ref, thus causing a new transaction on change -->
<!-- using Sage API 200 post three line Nominal Journal user either
<TLAmount> or <TLDebit> and <TLCredit>
to define the amounts which must balance -->
<NomLine>
<TLDetails>Optional:Set the description on this line</TLDetails> <!-- Text 60 - Details -->
<TLExterRef>Optional:And an External ref</TLExterRef> <!-- Text 30 - External Referance -->
<TLNomCode>31100/LON/VAL</TLNomCode>
<TLDebit>100</TLDebit>
</NomLine>
<NomLine>
<TLNomCode>31100/LON/ADM</TLNomCode>
<TLCredit>50</TLCredit>
</NomLine>
<NomLine>
<TLNomCode>31100/SCO/ADM</TLNomCode>
<TLCredit>50</TLCredit>
</NomLine>
</NomHeader>
</sage200Data>
Example – 220 Nominal Journal with VAT.xml
<?xml version="1.0" ?>
<sage200Data>
<settings>
<companyCode>DEMO03</companyCode>
<mappings>
</mappings>
</settings>
<NomHeader>
<!-- ===== Header ==== -->
<THJournalType>NOM</THJournalType> <!-- Text 3 - Journal Type NOM, BAT, REC or REV only -->
<!-- Values:NOM,Normal Journal,REV,Reversing Journal,REC,Recurring Journal-->
<THDate>2017-02-20</THDate> <!-- Date - Overide Heading Date, thus causing a new transaction on change -->
<THRef>My Test </THRef> <!-- Text 30 - Overide Heading Ref, thus causing a new transaction on change -->
<!-- Sage 200 allows the follwoing line types for Sales Orders and Invoice sent to Invoice module
VAT rounding can often be a problem, this example calcs the Net and VAT from
Inclusive of VAT value -->
<NomLine>
<TLDetails>Payment for goods Ref 2516261</TLDetails>
<TLNomCode>16800</TLNomCode> <!-- Bank Account Nominal -->
<TLCredit>1200</TLCredit>
</NomLine>
<NomLine>
<TLNomCode>31100</TLNomCode>
<TLDebit>500</TLDebit>
<TLDetails>Goods with VAT at standard rate</TLDetails> <!-- Text 60 - Details -->
<TLTaxType>1</TLTaxType> <!-- Integer - Tax type, which selects Input or Output Nominal Code -->
<!-- Values:0,N/A,1,Input Goods,2,Input Tax,3,Output Goods,4,Output Tax-->
<TLTaxCode>1</TLTaxCode> <!-- Integer - Tax Code. Make sure the format of the cell is “General” else search may not work properly -->
<!-- Values:List as defined in Sage 200. 0=0% Exempt,1=Standard Rate,2=Zero Rated,4=EC Zero SL,5=EC Service SL,6=EC Service PL,7=EC Zero PL,8=EC Std PL etc.-->
</NomLine>
<NomLine>
<TLNomCode>31100/SCO/ADM</TLNomCode>
<TLDebit>500</TLDebit>
<TLDetails>Goods with VAT at standard rate</TLDetails> <!-- Text 60 - Details -->
<TLTaxType>1</TLTaxType> <!-- Integer - Tax type, which selects Input or Output Nominal Code -->
<!-- Values:0,N/A,1,Input Goods,2,Input Tax,3,Output Goods,4,Output Tax-->
<TLTaxCode>1</TLTaxCode> <!-- Integer - Tax Code. Make sure the format of the cell is “General” else search may not work properly -->
<!-- Values:List as defined in Sage 200. 0=0% Exempt,1=Standard Rate,2=Zero Rated,4=EC Zero SL,5=EC Service SL,6=EC Service PL,7=EC Zero PL,8=EC Std PL etc.-->
</NomLine>
</NomHeader>
</sage200Data>
Example – 230 Nominal Journal Recuring.xml
<?xml version="1.0" ?>
<sage200Data>
<settings>
<companyCode>DEMO03</companyCode>
<mappings>
</mappings>
</settings>
<NomHeader>
<!-- ===== Header ==== -->
<THJournalType>REC</THJournalType> <!-- Text 3 - Journal Type NOM, BAT, REC or REV only -->
<!-- Values:NOM,Normal Journal,REV,Reversing Journal,REC,Recurring Journal-->
<THDate>2017-02-20</THDate> <!-- Date - Overide Heading Date, thus causing a new transaction on change -->
<THRecDates1>2017-03-20</THRecDates1> <!-- Date - Recuring date, if transaction type 2,Accrual Journal -->
<THRecDates2>2017-04-20</THRecDates2>
<THRecDates3>2017-05-20</THRecDates3>
<THRecDates4>2017-06-20</THRecDates4>
<THRef>A Recuring Journal</THRef> <!-- Text 30 - Overide Heading Ref, thus causing a new transaction on change -->
<!-- Sage API 200 post three line Recuring Nominal Journal user either
<TLAmount> or <TLDebit> and <TLCredit>
to define the amounts which must balance -->
<NomLine>
<TLDetails>Optional:Set the description on this line</TLDetails> <!-- Text 60 - Details -->
<TLExterRef>Optional:And an External ref</TLExterRef> <!-- Text 30 - External Referance -->
<TLNomCode>31100/LON/VAL</TLNomCode>
<TLAmount>-100</TLAmount>
</NomLine>
<NomLine>
<TLNomCode>31100/LON/ADM</TLNomCode>
<TLAmount>50</TLAmount>
</NomLine>
<NomLine>
<TLNomCode>31100/SCO/ADM</TLNomCode>
<TLAmount>50</TLAmount>
</NomLine>
</NomHeader>
</sage200Data>
Example – 240 Nominal Journal Reversing.xml
<?xml version="1.0" ?>
<sage200Data>
<settings>
<companyCode>DEMO03</companyCode>
<mappings>
</mappings>
</settings>
<NomHeader>
<!-- ===== Header ==== -->
<THJournalType>REV</THJournalType> <!-- Text 3 - Journal Type NOM, BAT, REC or REV only -->
<!-- Values:NOM,Normal Journal,REV,Reversing Journal,REC,Recurring Journal-->
<THDate>2017-02-20</THDate> <!-- Date - Overide Heading Date, thus causing a new transaction on change -->
<THReversalDate>2020-03-20</THReversalDate> <!-- Date - Reversal date, if transaction type 2,Accrual Journal -->
<THRef>A Reversing Journal</THRef> <!-- Text 30 - Overide Heading Ref, thus causing a new transaction on change -->
<!-- Sage API 200 post three line Reversing Nominal Journal user either
<TLAmount> or <TLDebit> and <TLCredit>
to define the amounts which must balance -->
<NomLine>
<TLDetails>Optional:Set the description on this line</TLDetails> <!-- Text 60 - Details -->
<TLExterRef>Optional:And an External ref</TLExterRef> <!-- Text 30 - External Referance -->
<TLNomCode>31100/LON/VAL</TLNomCode>
<TLAmount>-100</TLAmount>
</NomLine>
<NomLine>
<TLNomCode>31100/LON/ADM</TLNomCode>
<TLAmount>50</TLAmount>
</NomLine>
<NomLine>
<TLNomCode>31100/SCO/ADM</TLNomCode>
<TLAmount>50</TLAmount>
</NomLine>
</NomHeader>
</sage200Data>

XML API Tags for Sage 200 Entity 'NominalHeader'
|
Tag Name |
Data Type |
Description |
|
Header: |
||
|
THRef |
Text 30 Head |
Text to use if TLDetails is blank. Change causes a new transaction on change if in lines |
|
THJournalType^ |
Text 3 Head |
Type of Journal. Default Pending Journal |
|
THDate |
Date Head |
Overide Heading Date, thus causing a new transaction on change |
|
Extra Dates: |
||
|
THReversalDate |
Date Head |
Reversal date, if REV,Accrual Journal |
|
THRecDates1 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates2 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates3 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates4 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates5 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates6 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates7 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates8 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates9 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates10 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates11 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
THRecDates12 |
Date Head |
Reversal date, if transaction type 2,Accrual Journal |
|
Tax Defaults: |
||
|
THTaxType^ |
Text 1 Head |
Default Tax type, which selects Input or Output Nominal Code |
|
THTaxCode^ |
Text 1 Head |
Default Tax Code. Make sure the format of the cell is “General” else search may not work properly |
|
Important Fields: |
||
|
Nominal Lines: |
||
|
TLNomCode^ |
Text 16 |
Nominal Code. This can be simple nominal code and express the Cost Centre and Department in TLCostCentre /TLDepartment, or entered in the format NominalCode-CostCenter-Department, as provided by the in cell search function. |
|
TLDetails^ |
Text 60 |
Details. If Blank will use THRef in header |
|
TLDebit^ |
Currency |
Debit. Posttrans will ignore line if zero value in TLDebit and TLCredit |
|
TLCredit^ |
Currency |
Credit. This column is provided to allow the Department to be expressed in a separate cell. |
|
TLAmount^ |
Currency |
Amount (used instead of Debit and Credit, thus +/- values in one column). Posttrans will ignore line if Zero Value in TLDebit and TLCredit |
|
TLTaxType^ |
Integer |
Tax type, which selects Input or Output Nominal Code |
|
TLTaxCode^ |
Integer |
Tax Code. Make sure the format of the cell is “General” else search may not work properly |
|
ObjectStore Mappings Lines: |
||
|
THUser1 |
Text 30 Head |
10 user defined fields which can be mapped to Sage ObjectStore Builder customisations |
|
THUser2 |
Text 30 Head |
User2 |
|
THUser3 |
Text 30 Head |
User3 |
|
THUser4 |
Text 30 Head |
User4 |
|
THUser5 |
Text 30 Head |
User5 |
|
THUser6 |
Text 30 Head |
User6 |
|
THUser7 |
Text 30 Head |
User7 |
|
THUser8 |
Text 30 Head |
User8 |
|
THUser9 |
Text 30 Head |
User9 |
|
THUser10 |
Text 30 Head |
User10 |
|
TLUser1 |
Text 30 |
10 user defined fields which can be mapped to Sage ObjectStore Builder customisations |
|
TLUser2 |
Text 30 |
User2 |
|
TLUser3 |
Text 30 |
User3 |
|
TLUser4 |
Text 30 |
User4 |
|
TLUser5 |
Text 30 |
User5 |
|
TLUser6 |
Text 30 |
User6 |
|
TLUser7 |
Text 30 |
User7 |
|
TLUser8 |
Text 30 |
User8 |
|
TLUser9 |
Text 30 |
User9 |
|
TLUser10 |
Text 30 |
User10 |
Req = Field is required EOF = End of file, Stop when no more values
Head A header tag can be used in header section, before row 30, of the transaction template. Or in the rows data of data, below row 30, of the template like a traditional CSV importer.
With data type Yes/No fields, if cell starts with 'y' or 'Y' is taken as TRUE
Where ^ denotes a In Cell Code Search, delete ^ at end of tag, to turn off code search
All Text fields are trimmed (spaces before) by default. Add ' to the end of the tag name to stop this.




