Batch Processing Xml Specification

The Batch Upload File XML Specification


The Batch Upload File XML Specification

 
This section describes the contents of the batch file uploadable by using iVeriClient FileTransfer with Command “Batch” (refer to the iVeri Client Developers Guide documentation (available from the iVeri website) for further details of this command). This file can also be uploaded from the iVeri BackOffice (refer to the “iVeri BackOffice User Guide” (available from the iVeri website) for more details).

The Batch Upload File has the following XML tags (see the iVeriClient V_XML documentation for full details on these tags) :

<V_XML Version="2.0" Direction="Request">

            <Batch Version="2.0" Command="BatchUpload" Count="" Amount="">

                        <Date></Date>

                        <Filename></Filename>

                        <Description></Description>

                        <BatchItem ApplicationID="" Mode="" Command="">

                                    <CCNumber></CCNumber>

                                    <Track2></Track2>

                                    <CardSecurityCode></CardSecurityCode>

                                    <StartDate></StartDate>

                                    <ExpiryDate></ExpiryDate>

                                    <BudgetPeriod></BudgetPeriod>

                                    <AuthorisationCode></AuthorisationCode>

                                    <Terminal></Terminal>

                                    <Amount></Amount>

                                    <Currency></Currency>

                                    <MerchantReference></MerchantReference>

                                    <PurchaseDate></PurchaseDate>

                                    <PurchaseTime></PurchaseTime>

                                    <TransactionIndex></TransactionIndex>

                                    <OriginalMerchantReference></OriginalMerchantReference>

                        </BatchItem>

            </Batch>

</V_XML>


 
Tag multiplicity:

  • The <Batch> element can occur multiple times
  • The <BatchItem> element can occur multiple times under a <Batch> element


<Batch> attributes

TAG NAME

 

DESCRIPTION

Data Type

Length

Format / Range

Amount

The sum of the Amount sub-element values of all the  BatchItem sub-elements

Numeric

<=12

 

Count

The number of BatchItem sub-elements

Numeric

<=6

 


<Batch> sub-elements

TAG NAME

 

DESCRIPTION

Data Type

Length

Format / Range

Date

The date when the batch was created (in which case the batch will be processed on the upload date) or a future date on which the batch should be processed (a past or future date cannot be more than 1 calendar month from the upload date)

Numeric

8

yyyymmdd

Filename

The Filename by which the batch can be identified (must be unique for all batches uploaded for an ApplicationID)

Text

<=64

 

Description

A description for this batch

Text

 

 

BatchItem

An element for each transaction in this batch

XML element

 

 


<BatchItem> attributes

TAG NAME

 

DESCRIPTION

Data Type

Length

Format / Range

ApplicationID

Your ApplicationID allocated by iVeri (the same ApplicationID must be used for all BatchItem elements under a Batch element)

GUID

38

{00000000-0000-0000-0000-000000000000}

Mode

The Mode of the ApplicationID

Text

4

“Test”, “Live”

Command

The transaction type

Text

<=64

“Authorisation”, “AuthorisationReversal”, “Debit” (Sale), “Credit” (Refund), “RecurringDebit”


<BatchItem> sub-elements

TAG NAME

DESCRIPTION

Data Type

Length

Format / Range

PurchaseDate

A date reference for this transaction

IMPORTANT NOTE:

This date must be less than or equal to the date on which the batch will actually be processed ie. the date field in the batch sub-element above.

Numeric

8

yyyymmdd

PurchaseTime

A time reference for this transaction

Numeric

6

hhmmss

TransactionIndex

The sequence identifier of a previous transaction (allocated by iVeri) when this transaction is a follow-up (eg. refund of a sale)

GUID

38

{00000000-0000-0000-0000-000000000000}

OriginalMerchantReference

The MerchantReference of a previous transaction done with this ApplicationID when this transaction is a follow-up (redundant when TransactionIndex is specified)

Text

<=64

 

MerchantReference

Your reference for this transaction (must be unique for each BatchItem in a batch for all batches uploaded for an ApplicationID)

Text

<=64

 

Terminal

An identifier for grouping of transactions

Alpha Numeric

<=8

 

CCNumber

The card number

Numeric

<=20

 

Track2

Mag stripe field starting with “;” and ending with “?”

Text

<=40

 

CardSecurityCode

Number printed on the back of the card

Numeric

<=4

 

StartDate

The valid from date of the card

Numeric

6

mmyyyy

ExpiryDate

The expiry date of the card

Numeric

6

mmyyyy

Amount

The transaction value in the Currency minor unit (ie. no decimal point)

Numeric

<=12

 

Currency

The ISO currency code

Alpha

3

 

BudgetPeriod

The period in months if the purchase is on budget

Numeric

<=2

 

AuthorisationCode

The pre-authorisation code if one has been obtained for this transaction

Alpha Numeric

<=9

 



Introduction


Introduction

 
This document describes the XML specification of the Batch Upload File and the Batch Result File. The Batch Upload File can be uploaded either from the iVeri BackOffice or by using the iVeriClient software (the latter applies to Enterprise merchants only). The Batch Result File can be downloaded through these same mechanisms.

Note that the Batch Result File is available for download only after processing of the batch has completed. Note that the Reconciliation Status of the individual transactions might not yet be updated, since the reconciliation process only occur the day after processing.

The XML specification of other downloadable XML files is described in the “iVeri Download Files XML Specification” document available from the iVeri website.


The Batch Result File XML Specification


The Batch Result File XML Specification

 
This section describes the contents of the batch file downloadable by using iVeriClient FileTransfer with Command “Batch” and the “XML” switch set to true (refer to the iVeri Client Developers Guide documentation (available from the iVeri website) for further details of this command). This file can also be downloaded from the iVeri BackOffice (refer to the “iVeri BackOffice User Guide” (available from the iVeri website) for more details).

The Batch Result File has the following XML tags :

<V_XML Version="2.0" Direction="Response">
<Batch Command="BatchDownload" Count="" Amount="">
<Date></Date>
<Filename></Filename>
<BatchItem ApplicationID="" Mode="" Command="" RequestID="">
<Terminal></Terminal>
<MerchantReference></MerchantReference>
<ResultStatusCode></ResultStatusCode>
<PurchaseDate></PurchaseDate>
<PurchaseTime></PurchaseTime>
<Amount></Amount>
<CCNumber></CCNumber>
<AuthorisationCode></AuthorisationCode>
<TransactionIndex></TransactionIndex>
<Acquirer></Acquirer>
<AcquirerReference></AcquirerReference>
<AcquirerDate></AcquirerDate>
<AcquirerTime></AcquirerTime>
<ReconStatus></ReconStatus>
<ReconReference></ReconReference>
</BatchItem>
</Batch>
</V_XML>

 
Tag multiplicity:

  • The <Batch> element can occur only once
  • The <BatchItem> element can occur multiple times under the <Batch> element


<Batch> attributes

TAG NAME

 

DESCRIPTION

Data Type

Length

Format / Range

Amount

The sum of the Amount sub-element values of all the  BatchItem sub-elements

Numeric

<=12

 

Count

The number of BatchItem sub-elements

Numeric

<=6

 


<Batch> sub-elements

TAG NAME

 

DESCRIPTION

Data Type

Length

Format / Range

Date

The Date for the corresponding batch specified in the Batch Upload File

Numeric

8

yyyymmdd

Filename

The Filename for the corresponding batch specified in the Batch Upload File

Text

<=64

 

BatchItem

An element for each transaction in this batch

XML element

 

 


<BatchItem> attributes

TAG NAME

 

DESCRIPTION

Data Type

Length

Format / Range

ApplicationID

The ApplicationID specified for the corresponding transaction in the Batch Upload File (all BatchItem elements under a Batch element have the same ApplicationID)

GUID

38

{00000000-0000-0000-0000-000000000000}

Mode

The Mode of the ApplicationID

Text

4

“Test”, “Live”

Command

The transaction type

Text

<=64

“Authorisation”, “AuthorisationReversal”, “Debit” (Sale), “Credit” (Refund)

RequestID

A unique identifier for the transaction allocated by iVeri

GUID

38

{00000000-0000-0000-0000-000000000000}


<BatchItem> sub-elements

TAG NAME

DESCRIPTION

Data Type

Length

Format / Range

PurchaseDate

The transaction time reference (if any) specified in the request

Numeric

8

yyyymmdd

PurchaseTime

The transaction time reference (if any) specified in the request

Numeric

6

hhmmss

TransactionIndex

The sequence identifier of this transaction allocated by iVeri to be used with follow-up transactions (eg. refund of a sale)

GUID

38

{00000000-0000-0000-0000-000000000000}

MerchantReference

The general purpose reference for this transaction (normally an invoice number) specified in the request

Text

<=64

 

Terminal

An identifier for grouping of transactions

Alpha Numeric

<=8

 

CCNumber

The card number specified in the request

Numeric

<=20

 

Amount

The transaction value in the Currency minor unit (ie. no decimal point)

Numeric

<=12

 

AuthorisationCode

The authorisation code (if any) either specified in the request or responded by the Acquirer

Alpha Numeric

<=9

 

Acquirer

The name of the acquirer which processed the transaction

Text

<=32

 

AcquirerDate

The transaction processing date responded by the Acquirer

Numeric

8

yyyyymmdd

AcquirerTime

The transaction processing time responded by the Acquirer

Numeric

6

hhmmss

AcquirerReference

Consists of a Cycle and Trace with at least the Trace known to the Acquirer

Text

<=64

Cycle:Trace

ReconReference

A reference, either extracted from the MerchantReference or generated by iVeri, which can be used when reconciling with some of the acquirers

Numeric

<=8

 

ReconStatus

The result of the reconciliation process within the iVeri system

Integer

 

See Appendix A

ResultStatusCode

The result of processing this transaction - the result code multiplied with the result status. See Appendix A for details.

XML element

 

 



Batch Processing Xml Specification


Batch Processing Xml Specification


Preface


Preface

 
Changes included in this document include :

  1. Original Document.
  2. Added Recurring payments transaction type.


Field and Reply Codes


Field and Reply Codes

 
Result Status Code

Result Status Code

ResultDescription

0

N/A (Approved)

-1

Timeout waiting for response. Try again

-3

Hot card

-4

Denied

-5

Please call

-6

Card Address Failure

-7

Card Security Code Failure

-8

Card Type not accepted

-9

Unable to process the transaction

-11

Invalid Amount

-12

Invalid Budget Period

-14

Invalid Card Number

-15

Invalid Track2

-16

Invalid Expiry Date/Card Period

-18

Invalid Authorisation code

-255

Unknown Error


Recon Status

 

VALUE

 

DESCRIPTION

"-1"

Unreconciled - The reconciliation process for this transaction has not taken place yet.

"0"

Reconciliation has taken place and the result code accurately depicts the status of the transaction

"1"

Reconciliation has taken place and the transaction could not be found.

"2"

Reconciliation has taken place and the transactions details either in amount, cardholder, result code, cycle number, trace number does not match.



Recurring Transaction Processing


Recurring Transaction Processing

 
Recurring transactions are transactions that are processed by the same merchant to the same cardholder for the same services on an ongoing basis and are typically insurance, utility or telecommunications charges. With the advent of PCI the security and storage of sensitive card data (PAN, Expiry etc) requires that merchants take far more care of the data and perform annual audits of their IT infrastructure. The iVeri RecurringDebit transaction is designed to alleviate some effort that merchants have to put into place in order to conform to PCI DSS standards.

Essentially what the solution entails is that instead of the merchant storing the PAN itself, the merchant must store a transaction identifier that refers to the PAN and it is this identifier that will be required in future transactions instead of a PAN.

By way of an example and starting with a merchant taking on a new customer. The first transaction that gets processed MUST use the PAN/Track2 itself since no record of this PAN for this merchant exists in the iVeri Gateway's database at this stage. The merchants' reference for this transaction is, for example, “MR01” and could be processed using any of the iVeri products such as Link, Lite, Enterprise etc and is valid for both card not present and card present environments.

Once this transaction has been processed the merchant would use this reference or the TransactionIndex received in the response in the future to indicate the PAN on which the future transactions should be processed; thus relieving the merchant of the responsibility of storing the actual PAN data to use in future transactions.

When the merchant wants to charge the same customer in the future the merchant would submit the following data in the batch file

  • The dotted-out PAN received in the response of the original transaction or calculated by the merchant. The formula for deriving the dotted-out PAN is to take the first four and last four digits and as many '.' as required to maintain the original length of the PAN. E.g. a PAN of “4242424242424242” dotted out would be “4242........4242” (16 digits)and a PAN of “361544444446349” would be “3615........6349” (15 digits).
  • A command of “RecurringDebit”.
  • The Expiry Date of the card that should be used for the transaction. The merchant should keep the expiry date up to date in the merchants database.
  •  The reference only retrieves the PAN from the iVeri Gateway database, not the Expiry Date, so this piece of information must be submitted in the batch.
  • A new MerchantReference for this transaction which in our example is going to be “MR21”
  • The old MerchantReference must be submitted in the “OriginalMerchantReference” field OR the TransactionIndex received in the response to the original transaction should be put into the “TransactionIndex” tag. The value in our example if using merchantreference would be “MR01”.
  • All other fields in the batch remain valid and are used as for a non recurring transaction.


The next time that the merchant wants to charge the same customer the merchant should use a new MerchantReference of “MR31” and the OriginalMerchantReference should contain a value of “MR21” (or the TransactionIndex received in the response to transaction “MR21”) and so on into the future. The reason for this “daisy chaining” of reference fields is to limit the time within which a merchantreference can be be used to 6 months. If the merchant refers to an identifier of a transaction which was processed over 6 months ago, the PAN relating to that transaction will not be able to be determined. Merchants must ALWAYS use the identifier for the PAN that they wish to use for the transactions that is the most recent on their records.