Skip to content

Sage 50 UK Customer XML

The customers task allows you to export new (customers created since the last time the task ran), modified (both new and updated customers since the last time the task ran), or all customers. You can also create new and update existing customers in Sage 50. We recommend that the Id field be populated by the unique id of the customers from the external system, Zynk uses this field to track customers already imported to prevent duplicates being created in Sage. By default Zynk will use the account reference to lookup customer records in Sage 50, but you can also configured other lookup fields e.g. email address or postcode.

Tasks

XML

Any Sage 50 fields not documented below are not supported with our imports / exports. Examples of where in the XML the fields should appear are shown in the samples below.

Minimal customer file

<?xml version="1.0"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Customers>
    <Customer>
      <Id>123</Id>
      <AccountReference>JOE001</AccountReference>
      <CompanyName>Zynk Software Limited</CompanyName>
    </Customer>
  </Customers>
</Company>

Sample customer file

<?xml version="1.0"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Customers>
    <Customer>
      <Id>123</Id>
      <AccountReference>JOE001</AccountReference>
      <CompanyName>Zynk Software Limited</CompanyName>
      <CustomerInvoiceAddress>
        <Title>Mr</Title>
        <Forename>Joe</Forename>
        <Surname>Harrison</Surname>
        <Company>Zynk Software Limited</Company>
        <Address1>Nelson House, Fleming Business Centre</Address1>
        <Address2>Jesmond</Address2>
        <Town>Newcastle upon Tyne</Town>
        <Postcode>NE2 3AE</Postcode>
        <County>Tyne and Wear</County>
        <Country>GB</Country>
        <Telephone>0845 123 2920</Telephone>
        <Email>[email protected]</Email>
        <Website>www.zynk.com</Website>
      </CustomerInvoiceAddress>
      <CustomerDeliveryAddress>
        <Title>Mr</Title>
        <Forename>Joe</Forename>
        <Surname>Harrison</Surname>
        <Company>Zynk Software Limited</Company>
        <Address1>Nelson House, Fleming Business Centre</Address1>
        <Address2>Jesmond</Address2>
        <Town>Newcastle upon Tyne</Town>
        <Postcode>NE2 3AE</Postcode>
        <County>Tyne and Wear</County>
        <Country>GB</Country>
        <Telephone>0845 123 2920</Telephone>
      </CustomerDeliveryAddress>
      <Analysis1>North East</Analysis1>
      <NominalCode>4000</NominalCode>
      <DepartmentInfo>
        <Reference>4</Reference>
        <Name>Admin</Name>
      </DepartmentInfo>
      <OverrideNominalCode xsi:nil="true" />
      <TaxCode>4</TaxCode>
      <Currency>GBP</Currency>
      <TermsAgreed>true</TermsAgreed>
      <AccountOnHold>false</AccountOnHold>
      <RestrictMailing>true</RestrictMailing>
    </Customer>
  </Customers>
</Company>

In each of the following sections most of the XML has been omitted to make the samples easier to read. The whole structure of the Company schema is used below as a reference of where fields should be in the object model.

Customer Records - Details

The most critical customer information is contained on the details tab, covering account detail, registered address, contact information as well as email settings and addresses. Note that depending on your configuration at the Task Settings level in Zynk you do not need to specify an account reference for every customer as you can create them automatically through Zynk.

Sage Field XML Field Example Field Type Field Length Input Notes
- Id 123 string 255 Optional
A/C AccountReference JOE001 string 8 Dependant Required if the Auto Generate References setting is not enabled in the task's settings.
Company Name CompanyName Zynk Software Limited string 60 Dependant Required unless a Title, Forename, Middlename or Surname is provided. If a value is not provided, it will be set to the Title, Forename, Middlename, Surname and Suffix.
Street 1 Address1 Nelson House, Fleming Business Centre string 60 Optional
Street 2 Address2 Jesmond string 60 Optional
Town Town Newcastle upon Tyne string 60 Optional
County County Tyne and Wear string 60 Optional
Post Code Postcode NE2 3AE string 60 Optional
Country Country GB string 2 Optional
VAT Number VatNumber 796 5763 59 string 30 Optional
Contact Name FullName Mr Joe E Harrison Jr. string 30 Optional This field is not set directly in the XML, but is built up of Title, Forename, Middlename, Surname and Suffix.
- Title Mr string - Optional
- Forename Joe string - Optional
- Middlename E string - Optional
- Surname Harrison string - Optional
- Suffix Jr. string - Optional
Trade Contact TradeContact Joe Harrison string 30 Optional
Telephone Telephone 0845 123 2920 string 30 Optional
Telephone 2 Mobile 0777 777 7777 string 30 Optional
Fax Fax 0845 123 2921 string 30 Optional
Website Website www.zynk.com string 255 Optional
Email Email [email protected] string 255 Optional
Email 2 Email2 [email protected] string 255 Optional
Email 3 Email3 [email protected] string 255 Optional
Email 4 Email4 [email protected] string 255 Optional
Email 5 Email5 [email protected] string 255 Optional
Email 6 Email6 [email protected] string 255 Optional
Electronic Letters SendElectronicLetter true bool - Optional
Electronic Invoices SendElectronicInvoice true bool - Optional
<?xml version="1.0"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Customers>
    <Customer>
      <Id>123</Id>
      <AccountReference>JOE001</AccountReference>
      <CompanyName>Zynk Software Limited</CompanyName>
      <CustomerInvoiceAddress>
        <Title>Mr</Title>
        <Forename>Joe</Forename>
        <Middlename>E</Middlename>
        <Surname>Harrison</Surname>
        <Suffix>Jr.</Suffix>
        <Company>Zynk Software Limited</Company>
        <Address1>Nelson House, Fleming Business Centre</Address1>
        <Address2>Jesmond</Address2>
        <Town>Newcastle upon Tyne</Town>
        <Postcode>NE2 3AE</Postcode>
        <County>Tyne and Wear</County>
        <Country>GB</Country>
        <Telephone>0845 123 2920</Telephone>
        <Fax>0845 123 2921</Fax>
        <Mobile>0777 777 7777</Mobile>
        <Email>[email protected]</Email>
        <Email2>[email protected]</Email2>
        <Email3>[email protected]</Email3>
        <Email4>[email protected]</Email4>
        <Email5>[email protected]</Email5>
        <Email6>[email protected]</Email6>
        <Website>www.zynk.com</Website>
        <TradeContact>Joe Harrison</TradeContact>
      </CustomerInvoiceAddress>
      <VatNumber>796 5763 59</VatNumber>
      <SendElectronicInvoice>true</SendElectronicInvoice>
      <SendElectronicLetter>true</SendElectronicLetter>
    </Customer>
  </Customers>
</Company>

Defaults

The below information will appear on the Defaults tab of the Customer record in Sage 50. This is all optional information when building your Customer Import XML, none of the below fields are mandatory when importing a Customer.

Sage Field XML Field Example Field Type Field Length Input Notes
Analysis 1 Analysis1 North East string 30 Optional
Analysis 2 Analysis2 Support string 30 Optional
Analysis 3 Analysis3 01/01/2014 string 30 Optional
Analysis 4 Analysis4 England string 30 Optional
Analysis 5 Analysis5 Joe Bloggs string 30 Optional
Analysis 6 Analysis6 Jane Doe string 30 Optional
Discount % FixedDiscount 10 double - Optional
Additional Discount DiscountType DiscountTable enum - Optional This field value can be either NoDiscount, InvoiceValue or DiscountTable.
- DiscountTable A string 1 Dependant If DiscountType is set to DiscountTable, a value is required for this field.
Price List PriceListReference TRADEA string 8 Optional
Default Nominal Code NominalCode 4000 string 8 Optional If not specified when creating a customer, the nominal code will be set to the default configured in Sage.
Use Nominal Code OverrideNominalCode false bool - Optional
Default Tax Code TaxCode 1 int 2 Optional If not specified when creating a customer, the tax code will be set to the default configured in Sage.
Use Tax Code OverrideTaxCode false bool - Optional
Currency Currency GBP string 2 Optional This field can only be set when creating a new customer. If not specified, the currency will be set to the default configured in Sage.
Department DepartmentInfo/Reference 4 int 3 Optional If not specified when creating a customer, the department will be set to the default configured in Sage.
Department DepartmentInfo/Name Admin string 60 Optional If not specified when creating a customer, the department will be set to the default configured in Sage.
<?xml version="1.0"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Customers>
    <Customer>
      <Analysis1>North East</Analysis1>
      <Analysis2>Support</Analysis2>
      <Analysis3>01/01/2013</Analysis3>
      <Analysis4>England</Analysis4>
      <Analysis5>Joe Bloggs</Analysis5>
      <Analysis6>Jane Doe</Analysis6>
      <FixedDiscount>10</FixedDiscount>
      <DiscountType>DiscountTable</DiscountType>
      <DiscountTable>A</DiscountTable>
      <PriceListReference>TRADEA</PriceListReference>
      <NominalCode>4000</NominalCode>
      <OverrideNominalCode>false</OverrideNominalCode>
      <TaxCode>1</TaxCode>
      <OverrideTaxCode>false</OverrideTaxCode>
      <Currency>GBP</Currency>
      <DepartmentInfo>
        <Reference>4</Reference>
        <Name>Admin</Name>
      </DepartmentInfo>
    </Customer>
  </Customers>
</Company>

Credit Control

When importing a Customer record you can also set fields on the Credit Control tab like Account Status, Terms Agreed and many more.

Sage Field XML Field Example Field Type Field Length Input
Credit Limit CreditLimit 1000 double - Optional
Settlement Due SettlementDays 30 int 2 Optional
Sett. Discount SettlementDiscount 2.5 double - Optional
Payment Due PaymentDays 30 double - Optional
Trading Terms Terms 30 Days Strictly Net string 30 Optional
Account Status AccountStatus 0 int 2 Optional
DUNS Number DUNSNumber 123456789 string 9 Optional
Terms Agreed TermsAgreed true bool - Optional
Restrict Mailing RestrictMailing true bool - Optional
Account On Hold AccountOnHold false bool - Optional
A/C Opened AccountOpened* 2014-01-01T00:00:00 datetime - Optional
Memo Memo Testing account string - Optional
  • AccountOpened* - This field is only set when creating a new customer. If this field is not provided it will default to the current date.
<?xml version="1.0"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Customers>
    <Customer>
      <CreditLimit>1000</CreditLimit>
      <SettlementDays>30</SettlementDays>
      <SettlementDiscount>2.5</SettlementDiscount>
      <PaymentDays>30</PaymentDays>
      <Terms>30 Days Strictly Net</Terms>
      <AccountStatus>0</AccountStatus>
      <DUNSNumber>123456789</DUNSNumber>
      <TermsAgreed>true</TermsAgreed>
      <AccountOnHold>false</AccountOnHold>
      <Memo>Testing account</Memo>
      <RestrictMailing>true</RestrictMailing>
   </Customer>
 </Customers>
</Company>

Bank

Bank information on the Customer record can also be set via XML, see the node information below.

Sage Field XML Field Example Field Type Field Length Input
Bank Name BankName - string 60 Optional
Street 1 Address1 - string 60 Optional
Street 2 Address2 - string 60 Optional
Town Town - string 60 Optional
County County - string 60 Optional
Post Code Postcode - string 60 Optional
Account Name AccountName - string 60 Optional
Sort Code SortCode - string 10 Optional
Account Number AccountNumber - string 60 Optional
BACS Ref BACSRef - string 60 Optional
IBAN IBAN - string 60 Optional
BIC/Swift BICSwift - string 60 Optional
Roll Number RollNumber - string 60 Optional
Additional Ref 1 AdditionalRef1 - string 60 Optional
Additional Ref 2 AdditionalRef2 - string 60 Optional
Additional Ref 3 AdditionalRef3 - string 60 Optional
Online Receipts OnlineReceipts false bool - Optional
<?xml version="1.0"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Customers>
    <Customer>
      <Banks>
        <Bank>
          <BankName />
          <Address1 />
          <Address2 />
          <Town />
          <County />
          <Postcode />
          <AccountName />
          <SortCode />
          <AccountNumber />
          <BACSRef />
          <IBAN />
          <BICSwift />
          <RollNumber />
          <AdditionalRef1 />
          <AdditionalRef2 />
          <AdditionalRef3 />
          <OnlineReceipts>false</OnlineReceipts>
        </Bank>
      </Banks>
    </Customer>
  </Customers>
</Company>

EORI Number and Incoterms

Sage 50 Version 27.2 introduced the ability to include EORI Numbers and Incoterms on Customer and Supplier records. The following fields are only available when using Sage 27.2 or above and Zynk 2021.6.2 or above

Sage Field XML Field Example Field Type Field Length Input
EORI Number EoriNumber - string 17 Optional
Incoterms Incoterms - string* --- Optional
<?xml version="1.0"?>
<Company
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Customers>
    <Customer>
      <EoriNumber>GB205672212000</EoriNumber>
      <Incoterms>ExWorks2010</Incoterms>
    </Customer>
  </Customers>
</Company>

*Available Incoterms:

Sage Option XML Option
EXW - Ex Works [2010] ExWorks2010
EXW - Ex Works [2020] ExWorks2020
FCA - Free Carrier [2010] FreeCarrier2010
FCA - Free Carrier [2020] FreeCarrier2020
FAS - Free Alongside Ship [2010] FreeAlongsideShip2010
FAS - Free Alongside Ship [2020] FreeAlongsideShip2020
FOB - Free On Board [2010] FreeOnBoard2010
FOB - Free On Board [2020] FreeOnBoard2020
CFR - Cost and Freight [2010] CostAndFreight2010
CFR - Cost and Freight [2020] CostAndFreight2020
CIF - Cost, Insurance and Freight [2010] CostInsuranceAndFreight2010
CIF - Cost, Insurance and Freight [2020] CostInsuranceAndFreight2020
CPT - Carriage Paid to [2010] CarriagePaidTo2010
CPT - Carriage Paid to [2020] CarriagePaidTo2020
CIP - Carriage and Insurance Paid to [2010] CarriageAndInsurancePaidTo2010
CIP - Carriage and Insurance Paid to [2020] CarriageAndInsurancePaidTo2020
DAT - Delivered at Terminal [2010] DeliveredAtTerminal2010
DPU - Delivered at Place Unloaded [2020] DeliveredAtPlaceUnloaded2020
DAP - Delivered at Place [2010] DeliveredAtPlace2010
DAP - Delivered at Place [2020] DeliveredAtPlace2020
DDP - Delivery Duty Paid [2010] DeliveredDutyPaid2010
DDP - Delivery Duty Paid [2020] DeliveredDutyPaid2020