Skip to content

Sage 50 UK Transaction XML

Zynk supports importing and exporting most transaction types supported in Sage 50 UK including sales, purchase, bank and journals.

The same tasks and object model are used for all transaction types, however certain fields are only valid for certain types. See below for details on which fields are supported per type.

Tasks

Transaction Types

The following transaction types are supported by our tasks: -

Allocations

If the Auto Allocate Transactions setting is enabled Zynk will attempt to allocate certain transaction types during the import. Only SC, SA (or SR), PC and PA (or PP) transaction types will be used for the auto allocate routine.

Zynk will use the Reference field from our XML (Ref field in Sage) to look up the transaction to allocate to. We only support allocating to a single transaction. If a related transaction cannot be found the transaction will be left unallocated.

As there is potential for the allocation to fail Zynk will always import SR transactions as SA and PP transactions as PA so you can manually allocate in Sage if required.

If you have existing debit and credit transactions you need to allocate see the Allocating Payments in Sage 50 UK task.

Grouping

During the import certain transactions will be grouped, to end up with a single header transaction in Sage with multiple splits. For related transactions to be imported as a group they must appear sequentially in the XML file.

SI, SC, PI and PC transaction types will be grouped where the AccountReference, Reference, TransactionDate and TransactionType XML fields match. You can provide as many transactions as you need in the XML to represent the required splits.

JD and JC transaction types will be grouped where the AccountReference, Reference, SecondReference and TransactionDate XML fields match, as the two types are used together to create a single journal. You can provide as many transactions as you need in the XML to represent the required journals, as long as there is at least one of each type.

Duplicate Prevention

If the Prevent Duplicates setting is enabled Zynk will check to see if the Id provided in the XML has already been imported. If the record has already been processed it will be skipped, and output to the Fail File.

Disputes

Zynk supports updating existing transactions to control the dispute flag and reason code. Dispute codes can only be set for SI and PI transaction. The RecordOperation attribute must be Update for the dispute status to be updated.

Please note, if DisputeReason is used, the code must have already been setup in Sage -> Settings -> Configuration -> Dispute Reasons and both the DisputeCode and DisputeReason must be an exact match.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
No TransactionNumber 1 8 int Required
Disputed Disputed true - bool Required
Dispute Reason DisputeCode 1 8 int Optional
Dispute Reason DisputeReason No Reason - string Optional

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <!-- Updates transaction 1 to be in dispute with code 1 -->
    <Transaction RecordOperation="Update">
      <TransactionNumber>1</TransactionNumber>
      <Disputed>true</Disputed>
      <DisputeCode>1</DisputeCode>
      <DisputeReason>No Reason</DisputeReason>
    </Transaction>
    <!-- Removes the dispute flag from transaction 2 -->
    <Transaction RecordOperation="Update">
      <TransactionNumber>2</TransactionNumber>
      <Disputed>false</Disputed>
    </Transaction>
  </Transactions>
</Company>

Zynk supports updating existing transactions to set the related document link that can be opened from within Sage 50. The RecordOperation attribute must be Update for the document link to be updated.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
No TransactionNumber 1 8 int Required
N/A DocumentLink \SHARE\Documents\Transaction 2.pdf - string Optional

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <!-- Updates transaction 1 to set a document link -->
    <Transaction RecordOperation="Update">
      <TransactionNumber>1</TransactionNumber>
      <DocumentLink>\\SHARE\Documents\Transaction 2.pdf</DocumentLink>
    </Transaction>
    <!-- Removes the document link from transaction 2 -->
    <Transaction RecordOperation="Update">
      <TransactionNumber>2</TransactionNumber>
      <DocumentLink />
    </Transaction>
  </Transactions>
</Company>

BR - Bank Receipt

This will create a transaction against the activity of the specified bank account, the same as manually entering using Bank Accounts -> Bank Receipts in Sage.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 1 8 Int Required if needed for duplicate prevention
Type TransactionType BankReceipt - Enum Required
Bank AccountReference 1200 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Ref Reference BR1 30 String Optional
Ex.Ref PaymentReference 1 60 String Optional
N/C NominalCode 7000 4 String Required
Dept Department 1 3 Int Optional
Fund Fund 001 3 Int Optional
Project Ref ProjectRef PRJ1 8 String Optional
Details Details Bank Receipt 60 String Optional
Net NetAmount 240 8 Double Required
T/C TaxCode 9 2 Int Optional
Tax TaxAmount 0 8 Double Optional

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>1</Id>
      <TransactionType>BankReceipt</TransactionType>
      <AccountReference>1200</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <Reference>BR1</Reference>
      <PaymentReference>1</PaymentReference>
      <NominalCode>7000</NominalCode>
      <Department>1</Department>
      <Fund>001</Fund>
      <ProjectRef>PRJ1</ProjectRef>
      <Details>Bank Receipt</Details>
      <NetAmount>240</NetAmount>
      <TaxCode>9</TaxCode>
      <TaxAmount>0</TaxAmount>
    </Transaction>
  </Transactions>
</Company>

BP - Bank Payment

This will create a transaction against the activity of the specified bank account, the same as manually entering using Bank Accounts -> Bank Payments in Sage.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 2 8 Int Required if needed for duplicate prevention
Type TransactionType BankPayment - Enum Required
Bank AccountReference 1200 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Ref Reference BP1 30 String Optional
Ex.Ref PaymentReference 2 60 String Optional
N/C NominalCode 7000 4 String Required
Dept Department 1 3 Int Optional
Fund Fund 001 3 Int Optional
Project Ref ProjectRef PRJ1 8 String Optional
Code Code ProjectItem LAB1 8 String Optional
Details Details Bank Payment 60 String Optional
Net NetAmount 240 8 Double Required
T/C TaxCode 9 2 Int Optional
Tax TaxAmount 0 8 Double Optional

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>2</Id>
      <TransactionType>BankPayment</TransactionType>
      <AccountReference>1200</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <Reference>BP1</Reference>
      <PaymentReference>2</PaymentReference>
      <NominalCode>7000</NominalCode>
      <Department>1</Department>
      <Fund>001</Fund>
      <ProjectRef>PRJ1</ProjectRef>
      <ProjectItem>LAB1</ProjectItem>
      <Details>Bank Payment</Details>
      <NetAmount>240</NetAmount>
      <TaxCode>9</TaxCode>
      <TaxAmount>0</TaxAmount>
    </Transaction>
  </Transactions>
</Company>

JD / JC - Bank Transfer

This will create a set of journals to transfer balances between bank accounts, the same as manually entering using Bank Accounts -> Bank Transfer.

During the import Zynk will validate the debits and credits in the journal set balance. If there is a variance and the Journal Variance Nominal Code setting has a valid nominal an additional balancing transaction will be created, otherwise the whole set will be rejected.

If either of the bank accounts provided are not in the base currency of the company being imported into and an exchange rate is not provided Zynk will read the exchange rates configured in Sage.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 3 8 Int Required if needed for duplicate prevention
Type TransactionType BankTransfer - Enum Required
Bank FromBankAccount 1200 8 String Required
Bank ToBankAccount 1260 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Ref Reference BT1 30 String Required
Ex.Ref PaymentReference 3 60 String Optional
Dept Department 1 3 Int Optional
Fund Fund 001 3 Int Optional
Details Details Journal Debit 60 String Optional
Net PaymentAmount 100 8 Double Required
Net ReceiptAmount 150 8 Double Required
T/C TaxCode 9 2 Int Optional
Tax TaxAmount 0 8 Double Optional
Exchange rate ExchangeRate 1.5 8 Double Optional

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>3</Id>
      <TransactionType>BankTransfer</TransactionType>
      <FromBankAccount>1200</FromBankAccount>
      <ToBankAccount>1260</ToBankAccount>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <Reference>BT1</Reference>
      <PaymentReference>3</PaymentReference>
      <Department>1</Department>
      <Fund>001</Fund>
      <Details>Bank Transfer</Details>
      <PaymentAmount>100</PaymentAmount>
      <ReceiptAmount>150</ReceiptAmount>
      <TaxCode>9</TaxCode>
      <TaxAmount>0</TaxAmount>
      <ExchangeRate>1.5</ExchangeRate>
    </Transaction>
  </Transactions>
</Company>

JD / JC - Journal Debit & Journal Credit

This will create a set of journals to transfer balances between nominal codes, the same as manually entering using Nominal Codes -> Journal Entry.

During the import Zynk will validate the debits and credits in the journal set balance. If there is a variance and the Journal Variance Nominal Code setting has a valid nominal an additional balancing transaction will be created, otherwise the whole set will be rejected.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 4 8 Int Required if needed for duplicate prevention
Type TransactionType JournalDebit / JournalCredit - Enum Required
Bank AccountReference 4000 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Ref Reference JDC1 30 String Required
Ex.Ref PaymentReference 4 60 String Optional
Dept Department 1 3 Int Optional
Fund Fund 001 3 Int Optional
Details Details Journal Debit 60 String Optional
Net NetAmount 240 8 Double Required
T/C TaxCode 9 2 Int Optional
Tax TaxAmount 0 8 Double Optional

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
      <Transaction>
      <Id>4</Id>
      <TransactionType>JournalDebit</TransactionType>
      <AccountReference>4000</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <Reference>JDC1</Reference>
      <PaymentReference>4</PaymentReference>
      <Department>1</Department>
      <Fund>001</Fund>
      <Details>Journal Debit</Details>
      <NetAmount>240</NetAmount>
      <TaxCode>9</TaxCode>
      <TaxAmount>0</TaxAmount>
    </Transaction>
    <Transaction>
      <Id>5</Id>
      <TransactionType>JournalCredit</TransactionType>
      <AccountReference>4001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <Reference>JDC1</Reference>
      <PaymentReference>5</PaymentReference>
      <Department>1</Department>
      <Fund>001</Fund>
      <Details>Journal Credit</Details>
      <NetAmount>240</NetAmount>
      <TaxCode>9</TaxCode>
      <TaxAmount>0</TaxAmount>
    </Transaction>
  </Transactions>
</Company>

SI - Sales Invoice

This will create a transaction against the activity of the specified customer account, the same as manually entering using Customers -> Batch Invoice in Sage. SI transactions support grouping during the import.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 6 8 Int Required if needed for duplicate prevention
Type TransactionType SalesInvoice - Enum Required
Account AccountReference A1D001 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Due Date DueDate 2019-05-16T00:00:00 - Datetime Optional
Ref Reference SI1 30 String Optional
Ex.Ref PaymentReference 6 60 String Optional
N/C NominalCode 4000 4 String Required
Dept Department 1 3 Int Optional
Fund Fund 001 3 Int Optional
Project Ref ProjectRef PRJ1 8 String Optional
Details Details Sales Invoice 60 String Optional
Net NetAmount 100 8 Double Required
T/C TaxCode 1 2 Int Optional
Tax TaxAmount 20 8 Double Optional
Report Type* OssReportType UnionOSS - enum Dependant
Country of VAT* OssCountryOfVat FR 2 string Dependant

Report Type - Only applicable to Sage v27.2 and above, where OSS/IOSS reporting is enabled (under Tools > Activation > Enable OSS/IOSS Reporting). The following values can be specified: None, UnionOSS, NonUnionOSS, IOSS. Specifying 'None' will leave the field blank in Sage. This is the default value if OssReportType is not specified in the XML. You must use one of the other values if the transaction is using a tax code that is configured to use OSS/IOSS reporting.
Country of VAT** - Only applicable to Sage v27.2 and above, where OSS/IOSS reporting is enabled (under Tools > Activation > Enable OSS/IOSS Reporting). This field is required if OssReportType is set to UnionOSS, NonUnionOSS or IOSS. We recommend providing the two letter ISO country code, but the country name can also be provided and Zynk will try to determine the country code automatically.

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>6</Id>
      <TransactionType>SalesInvoice</TransactionType>
      <AccountReference>A1D001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <DueDate>2019-05-16T00:00:00</DueDate>
      <Reference>SI1</Reference>
      <PaymentReference>6</PaymentReference>
      <NominalCode>4000</NominalCode>
      <Department>1</Department>
      <Fund>001</Fund>
      <ProjectRef>PRJ1</ProjectRef>
      <Details>Sales Invoice</Details>
      <NetAmount>100</NetAmount>
      <TaxCode>1</TaxCode>
      <TaxAmount>20</TaxAmount>
      <OssReportType>UnionOSS</OssReportType>
      <OssCountryOfVat>FR</OssCountryOfVat>
    </Transaction>
    <Transaction>
      <Id>7</Id>
      <TransactionType>SalesInvoice</TransactionType>
      <AccountReference>A1D001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <DueDate>2019-05-16T00:00:00</DueDate>
      <Reference>SI1</Reference>
      <PaymentReference>6</PaymentReference>
      <NominalCode>4001</NominalCode>
      <Department>1</Department>
      <Fund>001</Fund>
      <ProjectRef>PRJ1</ProjectRef>
      <Details>Sales Invoice</Details>
      <NetAmount>100</NetAmount>
      <TaxCode>1</TaxCode>
      <TaxAmount>20</TaxAmount>
      <OssReportType>UnionOSS</OssReportType>
      <OssCountryOfVat>FR</OssCountryOfVat>
    </Transaction>
  </Transactions>
</Company>

SC - Sales Credit Note

This will create a transaction against the activity of the specified customer account, the same as manually entering using Customers -> Batch Credit in Sage. SC transactions support grouping during the import, and can be auto allocated.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 8 8 Int Required if needed for duplicate prevention
Type TransactionType SalesCredit - Enum Required
Account AccountReference A1D001 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Due Date DueDate 2019-05-16T00:00:00 - Datetime Optional
Ref Reference SC1 30 String Required for allocations, the Ref of the transaction to allocate to
Ex.Ref PaymentReference 8 60 String Optional
N/C NominalCode 4000 4 String Required
Dept Department 1 3 Int Optional
Fund Fund 001 3 Int Optional
Project Ref ProjectRef PRJ1 8 String Optional
Details Details Sales Credit 60 String Optional
Net NetAmount 100 8 Double Required
T/C TaxCode 1 2 Int Optional
Tax TaxAmount 20 8 Double Optional
Report Type* OssReportType UnionOSS - enum Dependant
Country of VAT* OssCountryOfVat FR 2 string Dependant

Report Type - Only applicable to Sage v27.2 and above, where OSS/IOSS reporting is enabled (under Tools > Activation > Enable OSS/IOSS Reporting). The following values can be specified: None, UnionOSS, NonUnionOSS, IOSS. Specifying 'None' will leave the field blank in Sage. This is the default value if OssReportType is not specified in the XML. You must use one of the other values if the transaction is using a tax code that is configured to use OSS/IOSS reporting.
Country of VAT** - Only applicable to Sage v27.2 and above, where OSS/IOSS reporting is enabled (under Tools > Activation > Enable OSS/IOSS Reporting). This field is required if OssReportType is set to UnionOSS, NonUnionOSS or IOSS. We recommend providing the two letter ISO country code, but the country name can also be provided and Zynk will try to determine the country code automatically.

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>8</Id>
      <TransactionType>SalesCredit</TransactionType>
      <AccountReference>A1D001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <DueDate>2019-05-16T00:00:00</DueDate>
      <Reference>SI1</Reference>
      <PaymentReference>8</PaymentReference>
      <NominalCode>4000</NominalCode>
      <Department>1</Department>
      <Fund>001</Fund>
      <ProjectRef>PRJ1</ProjectRef>
      <Details>Sales Credit</Details>
      <NetAmount>100</NetAmount>
      <TaxCode>1</TaxCode>
      <TaxAmount>20</TaxAmount>
      <OssReportType>UnionOSS</OssReportType>
      <OssCountryOfVat>FR</OssCountryOfVat>
    </Transaction>
    <Transaction>
      <Id>9</Id>
      <TransactionType>SalesCredit</TransactionType>
      <AccountReference>A1D001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <DueDate>2019-05-16T00:00:00</DueDate>
      <Reference>SI1</Reference>
      <PaymentReference>8</PaymentReference>
      <NominalCode>4001</NominalCode>
      <Department>1</Department>
      <Fund>001</Fund>
      <ProjectRef>PRJ1</ProjectRef>
      <Details>Sales Credit</Details>
      <NetAmount>100</NetAmount>
      <TaxCode>1</TaxCode>
      <TaxAmount>20</TaxAmount>
      <OssReportType>UnionOSS</OssReportType>
      <OssCountryOfVat>FR</OssCountryOfVat>
    </Transaction>
  </Transactions>
</Company>

SA - Sales Receipt on Account (or SR - Sales Receipt)

This will create a transaction against the activity of the specified customer account, the same as manually entering using Customers -> Customer Receipt in Sage. SA transactions support allocation during the import, as there is potential for the allocation to fail Zynk will always import SR transactions as SA so you can manually allocate in Sage if required.

It will depend on the settings in Sage 50, but typically the NetAmount field should be the gross value of the receipt, and use the non-vatable code T9.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 10 8 Int Required if needed for duplicate prevention
Type TransactionType SalesReceiptOnAccount - Enum Required
Account AccountReference A1D001 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Nominal / Bank BankReference 1200 8 String Required
Ref Reference SI1 30 String Required for allocations, the Ref of the transaction to allocate to
Ex.Ref PaymentReference 8 60 String Optional
Details Details Sales Receipt 60 String Optional
Net NetAmount 240 8 Double Required
T/C TaxCode 9 2 Int Optional
Tax TaxAmount 0 8 Double Optional
Report Type* OssReportType UnionOSS - enum Dependant
Country of VAT* OssCountryOfVat FR 2 string Dependant

Report Type - Only applicable to Sage v27.2 and above, where OSS/IOSS reporting is enabled (under Tools > Activation > Enable OSS/IOSS Reporting). The following values can be specified: None, UnionOSS, NonUnionOSS, IOSS. Specifying 'None' will leave the field blank in Sage. This is the default value if OssReportType is not specified in the XML. You must use one of the other values if the transaction is using a tax code that is configured to use OSS/IOSS reporting.
Country of VAT** - Only applicable to Sage v27.2 and above, where OSS/IOSS reporting is enabled (under Tools > Activation > Enable OSS/IOSS Reporting). This field is required if OssReportType is set to UnionOSS, NonUnionOSS or IOSS. We recommend providing the two letter ISO country code, but the country name can also be provided and Zynk will try to determine the country code automatically.

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>10</Id>
      <TransactionType>SalesReceiptOnAccount</TransactionType>
      <AccountReference>A1D001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <BankReference>1200</BankReference>
      <Reference>SI1</Reference>
      <PaymentReference>10</PaymentReference>
      <Details>Sales Receipt</Details>
      <NetAmount>240</NetAmount>
      <TaxRate>0</TaxRate>
      <TaxCode>9</TaxCode>
      <OssReportType>UnionOSS</OssReportType>
      <OssCountryOfVat>FR</OssCountryOfVat>
    </Transaction>
  </Transactions>
</Company>

SP - Sales Payment

This will create a transaction against the activity of the specified customer account, the same as manually entering using Customers -> Refund in Sage.

It will depend on the settings in Sage 50, but typically the NetAmount field should be the gross value of the receipt, and use the non-vatable code T9.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 11 8 Int Required if needed for duplicate prevention
Type TransactionType SalesPayment - Enum Required
Account AccountReference A1D001 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Nominal / Bank BankReference 1200 8 String Required
Ref Reference SP1 30 String Optional
Ex.Ref PaymentReference 11 60 String Optional
Details Details Sales Payment 60 String Optional
Net NetAmount 240 8 Double Required
T/C TaxCode 9 2 Int Optional
Tax TaxAmount 0 8 Double Optional
Report Type* OssReportType UnionOSS - enum Dependant
Country of VAT* OssCountryOfVat FR 2 string Dependant

Report Type - Only applicable to Sage v27.2 and above, where OSS/IOSS reporting is enabled (under Tools > Activation > Enable OSS/IOSS Reporting). The following values can be specified: None, UnionOSS, NonUnionOSS, IOSS. Specifying 'None' will leave the field blank in Sage. This is the default value if OssReportType is not specified in the XML. You must use one of the other values if the transaction is using a tax code that is configured to use OSS/IOSS reporting.
Country of VAT** - Only applicable to Sage v27.2 and above, where OSS/IOSS reporting is enabled (under Tools > Activation > Enable OSS/IOSS Reporting). This field is required if OssReportType is set to UnionOSS, NonUnionOSS or IOSS. We recommend providing the two letter ISO country code, but the country name can also be provided and Zynk will try to determine the country code automatically.

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>11</Id>
      <TransactionType>SalesPayment</TransactionType>
      <AccountReference>A1D001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <BankReference>1200</BankReference>
      <Reference>SP1</Reference>
      <PaymentReference>11</PaymentReference>
      <Details>Sales Payment</Details>
      <NetAmount>240</NetAmount>
      <TaxCode>9</TaxCode>
      <TaxAmount>0</TaxAmount>
      <OssReportType>UnionOSS</OssReportType>
      <OssCountryOfVat>FR</OssCountryOfVat>
    </Transaction>
  </Transactions>
</Company>

PI - Purchase Invoice

This will create a transaction against the activity of the specified supplier account, the same as manually entering using Suppliers -> Batch Invoice in Sage. PI transactions support grouping during the import.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 12 8 Int Required if needed for duplicate prevention
Type TransactionType PurchaseInvoice - Enum Required
Account AccountReference CON001 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Due Date DueDate 2019-05-16T00:00:00 - Datetime Optional
Ref Reference PI1 30 String Optional
Ex.Ref PaymentReference 12 60 String Optional
N/C NominalCode 5000 4 String Required
Dept Department 1 3 Int Optional
Fund Fund 001 3 Int Optional
Project Ref ProjectRef PRJ1 8 String Optional
Code Code ProjectItem LAB1 8 String Optional
Details Details Purchase Invoice 60 String Optional
Net NetAmount 100 8 Double Required
T/C TaxCode 1 2 Int Optional
Tax TaxAmount 20 8 Double Optional

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>12</Id>
      <TransactionType>PurchaseInvoice</TransactionType>
      <AccountReference>CON001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <DueDate>2019-05-16T00:00:00</DueDate>
      <Reference>PI1</Reference>
      <PaymentReference>12</PaymentReference>
      <NominalCode>5000</NominalCode>
      <Department>1</Department>
      <Fund>001</Fund>
      <ProjectRef>PRJ1</ProjectRef>
      <ProjectItem>LAB1</ProjectItem>
      <Details>Purchase Invoice</Details>
      <NetAmount>100</NetAmount>
      <TaxCode>1</TaxCode>
      <TaxAmount>20</TaxAmount>
    </Transaction>
    <Transaction>
      <Id>13</Id>
      <TransactionType>PurchaseInvoice</TransactionType>
      <AccountReference>CON001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <DueDate>2019-05-16T00:00:00</DueDate>
      <Reference>PI1</Reference>
      <PaymentReference>12</PaymentReference>
      <NominalCode>5001</NominalCode>
      <Department>1</Department>
      <Fund>001</Fund>
      <ProjectRef>PRJ1</ProjectRef>
      <ProjectItem>LAB1</ProjectItem>
      <Details>Purchase Invoice</Details>
      <NetAmount>100</NetAmount>
      <TaxCode>1</TaxCode>
      <TaxAmount>20</TaxAmount>
    </Transaction>
  </Transactions>
</Company>

PC - Purchase Credit Note

This will create a transaction against the activity of the specified supplier account, the same as manually entering using Suppliers -> Batch Credit in Sage. PC transactions support grouping during the import, and can be auto allocated.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 14 8 Int Required if needed for duplicate prevention
Type TransactionType PurchaseCredit - Enum Required
Account AccountReference CON001 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Due Date DueDate 2019-05-16T00:00:00 - Datetime Optional
Ref Reference PC1 30 String Optional
Ex.Ref PaymentReference 14 60 String Optional
N/C NominalCode 5000 4 String Required
Dept Department 1 3 Int Optional
Fund Fund 001 3 Int Optional
Project Ref ProjectRef PRJ1 8 String Optional
Code Code ProjectItem LAB1 8 String Optional
Details Details Purchase Credit 60 String Optional
Net NetAmount 100 8 Double Required
T/C TaxCode 1 2 Int Optional
Tax TaxAmount 20 8 Double Optional

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>14</Id>
      <TransactionType>PurchaseCredit</TransactionType>
      <AccountReference>CON001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <DueDate>2019-05-16T00:00:00</DueDate>
      <Reference>PC1</Reference>
      <PaymentReference>14</PaymentReference>
      <NominalCode>5000</NominalCode>
      <Department>1</Department>
      <Fund>001</Fund>
      <ProjectRef>PRJ1</ProjectRef>
      <ProjectItem>LAB1</ProjectItem>
      <Details>Purchase Credit</Details>
      <NetAmount>100</NetAmount>
      <TaxCode>1</TaxCode>
      <TaxAmount>20</TaxAmount>
    </Transaction>
    <Transaction>
      <Id>15</Id>
      <TransactionType>PurchaseCredit</TransactionType>
      <AccountReference>CON001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <DueDate>2019-05-16T00:00:00</DueDate>
      <Reference>PC1</Reference>
      <PaymentReference>14</PaymentReference>
      <NominalCode>5001</NominalCode>
      <Department>1</Department>
      <Fund>001</Fund>
      <ProjectRef>PRJ1</ProjectRef>
      <ProjectItem>LAB1</ProjectItem>
      <Details>Purchase Credit</Details>
      <NetAmount>100</NetAmount>
      <TaxCode>1</TaxCode>
      <TaxAmount>20</TaxAmount>
    </Transaction>
  </Transactions>
</Company>

PA - Purchase Payment on Account (or PP - Purchase Payment)

This will create a transaction against the activity of the specified supplier account, the same as manually entering using Suppliers -> Supplier Payment in Sage. PA transactions support allocation during the import, as there is potential for the allocation to fail Zynk will always import PP transactions as PA so you can manually allocate in Sage if required.

It will depend on the settings in Sage 50, but typically the NetAmount field should be the gross value of the receipt, and use the non-vatable code T9.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 16 8 Int Required if needed for duplicate prevention
Type TransactionType PurchasePaymentOnAccount - Enum Required
Account AccountReference CON001 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Nominal / Bank BankReference 1200 8 String Required
Ref Reference PI1 30 String Required for allocations, the Ref of the transaction to allocate to
Ex.Ref PaymentReference 16 60 String Optional
Details Details Purchase Payment 60 String Optional
Net NetAmount 240 8 Double Required
T/C TaxCode 9 2 Int Optional
Tax TaxAmount 0 8 Double Optional

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>16</Id>
      <TransactionType>PurchasePaymentOnAccount</TransactionType>
      <AccountReference>CON001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <BankReference>1200</BankReference>
      <Reference>PI1</Reference>
      <PaymentReference>16</PaymentReference>
      <Details>Purchase Payment</Details>
      <NetAmount>240</NetAmount>
      <TaxCode>9</TaxCode>
      <TaxAmount>0</TaxAmount>
    </Transaction>
  </Transactions>
</Company>

PR - Purchase Receipt

This will create a transaction against the activity of the specified supplier account, the same as manually entering using Suppliers -> Refund in Sage.

It will depend on the settings in Sage 50, but typically the NetAmount field should be the gross value of the receipt, and use the non-vatable code T9.

XML Fields

Sage Field XML Field Example Field Length Field Type Input
N/A Id 17 8 Int Required if needed for duplicate prevention
Type TransactionType PurchaseReceipt - Enum Required
Account AccountReference CON001 8 String Required
Date TransactionDate 2019-05-16T00:00:00 - Datetime Optional
Posted Date PostedDate 2019-05-16T00:00:00 - Datetime Optional
Nominal / Bank BankReference 1200 8 String Required
Ref Reference PR1 30 String Optional
Ex.Ref PaymentReference 17 60 String Optional
Details Details Purchase Receipt 60 String Optional
Net NetAmount 240 8 Double Required
T/C TaxCode 9 2 Int Optional
Tax TaxAmount 0 8 Double Optional

Sample XML

<?xml version="1.0" encoding="utf-8"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transactions>
    <Transaction>
      <Id>17</Id>
      <TransactionType>PurchaseReceipt</TransactionType>
      <AccountReference>CON001</AccountReference>
      <TransactionDate>2019-05-16T00:00:00</TransactionDate>
      <PostedDate>2019-05-16T00:00:00</PostedDate>
      <BankReference>1200</BankReference>
      <Reference>PR1</Reference>
      <PaymentReference>17</PaymentReference>
      <Details>Purchase Receipt</Details>
      <NetAmount>240</NetAmount>
      <TaxCode>9</TaxCode>
      <TaxAmount>0</TaxAmount>
    </Transaction>
  </Transactions>
</Company>