Professional Documents
Culture Documents
WOLC & SFTP Bulk Payment File New Layout + Intermediary Bank
WOLC & SFTP Bulk Payment File New Layout + Intermediary Bank
Ref: NBK/ITD/SED/WOLC/04003
Table Of Contents
1 INTRODUCTION ................................................................................................................................................. 3
2 PURPOSE OF THIS DOCUMENT ................................................................................................................... 3
3 DEFINITIONS, ACRONYMS, AND ABBREVIATIONS ............................................................................. 3
4 PAYMENT INSTRUCTION FILE FORMAT ................................................................................................ 4
XML FILE FORMAT ................................................................................................................................................................................ 4
HASH TOTAL CALCULATION .............................................................................................................................................................. 6
NOTES.......................................................................................................................................................................................................... 7
5 XML FILE SCHEMA .......................................................................................................................................... 9
7 XML SAMPLE FILE ......................................................................................................................................... 13
8 CURRENCY CODES ......................................................................................................................................... 15
NBK/ITD/SED/WOLC/04003 2 Of 16 03/02/2015
1 Introduction
NBK Watani On-Line Corporate system (WOLC) is an ever evolving service
specifically designed to meet the challenges of NBK Customers ever changing
business needs. As such, WOLC has already taken the first steps of enabling the
integration of NBK’s and NBK Customer’s Information systems by providing
the infrastructure necessary to support future business directions into the B-B
(business to Business) transaction processing.
User – the WOLC user at the corporate client side, in particular, the
customer staff using the WOLC service to initiate bulk
payments.
NBK/ITD/SED/WOLC/04003 3 Of 16 03/02/2015
4 Payment Instruction file format
WOLC interface is supported by a XML based data file format using NBK defined
Schema and flat file format.
NBK/ITD/SED/WOLC/04003 4 Of 16 03/02/2015
VENDOR_BANK_NAME Beneficiary Bank Name 35 alphanumeric M Formatted Table
NBK/ITD/SED/WOLC/04003 5 Of 16 03/02/2015
VENDOR_PURPOSE_OF_PAY_LI Purpose of Payment 1 35 alphanumeric M
NE1
NBK/ITD/SED/WOLC/04003 6 Of 16 03/02/2015
Hash Total calculation
The following algorithm is used for calculating the hash total of a payment instruction
file.
If IBAN number is provided in the file, this takes precedence over account number to
calculate the hash total. The last 10 digits of the IBAN number will be taken for the
hash total calculation
The overall hash total of a given Payment Instruction File is the sum of individual
payments hash totals in a given Payment Instruction File.
Vendor Account and Payment Amount fields are made equal by pre-padding the
smaller field with Zeroes (Decimal point is ignored when calculating the Hash total).
Any non-digits in account number will be removed before calculation. In this case,
Vendor Account Number becomes 0008801243. Resulting numbers are multiplied by
one another (in pairs of corresponding digits) from both fields and then added up to
come up with the Hash Total.
If the amount has 1 or 2 decimal places, we make it 3 places after decimal by padding
the required number of zeroes.
NBK/ITD/SED/WOLC/04003 7 Of 16 03/02/2015
Notes:
3. There should not be any special characters or invisible characters in the XML data.
NBK/ITD/SED/WOLC/04003 8 Of 16 03/02/2015
If in specific cases the below special characters needs to be part of the file content, use
the values provided in the ‘Entity Reference’ column.
Character Reference Character Name Entity Reference
& Ampersand &
< Left angle bracket <
4. Beneficiary address line 3 should be formed as below and the delimiter between
these fields should be “/”.
City – max 14char (mandatory)
Statecode – max 2 char (mandatory only if beneficiary country is
Canada or USA) -
Country name – max 17 char (mandatory)
There should be a delimiter between each fields, Cases where Statecode is not
applicable, should be 2 blank space.
E.g. (with Statecode) – City/SC/Country name
E.g. (without Statecode) – City/ /Country name
NBK/ITD/SED/WOLC/04003 9 Of 16 03/02/2015
5 XML file schema
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="PAYMENTS">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="PAYMENT">
<xs:complexType>
<xs:sequence>
<xs:element name="CORPID" type="xs:string">
<xs:annotation>
<xs:documentation>NBK corporate id ie CB080000</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CUSTREF" type="xs:string"/>
<xs:element name="CURRENCY_CODE" type="xs:string">
<xs:annotation>
<xs:documentation>Payment currency code. Three digits currency code ie
USD</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="AMOUNT" type="xs:string">
<xs:annotation>
<xs:documentation>Payment Amount</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DEALREF" type="xs:string">
<xs:annotation>
<xs:documentation>should be Y or N to indicate whether to use bank exchange
rate or obtain the exchange rate from dealing room</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="BANK_ACCOUNT_NUM" type="xs:string">
<xs:annotation>
<xs:documentation>Debit Account Number</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VALUE_DATE" type="xs:string">
<xs:annotation>
<xs:documentation>Value Date</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_REFERENCE_NUM" type="xs:string">
<xs:annotation>
<xs:documentation>vendor reference num (in the corporate
system)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_NAME" type="xs:string"/>
<xs:element name="VENDOR_ADDRESS_LINE1" type="xs:string"/>
<xs:element name="VENDOR_ADDRESS_LINE2" type="xs:string"/>
NBK/ITD/SED/WOLC/04003 10 Of 16 03/02/2015
<xs:element name="VENDOR_ADDRESS_LINE3" type="xs:string"/>
<xs:element name="VENDOR_CITY" type="xs:string"/>
<xs:element name="VENDOR_BANK_NAME" type="xs:string"/>
<xs:element name="VENDOR_BANK_ADDRESS_LINE1" type="xs:string"/>
<xs:element name="VENDOR_BANK_ADDRESS_LINE2" type="xs:string"/>
<xs:element name="VENDOR_BANK_ADDRESS_LINE3" type="xs:string"/>
<xs:element name="VENDOR_BANK_CITY" type="xs:string"/>
<xs:element name="VENDOR_BANK_ACCOUNT_NUM" type="xs:string"/>
<xs:element name="VENDOR_BANK_SWIFTCODE" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Beneficiary bank swift code</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_BANK_IBAN" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Beneficiary bank IBAN number</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_INTERMEDIARY_BANKS" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="VENDOR_INTERMEDIARY_BANK" minOccurs="0" maxOccurs="2">
<xs:complexType>
<xs:sequence maxOccurs="1">
<xs:element name="VENDOR_INTERMEDIARY_BANK_NAME" type="xs:string">
<xs:annotation>
<xs:documentation>Beneficiary intermediary bank
name</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE1"
type="xs:string">
<xs:annotation>
<xs:documentation>Beneficiary intermediary bank address line
1</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE2"
type="xs:string">
<xs:annotation>
<xs:documentation>Beneficiary intermediary bank address line
2</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE3"
type="xs:string">
<xs:annotation>
<xs:documentation>Beneficiary intermediary bank address line
3</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_INTERMEDIARY_BANK_COUNTRY_CODE"
type="xs:string">
<xs:annotation>
<xs:documentation>Beneficiary intermediary bank
country</xs:documentation>
</xs:annotation>
</xs:element>
NBK/ITD/SED/WOLC/04003 11 Of 16 03/02/2015
<xs:element name="VENDOR_INTERMEDIARY_BANK_SWIFTCODE"
type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Beneficiary intermediary bank swift code or
sort code </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="BANK_CHARGES" type="xs:string">
<xs:annotation>
<xs:documentation>should contain one of three values sender, beneficiary,
shared </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_PURPOSE_OF_PAYMENT_LINE1" type="xs:string" minOccurs="0"
maxOccurs="1">
<xs:annotation>
<xs:documentation>Should contain Purpose of Payment </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_PURPOSE_OF_PAYMENT_LINE2" type="xs:string" minOccurs="0"
maxOccurs="1">
<xs:annotation>
<xs:documentation>Should contain Purpose of Payment </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="VENDOR_PURPOSE_OF_PAYMENT_LINE3" type="xs:string" minOccurs="0"
maxOccurs="1">
<xs:annotation>
<xs:documentation>Should contain Purpose of Payment </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="INVOICE_NUM" type="xs:string" minOccurs="0"/>
<xs:element name="PAYMENT_TYPE" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Should contain one of these values: Normal,Final
Settlement,Salary</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="NO_OF_PAYMENTS" type="xs:string"/>
<xs:element name="TOTAL_AMOUNT" type="xs:string"/>
<xs:element name="HASH_TOTAL" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
NBK/ITD/SED/WOLC/04003 12 Of 16 03/02/2015
7 XML sample file
<root>
<PAYMENTS>
<PAYMENT>
<CORPID>CB079000</CORPID>
<CUSTREF>CUSTREF1</CUSTREF>
<CURRENCY_CODE>GBP</CURRENCY_CODE>
<AMOUNT>4000.00</AMOUNT>
<DEALREF>N</DEALREF>
<BANK_ACCOUNT_NUM>1000308852</BANK_ACCOUNT_NUM>
<VALUE_DATE>04-DEC-17</VALUE_DATE>
<VENDOR_REFERENCE_NUM>WOLC TT SCREEN</VENDOR_REFERENCE_NUM>
<VENDOR_NAME>KRISHNA KUMAR</VENDOR_NAME>
<VENDOR_ADDRESS_LINE1>ROCK STREET LONDON</VENDOR_ADDRESS_LINE1>
<VENDOR_ADDRESS_LINE2>MID LONDON</VENDOR_ADDRESS_LINE2>
<VENDOR_ADDRESS_LINE3>MANCISTER/ /GB</VENDOR_ADDRESS_LINE3>
<VENDOR_COUNTRY_CODE>GB</VENDOR_COUNTRY_CODE>
<VENDOR_BANK_NAME>NATIONAL WESTMINSTER BANK PLC</VENDOR_BANK_NAME>
<VENDOR_BANK_ADDRESS_LINE1>PICKERING BRANCH</VENDOR_BANK_ADDRESS_LINE1>
<VENDOR_BANK_ADDRESS_LINE2>NATWEST BANK</VENDOR_BANK_ADDRESS_LINE2>
<VENDOR_BANK_ADDRESS_LINE3>ROCK SREET</VENDOR_BANK_ADDRESS_LINE3>
<VENDOR_BANK_COUNTRY_CODE>GB</VENDOR_BANK_COUNTRY_CODE>
<VENDOR_BANK_ACCOUNT_NUM></VENDOR_BANK_ACCOUNT_NUM>
<VENDOR_BANK_SWIFTCODE>SC601630</VENDOR_BANK_SWIFTCODE>
<VENDOR_BANK_IBAN>GB09NWBK60163081074441</VENDOR_BANK_IBAN>
<VENDOR_INTERMEDIARY_BANKS>
<VENDOR_INTERMEDIARY_BANK>
<VENDOR_INTERMEDIARY_BANK_NAME>Natwest BANK</VENDOR_INTERMEDIARY_BANK_NAME>
<VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE1>123 SUN
SETSTREET</VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE1>
<VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE2>MADISAN
SQUARE</VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE2>
<VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE3>MUSIUM
CIRCLE</VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE3>
<VENDOR_INTERMEDIARY_BANK_COUNTRY_CODE>GB</VENDOR_INTERMEDIARY_BANK_COUNTRY_CODE>
<VENDOR_INTERMEDIARY_BANK_SWIFTCODE>SC700119</VENDOR_INTERMEDIARY_BANK_SWIFTCODE>
</VENDOR_INTERMEDIARY_BANK>
<VENDOR_INTERMEDIARY_BANK>
<VENDOR_INTERMEDIARY_BANK_NAME>UNITED NATIONL BANK</VENDOR_INTERMEDIARY_BANK_NAME>
<VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE1>100 West 33rd
Street</VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE1>
<VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE2>SOUTH
LONDON</VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE2>
<VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE3>MANU CITY</VENDOR_INTERMEDIARY_BANK_ADDRESS_LINE3>
<VENDOR_INTERMEDIARY_BANK_COUNTRY_CODE>GB</VENDOR_INTERMEDIARY_BANK_COUNTRY_CODE>
<VENDOR_INTERMEDIARY_BANK_SWIFTCODE>SC069465</VENDOR_INTERMEDIARY_BANK_SWIFTCODE>
</VENDOR_INTERMEDIARY_BANK>
</VENDOR_INTERMEDIARY_BANKS>
<BANK_CHARGES>SHA</BANK_CHARGES>
<VENDOR_PURPOSE_OF_PAY_LINE1>OTHERS</VENDOR_PURPOSE_OF_PAY_LINE1>
<VENDOR_PURPOSE_OF_PAY_LINE2>2 IBK WOLC MTS VAL</VENDOR_PURPOSE_OF_PAY_LINE2>
<VENDOR_PURPOSE_OF_PAY_LINE3>IBL VALIDATION MTS</VENDOR_PURPOSE_OF_PAY_LINE3>
<INVOICE_NUM>Invoice A66B229</INVOICE_NUM>
<PAYMENT_TYPE>1</PAYMENT_TYPE>
</PAYMENT>
</PAYMENTS>
NBK/ITD/SED/WOLC/04003 13 Of 16 03/02/2015
<NO_OF_PAYMENTS>1</NO_OF_PAYMENTS>
<TOTAL_AMOUNT>4000.000</TOTAL_AMOUNT>
<HASH_TOTAL>16</HASH_TOTAL>
</root>
NBK/ITD/SED/WOLC/04003 14 Of 16 03/02/2015
8 Currency Codes
ALBENIAN LEK ALL
ALGERIAN DINAR DZD
ARGENTINE PESO ARS
AUSTRALIAN DOLLAR AUD
AUSTRIAN SCHILLING ATS
BAHRAINI DINAR BHD
BANGLADESH TAKA BDT
BELIZE DOLLAR BZD
CANADIAN DOLLAR CAD
CFA FRANC XOF
CONVERTIBLE MARKS BAM
CYPRUS POUND CYP
DANISH KRONER DKK
DIJIBOUTI FRANC DJF
EAST CARIBBEAN DOLLAR XCD
EGYPTIAN POUNDS EGP
EURO EUR
GUINEA FRANC GNF
HONGKONG DOLLAR HKD
INDIAN RUPEE INR
INDIAN ZEAL INZ
INDOSEIAN RUPEE IDR
IRANIAN RIYAL IRR
JAMAICAN DOLLAR JMD
JAPANESE YEN JPY
JORDANIAN DINAR JOD
KAZAKHSTAN TENGE KZT
KENYAN SHILLING KES
KUWAITI DINAR KWD
LEBANESE POUNDS LBP
LEMPIRA (HONDURAS) HNL
LILANGENI SZL
LITHUANIAN LITAS LTL
LOTI (LESOTHO) LSL
MALTESE LIRA MTL
MAURITIUS RUPEE MUR
MORROCCAN DIRHAM MAD
NAMIBIA DOLLAR NAD
NEPALESE RUPEES NPR
NGULTRUM (BHUTAN) BTN
NORWEGIAN KRONER NOK
NBK/ITD/SED/WOLC/04003 15 Of 16 03/02/2015
OMANI RIYAL OMR
OUGUIYA MRO
PAKISTAN RUPEE PKR
PHILIPPINE PESO PHP
POUND STERLING GBP
PULA (BOTSWANA) BWP
QATARI RIYAL QAR
RAWANDA FRANC RWF
SAUDI RIYAL SAR
SEYCHELLES SCR
SINGAPORE DOLLAR SGD
SOUTH AFRICAN RAND ZAR
SRILANKA RUPEE LKR
SUDANESE DINAR SDD
SWEDISH KRONER SEK
SWISS FRANC CHF
SYRIAN POUND SYP
TANZANIAN SHILLING TZS
TUNISIAN DINAR TND
TURKISH LIRA TRL
TURKISH LIRA (NEW) TRY
U S DOLLAR USD
UAE DIRHAMS AED
UZBEKISTAN SUM UZS
VIETNAM DONG VND
YEMENI RIAL YER
YUAN RENMINBI (CHINA) CNY
NBK/ITD/SED/WOLC/04003 16 Of 16 03/02/2015