NOtes on the Offline PAYMENT XML SCHEMA

Version Control

30/06/2004

  1. Document created for Offline Payment

23/04/2009

  1. Removed capitalTax attribute from PaymentDeclaration element.

26/06/2012

Updated the following fields to allow them to support the new format registration numbers. The update involves a change to the regular expression used to determine if a number is valid.

Change Details:

Before: “[0-9]{7,8}[A-Wa-w][TWXtwx ]?”

After: “[0-9]{7,8}[A-Wa-w][A-ITWXZa-itwxz ]?”

Sample Numbers:

Existing Format: 1234567T

New Format: 1234567FA

Section / Field
Appendix A - Example / Added Example 2 with new format numbers.

Notes on Elements

This document contains all the validation rules, which must be passed to enable a successful upload onto ROS.

These include for each attribute or element:

- Correct data formats

- Maximum and minimum values

-Dependent attributes or elements – other elements that must not be null or other attributes for which values must be returned in certain circumstances.

This document should be used as an aid to schema.xsd. It details the data types and defaults for all the fields on the form.

The file consists of one OfflinePayment Element

OfflinePayment

The OfflinePayment element has the following attributes:

formversion / Numeric, required / Must be equal to “1” for this version of the file format.
Will change with each new edition of the form.
language / E or G, required / Language through which the return is being filed:
- E for English, or
- G for Irish

It consists of:

-One PaymentStaging element.

-Zero or One PaymentDeclaration elements.

-Zero or One PaymentDetails elements.

PaymentStaging

The PaymentStaging element has the following attributes.

custName / Alpha, required / The Customers
periodStartDate / Date, Required / The Period Start Date will be the start of the year for which the Payment is being made (DD/MM/YYYY) e.g. 01/01/2004
periodEndDate / Date, Required / The Period End Date will be the end of the year for which the Payment is being made (DD/MM/YYYY) e.g. 31/12/2004
registrationNum / AlphaNumeric, required / The Income Tax Registration number of the Customer (length 8 or 9). Format is 7 numeric (including leading zeros) followed by one/two characters.
taxType / Numeric / This is the Tax Type for the payment being made. Currently it will only be Income Tax i.e. 20.

PaymentDeclaration

The PaymentDeclaration element has the following attributes:

balancingAmount / Numeric, Required / The Balancing Amount due.
preliminaryTax / Numeric, Required / Preliminary Tax Amount due
totalNetAmount / Numeric, Required / Total Amount of Tax due
isOmitted / True or False, Required / True if the Statement of Net Liabilities is omitted. False if it is not.
noPayment / True or False, Required / True if there is no Payment included with the Statement Of Net Liabilities, False Otherwise.
isRefund / True or False, Required / True if the Balancing Amount is a refund, False otherwise.

PaymentDetails

The PaymentDetails element has the following attributes:

nilDeclaration / True or False, Required / True if the payment is a nil Declaration, False otherwise.
paymentAmount / Numeric, optional / Payment Amount if the customer is not making a nil declaration.
paymentDate / Numeric, Required / Payment Date

It consists of:

-One PaymentMethod element.

PaymentMethod

The PaymentMethod element has the following attributes:

cardNumber / Numeric, Optional / True if the payment is a nil Declaration, False otherwise.
expiryDate / Date, Optional / Laser Card Expiry Date. (MM/YY) e.g. 01/04.
type / Numeric, Required / Payment Type. 10, 11, 12, for RDI, Laser Card and Online Banking Respectively.

Appendix A - Example

This is an example of a correct Payment xml file:

Example 1 (Using existing Registration Number Format):

<?xml version="1.0" encoding="UTF-8"?>

<OfflinePayment formversion="1" language="E">

<PaymentStaging custName="John Doe" periodEndDate="31/12/2004"

periodStartDate="01/01/2004" registrationNum="4850504H" taxType="20"/>

<PaymentDeclaration balancingAmount="-99999999.00"

isOmitted="false" isRefund="true"

noPayment="false" preliminaryTax="99999999.00" totalNetAmount="99999999.00"/>

<PaymentDetails nilDeclaration="false" paymentAmount="600.00" paymentDate="06/07/2004">

<PaymentMethod cardNumber="6304xxxxxxxxxxxx"

expiryDate="08/04" type="11"/>

</PaymentDetails>

</OfflinePayment>

Example 2 (Using new Registration Number Format):

<?xml version="1.0" encoding="UTF-8"?>

<OfflinePayment formversion="1" language="E">

<PaymentStaging custName="John Doe" periodEndDate="31/12/2004"

periodStartDate="01/01/2004" registrationNum="1234567FA" taxType="20"/>

<PaymentDeclaration balancingAmount="-99999999.00"

isOmitted="false" isRefund="true"

noPayment="false" preliminaryTax="99999999.00" totalNetAmount="99999999.00"/>

<PaymentDetails nilDeclaration="false" paymentAmount="600.00" paymentDate="06/07/2004">

<PaymentMethod cardNumber="6304xxxxxxxxxxxx"

expiryDate="08/04" type="11"/>

</PaymentDetails>

</OfflinePayment>

1