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: -
- BR - Bank Receipt
- BP - Bank Payment
- JD / JC - Bank Transfer
- JD / JC - Journal Debit & Journal Credit
- SI - Sales Invoice
- SC - Sales Credit Note
- SA - Sales Receipt on Account (or SR - Sales Receipt)
- SP - Sales Payment
- PI - Purchase Invoice
- PC - Purchase Credit Note
- PA - Purchase Payment on Account (or PP - Purchase Payment)
- PR - Purchase Receipt
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>
Document Links
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>