Bank of Scotland BACS
This information is provided for guidance only; you should always confirm the details before passing the file to BACS software.
Abbreviations used in this topic
Acronyms
Abbreviation
|
Description
|
BAI
|
Bank Administration Institute
Note: the formats described here adhere to Bank of Scotland's interpretation of BAI
|
COL
|
Corporate Online
|
CSV
|
Comma Separated Verb record format
|
End User
|
The person who uses Corporate Online
|
EOF
|
End of File
|
UHL
|
User Header Label
|
Data Format Notations
The following notations are used to describe the field types and their length, unless otherwise stated.
Note: These are only abbreviations used later within this document and are not themselves a definition of field formats.
Abbreviation
|
Description
|
F
|
'F' in front of a field type indicates the field has FIXED length
|
V
|
'V' in front of a field type indicates the field has VARIABLE length
|
X (**)
|
Alphanumeric characters allowed. The value in brackets specifies the maximum size permissable. Fixed length fields are padded with trailing spaces.
|
9 (**)
|
Numeric characters allowed. The value in brackets specifies the maximum size permissable. Fixed length fields are padded with leading zeros.
|
Z9(**).99
|
This is an amount field. The value in brackets describes the length of the number. The decimal point describes if there is a decimal point or not. Note that no leading zeros are applied.
|
Date
|
Represents a date. The exact format is specified by example.
|
EXPORTING FROM CORPORATE ONLINE
INTRODUCTION
Exporting of data is provided to allow Service Users to import posting and balance summaries into other applications. The export process is applicable to posted transactions created by the following accounts types as used by Corporate Online.
Main Account Type
|
Classification
|
UK Accounts
|
Cheque
|
International
|
Currency Current
|
EXPORTING DATA FORMATS
Data can be exported from a number of screens, the format available for download is dependent upon which screen / information is being downloaded:
Screen/ Information
|
Format
|
View Account Balance
|
COL CSV
|
Statement
|
BAI / COL CSV
|
Sterling Report
|
COL CSV
|
International Report
|
COL CSV
|
Account Group Download
|
COL CSV
|
Audit Log
|
COL CSV
|
Foreign Exchange Trade History
|
COL CSV
|
A single account can be downloaded from the View Account Balance and Statement screens. Multiple sterling accounts can be downloaded from the Sterling Report and Account Group Download screens.
Multiple international accounts can only be downloaded from the International Report screen.
PROCESSING
The export operation is initiated by clicking the download button. Where a COL CSV file is available only, you will be asked to save the file to your pc. Where there is a choice offering different types of download file, you will be asked to enter a filename and choose what kind of file is required.
The format of each kind of file and information downloaded are dependent upon which screen within Corporate Online is used.
STERLING ACCOUNT Sample File
Deposit,EARL GREY DEVELOPMENTS TEST,80999906008504,"0.48 GBP","01/01/2011","0.00 GBP","0.00 GBP","0.48 GBP","0.00 GBP","0.48 GBP","0.48 GBP","0.00 GBP","0.48 GBP","0.00 GBP","0.48 GBP","0.00 GBP","0.48 GBP","0.00 GBP","0.48 GBP","0.00 GBP","0.48 GBP"
The format of this file for a Sterling account is:
Field
|
Description and Format
|
Account Type
|
VX(**)
|
Account Name
|
VX(**)
|
Sort Code & Account Number
|
F9(14)
|
Current Balance
|
VX(**)
|
Uncleared Funds
|
VX(**)
|
Cleared Balance
|
VX(**)
|
Close of Business Balance
|
VX(**)
|
Debit Transaction Total
|
VX(**)
|
Credit Transaction Total
|
VX(**)
|
Date as At
|
DD/MM/YYYY
|
Projected Cleared Balance +1
|
VX(**)
|
Funds Due to Clear +1
|
VX(**)
|
Projected Cleared Balance +2
|
VX(**)
|
Funds Due to Clear +2
|
VX(**)
|
Projected Cleared Balance 3+
|
VX(**)
|
Funds Due to Clear 3+
|
VX(**)
|
Available Funds for Payment
|
VX(**)
|
Note: If user preferences are set to display amounts in Euro, then both the Sterling value and Euro equivalent will be downloaded.
INTERNATIONAL ACCOUNT Sample File ( currency with a 10 digit account number)
International,Customer Currency(Current) Acc,99999USD01,"-167.07 USD","-185.07 USD","-211.07 USD","-232.07 USD","-232.07 USD","-232.07 USD","-232.07 USD","01/01/2011"
Sample File (currency with a sort code and account number)
International,Customer Currency(Current) Acc, 12345612345678,"-167.07 USD","-185.07 USD","-211.07 USD","-232.07 USD","-232.07 USD","-232.07 USD","-232.07 USD","01/01/2011"
The format of this file for an International Account is:
Field
|
Description and Format
|
Value
|
Type of Account
|
FX(13)
|
“International”
|
Account Name
|
VX(**)
|
-
|
Account Number
|
VX(14)
|
-
|
Balance
|
VX(**)
|
e.g. 23.76 USD
|
Projected Balance Today
|
VX(**)
|
-
|
Date as At
|
DD/MM/YYYY
|
-
|
STATEMENTS AND ACCOUNT GROUP DOWNLOAD
Only the COL format is available on the Account Group Download screen (ACC or TRN file). A Service User may export historic balance information and transaction information for UK and International accounts.
A Service User may export information for a single account or for all accounts within the same group. The Service User may select the file name and type for the export (ACC for account balances, and TRN for Account Transactions).
File extensions are:
FILE TYPE
|
EXTENSION
|
Sterling Account Position info. -
|
*******.ACC
|
Sterling Account Transactions -
|
*******.TRN
|
International Account Position info -
|
*******.ACC
|
International Account Transactions -
|
*******.TRN
|
COL format files are ASCII files. All fields are separated by commas. All fields are enclosed in quotations, including numbers. If a text field contains a quotation mark, then the quotation mark is replaced by two adjacent quotation marks.
All balance fields are signed. If they are negative, the amount is preceded by a minus sign. No plus sign is used for positive balances.
The transaction amount is not signed, but an indicator is used to show if the transaction type is either D (Debit) or C (Credit).
STERLING ACCOUNT POSITION files hold details of historic balances for a UK accounts. The format of all amounts is Amount(18).99 These include projected balance as well as credit and debits. Notice the fixed decimal notation '.' zero amounts will be presented by a fixed length number “0.00”. The string will be padded with leading spaces.
FIELD
|
DESCRIPTION AND FORMAT
|
Sort Code -
|
F9(6)
|
Account Number -
|
F9(8)
|
Account Name -
|
VX(35)
|
Account type -
|
VX(35)
|
Balance date
|
YYYY/MM/DD
|
Ledger Balance -
|
FZ(16).99
|
Cleared Balance -
|
VX(**)
|
Projected Balance +1
|
VX(**)
|
Projected Balance +2 -
|
VX(**)
|
Projected Balance 3+ -
|
VX(**)
|
Today's Debits -
|
FZ(18).99
|
Today's Credits -
|
FZ(16).99
|
Example:
"123456","012346578901","Mr. Smith's Account",,"20110101","44.69",,,,,," 184488.69"," 184488.69"<CR><LF>
FIELD
|
DESCRIPTION AND FORMAT
|
VALUE
|
Posting Date -
|
YYYY/MM/DD
|
-
|
Amount
|
FZ(16).99
|
-
|
Transaction Code -
|
FX(3)
|
-
|
Transaction Description -
|
FX(80)
|
-
|
Transaction Type -
|
FX(1) -
|
“C” or “D”, Credit or Debit
|
Forward Posted Flag -
|
FX(1)“F”
|
“F”
|
Sorting Code -
|
F9(6)
|
-
|
Account Number -
|
F9(6)
|
-
|
Example:
"19960925"," 86.00","BGC","003747","D","F","121257","02561237"<CR><LF>
CURRENCY ACCOUNT POSITION files hold details of historic balances for International accounts.
Note: All amounts values have V Z(16).XXX where XXX is the number of decimal points used in the currency.
Refer to this table if your currency account contains 10 digits.
FIELD
|
DESCRIPTION AND FORMAT
|
Account Name
|
VX(35)
|
Client Number
|
FX(5
|
Currency Code
|
FX(3)
|
Account Number
|
FX(2)
|
Account Type
|
VX(35)
|
Balance Date
|
YYYY/MM/DD
|
Overnight Balance
|
FZ(16).XXX
|
Total Debits
|
FZ(16).XXX
|
Total Credits
|
FZ(16).XXX
|
Example:
"International Account1","02013","USD","01","","20110101"," 13611.191",,,,,,"157.063"," 39.193"<CR><LF>
Refer to this table if your currency account contains a sort code and account number.
FIELD
|
DESCRIPTION AND FORMAT
|
Account Name
|
VX(35)
|
Sort Code
|
FX(6)
|
Account Number
|
FX(8)
|
Not Used
|
FX(2)
|
Balance Date
|
YYYYMMDD
|
Overnight Balance
|
FZ(16).XXX
|
Total Debits
|
FZ(16).XXX
|
Total Credits
|
FZ(16).XXX
|
Example:
"International Account1","123456","12345678","","20110101","13611.11",,,,,"157.063","39.193"<CR><LF>
CURRENCY ACCOUNT TRANSACTION files hold details of account movements for International accounts. Currency account transactions are only produced for posted transactions.
Note: All amounts values have F Amount(16).XXX where XXX is the number of decimal points used in the currency.
Refer to this table if your currency account contains a sort code and account number.
FIELD
|
DESCRIPTION AND FORMAT
|
VALUE
|
Value Date
|
YYYYMMDD
|
-
|
Amount -
|
FZ(13).9999
|
-
|
Transaction Ref.
|
FX(80)
|
-
|
Customer Ref. -
|
Not used
|
-
|
Transaction Type -
|
FX(1) -
|
“C” or “D”, Credit or Debit
|
Forward Posting Flag -
|
FX(1) -
|
“F”
|
Processing Date -
|
YYYYMMDD
|
-
|
Sort Code
|
F9(6)
|
-
|
Account Number
|
F9(8)
|
-
|
Example:
"20110101","674635.0000","G384532396",,"DBT","F",20110101","123456","12345678"<CR><LF>
Refer to this table if your currency account contains 10 digits.
FIELD
|
DESCRIPTION AND FORMAT
|
VALUE
|
Value Date
|
YYYY/MM/DD
|
-
|
Amount -
|
FZ(14).9999
|
-
|
Transaction Ref.
|
FX(80)
|
-
|
Customer Ref.
|
VX(18)
|
Not used
|
Transaction Type
|
FX(1) -
|
“C” or “D”, Credit or Debit
|
Forward Posting Flag
|
FX(1)
|
“F”
|
Processing Date
|
YYYY/MM/DD
|
-
|
Client Number
|
F9(5)
|
-
|
Currency Code
|
FX(3)
|
-
|
Account Number
|
F9(2)
|
-
|
Example:
"20110101","67435.0000","G384532396",,"DBT","F","20110101","02013","USD","04"<CR><LF>
Refer to this table if your currency account contains a sort code and account number.
STATEMENTS BAI FORMAT –
BAI format is defined by Bank Administration Institute. The version defined here is the interpretation used by Bank of Scotland. BAI is a delimited ASCII format. Under Bank of Scotland's implementation, each file will be an ASCII sequential file with a fixed record length of 80 characters.
A BAI export may only be performed on a single account. A date range must be supplied.
The BAI format defines a file of data with the following record structure:
File Header
Group Header (for each day's data)
Account Header (for each account for the given day, includes balance)
Transaction Details (for each transaction item for the given account on given day)
Account Trailer
Group Trailer
File Trailer
A record consists of a two byte record type followed by a number of fields. Each field is separated by a comma. With only one exception, the end of the last field in a record is indicated by a forward slash</>. As the record is fixed length, space padding is applied to the record so that it occupies the full 80 characters. The record is then terminated with a <CR><LF> pair (making the total length 82 characters).
The exception is when the record is a continuation record and the last field is a string. In this case the field itself is space padded so that the record occupies the full 80 character length. The record is then terminated with a <CR><LF> pair.
The BAI file is terminated by a <CONTROL-Z>.
A list of record types is given below:
COMMAND
|
DESCRIPTION
|
01
|
File Header
|
02
|
Group Header
|
03
|
Account Header (for each account, includes balance)
|
16
|
Transaction Details (for each transaction item)
|
49
|
Account Trailer
|
88
|
Continuation marker
|
98
|
Group Trailer
|
99
|
File Trailer
|
Every field is an ASCII presentation of string or number. Strings are NOT embedded in quotes. All fields are of variable length. (Note: for clarity, examples given in this document don't show all 80 characters as many are likely to be empty.)
File Header Format (01)
Only one file header record will appear in each exported file. The format of the record will be:
01,s-id,r-id,c-date,c-time,file-id,rec-len,blk-size,version/
FIELD
|
FORMAT
|
DESCRIPTION
|
VALUE
|
s-id
|
X(9)
|
The sender identifier for Corporate Online,
|
corpline1
|
r-id
|
X(13)
|
The receiver identifier for the customer, alphanumeric
|
site.siteIdentifier
|
c-date
|
YY/MM/DD
|
The date the file was created, format
|
-
|
c-time
|
HH/MM
|
The time the file was created
|
-
|
file-id
|
-
|
unique sequence number for each file created with
|
site.BAIFileId
|
rec-len
|
9(2)
|
physical record length, always 80
|
80
|
blk-size
|
9(1)
|
number of physical records in a block, always 1
|
1
|
version
|
9(1)
|
BAI version number, always 2
|
2
|
Example:
The first line displays character positions, the second line shows an example format.
12345678901234567890123456789012345678901234567890123456789012345678901234567890
01, corpline1,abcdefghijk02,110101,1642,3,80,1,2/
Character 81 = <CR>, 82 = <LF>
Group Header Format (02)
One group header will appear for each day of exported data. The format of the record will be:
02,r-id,o-id,status,a-date,a-time,curr,modifier/
FIELD
|
FORMAT
|
DESCRIPTION
|
VALUE
|
r-id
|
X(13)
|
the receiver identifier, same as the file header
|
.siteIdentifier
-
|
o-id
|
X(9)
|
the originator identifier, same as for sender identifier
in File Header
|
corpline1
-
|
status
|
X(1)
|
Always 1
|
1
|
a-date
|
YY/MM/DD
|
as of date, i.e. date to which data applies
-
|
-
|
a-time
|
HH/MM
|
as of time, always 2400
-
|
2400
|
curr
|
X(3)
|
default currency code for account group
-
|
GBP
|
modifier
|
9(1)
|
-
|
2
|
Example:
The first line displays character positions, the second line shows an example format.
02,abcdefghijk02, corpline1,1,110101 ,2400,GBP,2/
Character 81 = <CR>, 82 = <LF>
Account Header (03)
An account header, recording balance information, is included for each account written to the file. Three records are used to hold the account header one prefixed with the account header identifier, and two continuation records. The formats of the records are: –
03,ac-no,curr,tc1,am1,,,tc2,am2,,,tc3,am3,,,tc4,am4,ic4/
88,tc5,am5,ic5,/
88,tc6,am6,,,tc7,am7,,/
Notes:
1. Account Headers end with the ic5 field (i.e. fields tc6 onwards are omitted).
2. The number of decimal places for an amount field is implied by the currency.
FIELD
|
FORMAT AT
|
DESCRIPTION
|
VALUE - UK ACC
|
VALUE - INTL. ACC
|
ac-no
|
X(12)
|
For sterling accounts, this will be the last 4 digits of the sort
|
acc.sortCode
+
acc.accountNo
|
acc.accountNo
|
curr
|
X(3)
|
currency code of the account (GBP for sterling accounts)
|
GBP
|
acc.currencyCode
|
tc1
|
9(3)
|
type code for 1st summary item, always 015 (closing
|
015
|
015
|
am1
|
-
|
Amount of 1st summary item, i.e. closing balance for the
|
closedLedgerBal
|
closedClearedBal
|
(empty)
|
-
|
Empty field
|
-
|
-
|
(empty)
|
-
|
Empty field
|
-
|
-
|
tc2
|
9(3)
|
type code for 2nd summary item, always 045 (closing
|
045
|
045
|
am2
|
-
|
Amount of 2nd summary item, i.e. closing balance for day
|
closedLedgerBal
|
closedClearedBal
|
(empty)
|
-
|
Empty field
|
-
|
-
|
(empty)
|
-
|
Empty field
|
-
|
-
|
tc3
|
9(3)
|
type code for 3rd summary item, always 040 (opening
|
040
|
040
|
am3
|
-
|
amount of 3rd summary item, i.e. closing balance for day
|
closedLedgerBal
|
closedClearedBal
|
(empty)
|
-
|
Empty field
|
-
|
-
|
tc4
|
9(3)
|
type code for 4th summary item, always 400 (total debits)
|
400
|
400
|
am4
|
-
|
amount of 4th summary item, i.e. total amount of all debits
|
ranDebitAmt
|
tranDebitAmt
|
ic4
|
-
|
item count for 4th summary item, i.e. total number of debit
|
tranDebitCount
|
tranDebitCount
|
(empty)
|
-
|
Empty field
|
-
|
-
|
tc5
|
9(3)
|
type code for 5th summary item, always 100 (total credits)
|
100
|
100
|
am5
|
-
|
amount of 5th summary item, i.e. total amount of all credits
|
tranCreditAmt
|
tranCreditAmt
|
ic5
|
-
|
item count for 5th summary item, i.e. total number of credit
|
tranCreditCount
|
tranCreditCount
|
tc6
|
9(3)
|
type code for 6th summary item, always 072 (day 1 float)
|
072
|
072
|
am6
|
9(1)
|
amount of 6th summary item, i.e. day 1 float, signed
|
0
|
0
|
(empty)
|
-
|
Empty field
|
-
|
-
|
(empty)
|
-
|
Empty field
|
-
|
-
|
tc7
|
9(3)
|
type code for 7th summary item, always 074 (day 2+ float)
|
074
|
074
|
am7
|
9(1)
|
amount of 7th summary item, i.e. day 2+ float, signed
|
0
|
0
|
(empty)
|
-
|
Empty field
|
-
|
-
|
Transaction type codes are always present in all records even when its corresponding amount is zero. Such amounts
are always set to zero. This ensures that the field is never empty.
Example:
The first line displays character positions, the second line shows an example format.
Sterling Account Example:
03,000100021113,GBP,015,11278477,,,045,11278477,,,040,11278477,,/
88,400,4213365,14,,100,188448869,6,/
88,072,0,,,074,0,,/
Currency Account Example:
03,00609 USD 01,USD,015,-3460,,,045,-3460,,,040,-3460,,/
88,400,0,0,,100,6632,43,/
For each record character 81 = <CR>, 82 = <LF> –
Transaction Details
A transaction details record is included for each transaction for the account specified by the account header for the date specified by the group header. The formats of the records are:
16,tc,amount,f-type,v-date,,,/
88,d...d/
Note: All currency account balance and transaction amounts are being displayed multiplied by a factor of 100 e.g a transaction / balance of 0.01 will export as 100 and not as 1.
FIELD
|
DESCRIPTION
|
VALUE
|
tc
|
type code for the transaction, always 399 (miscellaneous
|
399 or 699
|
amount
|
amount of transaction, unsigned
|
m.amount
|
f-type
|
funds type, always 0 (immediate availability) for sterling
|
0 or V
|
v-date
|
value date, only appears for currency accounts (DD/MM/YYYY)
|
m.postingValueDate or blank
|
(empty)
|
Empty Field
|
-
|
(empty)
|
Empty Field
|
-
|
d...d
|
description of transaction, continued as necessary,
|
Sterling transactions :
|
Example:
The first line displays character positions, the second line shows an example format.
For a currency credit transaction:
16,399,123456789012345678,V,110101,,,/
88,Currency transaction: transaction narrative
Sterling debit transaction:
16,699,123456789012345678,0,,,,/
88,Sterling transactions : transaction narrative
For each record character 81 = <CR>, 82 = <LF> –
Note: There is always a space before and after the colon in the description field.
Account Trailer
The format of this record is: 49,tot-amnt,no-rec/
FIELD
|
DESCRIPTION AND FORMAT
|
VALUE
|
tot-amnt
|
checksum total of all amounts in account header and
|
Unsigned addition of am1 to
|
no-rec
|
checksum total of records for this account, including
|
-
|
Example:
The first line displays character positions, the second line shows an example format.
49,92539296,126/
For this record character 81 = <CR>, 82 = <LF> –
Group Trailer
The format of this record is:
98,tot-amnt,no-acs,no-rec/
FIELD
|
DESCRIPTION AND FORMAT
|
tot-amnt
|
checksum total of all amounts in Account
|
no-acs
|
not used
|
no-rec
|
checksum total number of records for this group,
|
Example:
The first line displays character positions, the second line shows an example format.
98,7728504576,61,237/
For this record character 81 = <CR>, 82 = <LF> –
File Trailer
The format of this record is:
99,tot-amnt,no-gps,no-rec/
FIELD
|
DESCRIPTION AND FORMAT
|
tot-amnt
|
checksum total of all amount totals in Group
|
no-gps
|
total number of groups in this file.
|
no-rec
|
checksum total of all record totals in Group
|
Example:
The first line displays character positions, the second line shows an example format.
99,7728504576,1,239/
For this record character 81 = <CR>, 82 = <LF> –
STERLING REPORT
This download file is designed for use in a spreadsheet or similar application.
Each account within the report will have seventeen fields of data downloaded. After the account data there
are then two blank lines of space, and all the fields are totalled up.
Each account reported will show the following fields:
FIELD
|
DESCRIPTION AND FORMAT
|
Sorting Code -
|
VX(8) -
|
Account Number -
|
F9(8)
|
Account Name
|
VX(35)
|
Close of Business Balance
|
VZ(**).99 -
|
Close of Business Cleared Balance -
|
VZ(**).99
|
Credits
|
VZ(**).99
|
Debits -
|
VZ(**).99
|
Real Time Cleared Balance -
|
VZ(**).99
|
Clearing Cheques +1 -
|
VZ(**).99
|
Clearing Cheques +2 -
|
VZ(**).99
|
Clearing Cheques 3+
|
VZ(**).99
|
Projected Cleared Balance +1 -
|
VZ(**).99
|
Projected Cleared Balance +2 -
|
VZ(**).99
|
Projected Cleared Balance 3+ -
|
VZ(**).99
|
Funds Available for Payment
|
VZ(**).99
|
Not Used
|
-
|
Date as at
|
DD/MM/YYYY
|
Carriage Return
|
-
|
INTERNATIONAL REPORT
This download file is designed for use in a spreadsheet or similar application.
Each account within the report will have nine fields of data downloaded. After the account data there are then
two blank lines of space, and all Sterling Equivalent balance fields are totalled up.
Each account reported will show the following fields:
FIELD
|
DESCRIPTION AND FORMAT
|
VALUE
|
Account Name
|
FX(30)
|
“Customer Currency(Current) Acc”
|
Account Number
|
FX(10)
|
-
|
Close of Business Balance
|
VZ(**).XXX
|
Depending on currency
|
Date of COB Balance
|
DD/MM/YYYY
|
-
|
Current Balance
|
VZ(**).XXX
|
Depending on currency
|
Date of Current Balance
|
DD/MM/YYYY
|
-
|
Conversion Rate
|
VX(**).XXXXXX
|
Depending on Currency e.g. 1.34256
|
Sterling Equivalent COB
|
VZ(**).99
|
-
|
Sterling Equivalent Current Balance
|
VZ(**).99
|
-
|
Carriage Return
|
-
|
-
|
AUDIT LOG
This download file is designed for use in a spreadsheet or similar application.
Each entry within the report will have five fields of data downloaded.
Each audit log entry reported will show the following fields:
FIELD
|
DESCRIPTION AND FORMAT
|
Date Time
|
DD/MM/YYYY, HH:MM:SS
|
Username
|
VX(**)
|
IP Address
|
VX(15)
|
Session ID
|
VX(10)
|
Event Description
|
VX(100)
|
FOREIGN EXCHANGE TRADE HISTORY –
This download file is designed for use in a spreadsheet or similar application.
Each entry within the report will have nine fields of data downloaded.
Each audit log entry reported will show the following fields:
FIELD
|
DESCRIPTION AND FORMAT
|
Trade ID
|
FX(6)
|
Dealing Name
|
VX(**)
|
Buy Amount & CCY
|
VX(**)
|
Sell Amount & CCY
|
VX(**)
|
Rate
|
VX(**)
|
Trade Date
|
DD/MM/YYYY
|
Type
|
VX(**)
|
Value Date
|
DD/MM/YYYY
|
User ID
|
VX(**)
|
IMPORTING INTO CORPORATE ONLINE
INTRODUCTION
Payment instructions may be imported from ASCII format files.
1) COL:
In COL format one input file can contain the following record types:
Inter Account Funds Transfer (Sterling and Currency) Domestic Payments, CHAPS, International Payments, Faster Payments.
2) BACS:
Bacs format is used for Bacs Direct only.
Notes: International Drafts, International Payments with Live Rates and Foreign Exchange transfers cannot be imported
FILE VALIDATION
A check will be made of the overall file. If any file error is encountered, then processing is stopped and an on-screen message will be displayed.
Payments are not directly created from the import file, instead a template is created and payments may be generated from the template. –
If errors are present in the import file, a template may still successfully be created.
ACCESS CONTROL
In order to create a payment instruction within the system the Service User must have the appropriate facility to process the instruction type, qualified by the account.
However, as a template is created by the import file, these limits and facilities are not checked until the user tries to convert the template to payments.
The Service User must also be allowed to 'Administer Beneficiaries'.
PROCESSING
When the import function is selected, the Service User is presented with a file open dialogue which is used to specify the file to be imported. The system then reads the selected file, and validates its contents as described in the following section:
If the file is valid, then the payments are imported into Corporate Online and a message informs the user of completion.
COL FORMAT IMPORT FILE
The COL file is an ASCII format, comma delimited file. The following rules apply to the file:
A new line is used to delimit a record.
All fields, whether mandatory or optional, must be separated by a comma delimiter. Where an optional field has no entry, two comma delimiters will be adjacent to one another.
Amount fields are of variable length, leading zeros suppressed.
If the batch name already exists, no payments are imported.
The length of a numeric field must not exceed its permissible length.
The length of a character field must not exceed its permissible length (as detailed in the format).
The file consists of a header record, a number of instruction records and a trailer record.
Fields (both alpha or numeric) can be enclosed in double quotation marks (double quotes). Within a character string which is enclosed in double quotes, two adjacent double quotes are interpreted as one double quote to be included within the input field (and not as the double quote that terminates the character string).
Examples of valid input text strings are in the following table:
STRING IN INPUT FILE
|
RESULTING INPUT STRING
|
...,Non-quoted string,...
|
Non-quoted string
|
...,“Quoted string”,...
|
Quoted string
|
...,“Quoted string, containing a comma”,...
|
Quoted string, containing a comma
|
...,“Payee is “”John Smith””, London”,...
|
Payee is “John Smith”, London
|
...,“Payee is 'John Smith', London”,...
|
Payee is 'John Smith', London
|
The following default field values are applied:
Default value for a missing optional numeric field is zero.
Default value for a missing optional character field is an empty string.
Amount fields with missing decimal points which are pre-defined to have a decimal point, are treated as having zero decimal point.
File Header
The format for the file header record is:
FIELD NAME
|
CONTENT OR FORMAT
|
MANDATORY/OPTIONAL
|
Record Code
|
F X(3) “HEA”
|
M
|
Batch Name
|
V X (24) -
|
M
|
Example:
"HEA","filename"
Sterling Inter Account Funds Transfer This record holds details of a transfer between Sterling accounts. –
FIELD NAME
|
CONTENT OR FORMAT
|
MANDATORY / OPTIONAL -
|
OBJECT MAPPING (PAYMENT)
|
Record Identifier
|
F X(3), “STE”
|
M
|
-
|
Debit Sort Code
|
F 9(6)
|
M
|
DebitAccount 1
|
Debit A/C Number
|
F 9(8)
|
M
|
DebitAccount 1
|
Credit Sort code
|
F 9(6)
|
M
|
Beneficiary Account 2
|
Credit A/C Number
|
F 9(8)
|
M
|
Beneficiary Account 2
|
Transfer Amount
|
V Z(9).99
|
M
|
Amount
|
Intended Payment
|
FDate (DD/MMM/YY)
|
O
|
PaymentDate
|
Reference
|
V X(18)
|
O
|
Statement Reference
|
Notes:
1 Debit Sort Code and Debit A/C Number must match a valid account in the system.
2 Credit Sort Code and Credit A/C Number must match a valid account in the system.
Example:
"STE","123456","00080914","120103","00107446","1.01","01JAN11","Transfer No 123A"
Currency Inter Account Funds Transfer This record holds details of a transfer between Currency accounts. –
FIELD NAME
|
CONTENT OR FORMAT
|
MANDATORY / OPTIONAL -
|
OBJECT MAPPING(PAYMENT)
|
Record Identifier
|
F X(3). “CUR”
|
M
|
-
|
Currency Debit 10 digit A/C
|
F X(10)
|
M
|
DebitAccount 1
|
Currency Credit 10 digit A/C
|
F X(10)
|
M
|
Beneficiary Account 2
|
Currency Amount
|
V Z(14)
|
M
|
Amount 3
|
Payment Date
|
FDate (DD/MMM/YY)
|
O
|
PaymentDate
|
Reference
|
V X(18)
|
O
|
Statement Reference
|
Notes:
1 The Currency Debit A/C Number must match a valid account in the system.
2 The Currency Credit A/C Number must match a valid account in the system.
3 The decimal place is implied by the currency.
Example:
"CUR","01234USD03","01234USD02",12345,"01JAN11","Transfer No 123A"
Normal Domestic Payments Value This record holds details of a Domestic Payment. The object mapping column shows the NDP object attributes that are populated by the record. –
FIELD NAME
|
CONTENT OR FORMAT
|
MANDATORY / OPTIONAL -
|
OBJECT MAPPING (PAYMENT)
|
Record Identifier
|
F X(3),“NDP”
|
M
|
-
|
Debit Sort Code
|
F 9(6)
|
M
|
debitAccId.sortCode1
|
Debit A/C Number
|
F 9(8)
|
M
|
debitAccId.number1
|
Credit Sort code
|
F 9(6)
|
M
|
sortCode
|
Credit A/C Number
|
F 9(8)
|
M
|
BACSaccountNo
|
Amount
|
V Z(9).99
|
M
|
amount
|
Beneficiary Name
|
V X(18)
|
M
|
benName, benAccountName
|
Remitter Reference
|
V X(18)
|
M
|
Reference / remitter reference
|
Value Date
|
FDate(DD/MMM/YY)
|
M
|
ValueDate
|
Remitter Name
|
VX(18)
|
O
|
not used
|
Example:
"NDP",012345,01234567,012345,01234567,0123,"Beneficiary","Reference","01JAN11"
Faster Payments Service Value This record holds details of a Faster Payment. The object mapping column shows the FPS object attributes that are populated by the record. –
FIELD NAME
|
CONTENT OR FORMAT
|
MANDATORY / OPTIONAL -
|
OBJECT MAPPING (PAYMENT)
|
Record Identifier
|
F X(3),“FPS”
|
M
|
-
|
Debit Sort Code
|
F 9(6)
|
M
|
debitAccId.sortCode1
|
Debit A/C Number
|
F 9(8)
|
M
|
debitAccId.number1
|
Credit Sort code
|
F 9(6)
|
M
|
sortCode
|
Credit A/C Number
|
F 9(8)
|
M
|
BACSaccountNo
|
Amount
|
V Z(9).99
|
M
|
amount
|
Beneficiary Name
|
V X(18)
|
M
|
benName, benAccountName
|
Remitter Reference
|
V X(18)
|
M
|
Reference / remitter reference
|
Value Date
|
FDate(DD/MMM/YY)
|
M
|
ValueDate
|
Remitter Name
|
VX(18)
|
O
|
not used
|
Notes: 1 Debit Sort Code and Debit A/C Number must match a valid account in the system.
Example:
"FPS",012345,01234567,012345,01234567,0123,"Beneficiary","Reference","01JAN11"
CHAPS This record holds details of a CHAPS Payment. The object mapping column shows the CHAPS object
Attributes that are populated by the record. –
FIELD NAME
|
CONTENT OR FORMAT
|
MANDATORY / OPTIONAL -
|
OBJECT MAPPING (PAYMENT)
| ||
Record Identifier
|
FChar(3),“EDP”
|
M
|
-
| ||
Debit Sort Code
|
F 9(6) -
|
M
|
debitAccId.sortCode1
| ||
Debit a/c Number -
|
F 9(8)
|
M
|
debitAccId.number1
| ||
Credit Sort code -
|
F 9(6) -
|
M
|
SortCode
| ||
Credit a/c Number -
|
V X(20)
|
M
|
CHAPSAccountNo
| ||
Amount -
|
V Z(9).99
|
M
|
amount
| ||
Beneficiary Name -
|
V X(35)
|
M
|
benName, benAccountName
| ||
Beneficiary Address1 -
|
V X(35)
|
M
|
benAddress
| ||
Beneficiary Address2
|
V X(35)
|
M
|
benAddress
| ||
Beneficiary Address3 -
|
V X(35)
|
M
|
benAddress
| ||
Bank Name -
|
V X(35)
|
O
|
benBankName
| ||
Bank Address 1 -
|
V X(35)
|
M
|
benBankAddress
| ||
Bank Address 2 -
|
V X(35)
|
M
|
benBankAddress
| ||
Bank Address 3 -
|
V X(35)
|
M
|
benBankAddress
| ||
Payment Reference -
|
V X(18)
|
O
|
reference
| ||
Advise Beneficiary -
|
V X(1) “Y” or “N” M
|
M
|
adviseBeneficiary
| ||
Payment Details 1 -
|
V X(35)
|
O
|
paymentDetails
| ||
Payment Details 2 -
|
V X(35)
|
O
|
paymentDetails
| ||
Payment Details 3 -
|
V X(35)
|
O
|
paymentDetails
| ||
Payment Details 4 -
|
V X(35)
|
O
|
not used
| ||
Inf. to Payee Bank 1 -
|
V X(35)
|
O
|
infoToPayingBank
| ||
Inf. to Payee Bank 2 -
|
V X(35)
|
O
|
infoToPayingBank
| ||
Inf. to Payee Bank 3 -
|
V X(35)
|
O
|
infoToPayingBank
| ||
Inf. to Payee Bank 4 -
|
V X(35)
|
O
|
infoToPayingBank
| ||
Inf. to Payee Bank 5 -
|
V X(35)
|
O
|
not used
| ||
Inf. to Payee Bank 6 -
|
V X(35)
|
O
|
not used
| ||
IBAN Flag
|
F X(1), T or F
|
O
|
enables use of IBAN
| ||
Beneficiary IBAN M
|
V X(34)
|
M if IBAN flag true
|
ben.IBAN
| ||
Swift BIC Flag
|
F X(1), T or F
|
O
|
ben.BeneficiaryBank
| ||
Swift BIC
|
V X(34)
|
M, if Swift flag true
|
ben.BankSwiftAddress
| ||
Email Confirmation Flag
|
F X(1), T or F
|
O
|
ben.EmailConfirmation
ben.EmailConfirmationAddress
| ||
Email Confirmation
|
V X(100)
|
O
|
ben.EmailConfirmation
ben.EmailConfirmationAddress
|
Notes: 1 Debit Sort Code and Debit A/C Number must match a valid account in the system.
Example:
"EDP",123456,12345678,123456,12345678,0.01,"Ben Name","Ben Add1","Ben Add2","Ben Add3","BnkName","BnkAddr1","BnkAddr2","BnkAddr3","Pay Ref","Y","Pay D1","Pay D2","Pay D3","Pay D4","Inf1","Inf2","Inf3", "Inf4","Inf5","Inf6"
International Payment value This record holds details of an International Payment. The object mapping column shows the International Payment object attributes that are populated by the record. –
Charging instructions available depend on various factors. Please refer to section 3 for further information.
FIELD NAME
|
CONTENT OR FORMAT
|
MANDATORY / OPTIONAL -
|
OBJECT MAPPING (PAYMENT)
|
Record Identifier
|
FX(3) “INP”
|
M
|
-
|
Sterling Debit A/C Flag
|
FX(1)“T” or “F” -
|
M
|
1
|
Debit Sort Code
|
F9(6)
|
M1
|
debitAccid.sortCode
|
Debit A/C Number -
|
F9(8)
|
M1
|
debitAccid.number
|
Currency Debit 10 digit A/C
|
FX(10)
|
M1
|
-
|
Beneficiary A/C Number -
|
VX(34)
|
M
|
intlAccountNo
|
Amount -
|
Z9(12).99
|
M
|
amount
|
Beneficiary Name -
|
VX(35)
|
M
|
benName, benAccountName
|
Beneficiary Address1 -
|
VX(35) -
|
M
|
benAddress
|
Beneficiary Address2 -
|
VX(35) -
|
O
|
benAddress
|
Beneficiary Address3 -
|
VX(35) -
|
O
|
benAddress
|
Bank Name -
|
VX(35)
|
M
|
benBankName
|
Bank Address 1 -
|
VX(35) -
|
M
|
benBankAddress
|
Bank Address 2 -
|
VX(35) -
|
O
|
benBankAddress
|
Empty field -
|
VX(35) -
|
O
|
not used
|
Currency Sent -
|
VX(3)
|
M
|
CurrSent2
|
Currency of Amount -
|
VX(3)
|
M
|
CurrAmount2
|
Instructions to Bank -
|
F9(1)
|
O
|
Not used
|
Priority Processing -
|
FX(1) “Y”
|
M
|
priorityProcessing
|
Charging Instructions -
|
F9(1) -
|
M
|
ChargingInstructions3
|
Remitter Reference -
|
VX(18) -
|
M
|
Reference
|
Conversion Rate -
|
VX(15)
|
O
|
Not Used
|
Forward Contract Number -VX(10) -
|
Forward Contract Number -VX(10) -
| O |
Not Used
|
Deal Number
|
V9(4)
|
O
|
Not Used
|
Payment Details 1 -
|
VX(35) -
|
O
|
paymentDetails
|
Payment Details 2 -
|
VX(35) -
|
O
|
paymentDetails
|
Payment Details 3 -
|
VX(35) -
|
O
|
paymentDetails
|
Payment Details 4 -
|
VX(35) -
|
O
|
paymentDetails
|
Country Code
|
FX(2)
|
M
|
CountryCode4
|
Beneficiary A/c Name -
|
VX(35) -
|
M
|
Beneficiary.AccountName
|
Payment Date
|
FDate(DDMMMYY)
|
O
|
-
|
Use Swift flag
|
FX(1), T or F
|
O
|
Ben.BeneficiaryBank
|
Swift / BIC
|
VX(34)
|
M, if Swift flag
|
Beneficiary.BankSwiftAdd
|
Inst. to Paying Bank 1
|
VX(35)
|
O
|
Payment.InstructionsToPayingBank
|
Inst. to Paying Bank 2
|
VX(35)
|
O
|
Payment.InstructionsToPayingBank
|
Inst. to Paying Bank 3
|
VX(35)
|
O
|
Payment.InstructionsToPayingBank
|
Inst. to Paying Bank 4 -
|
VX(35)
|
O
|
Payment.InstructionsToPayingBank
|
Notes:
1. If the debit account is a sterling account (Sterling Debit A/C Flag = “T”) then the debit sort code and account number must be specified, and the currency account Number field is not used.
If the debit account is an international account (Sterling Debit A/C Flag = “F”) then the 10 digit currency account number or currency sort code and account number must be specified.
2. The currency must match a valid currency in the system.
AED UAE DIRHAM, ILS ISRAELI SHEKEL, SAR SAUDI ARABIAN RIYAL, AUD AUSTRALIAN DOLLAR, INR INDIAN RUPE, SEK SWEDISH KRONOR, JPY JAPAN YEN, SGD SINGAPORE DOLLARS, BHD BAHRAINI DINA, KWD KUWAITI DINAR, THB THAILAND BAHT, CAD CANADIAN DOLLARS, NOK NORWEGIAN KRONE, TRY TURKISH LIRA, CHF SWISS FRANC, NZD NEW ZEALAND DOLLAR, USD UNITED STATES DOLLAR, CZK CZECH KORUNA, OMR OMANI RIAL, DKK DANISH KRONE, ZAR SOUTH AFRICAN RAND, PHP PHILIPPINE PESO, EUR EURO, PKR PAKISTAN RUPEE, GBP GREAT BRITISH POUND,
HKD HONG KONG DOLLARS, PLN POLAND ZLOTY, HUF HUNGARIAN FORINT, QAR QATARI RIAL
3. Charging Instructions must have the value '1', '2' or '3'.
Charge code field within International Payment import file, controls two flags on the International payment (1) Pay Remitting Bank Charges and (2) Pay Receiving Bank Charges.
Charge Code --Charge Flags
1 ------------ (1) T (2) F You pay Bank of Scotland charges only
2 ------------ (1) F (2) F All charges borne by beneficiary
3 ------------ (1) T (2) T You pay all charges
Please note that if the payment is in an EU/EEA currency and is not leaving the EU/EEA the following charging scenarios are applicable;
If a currency conversion is required the charging options applicable are;
Charge Code --Charge Flags
1 ------------ (1) T (2) F You pay Bank of Scotland charges only
Or
3 ------------ (1) T (2) T You pay all charges
If no currency conversion is required the only charging option applicable is;
Charge Code --Charge Flags
1 ------------ (1) T (2) F You pay Bank of Scotland charges only
If the payment is a non EU/EEA currency or is being sent out with the EU/EEA there are no charging restrictions. ------------------------------------––
4. If the Country Code supplied does not match a code present on the system, then an error will be reported and the file will not be imported.
NO Norway, AU Australia, GG Guernsey, PL Poland, AT Austria, HK Hong Kong, PT Portugal, BS Bahamas, HU Hungary, RO Romania, BH Bahrain, IS Iceland, SA Saudi Arabia, BE Belgium, IN India, SG Singapore, BG Bulgaria, IE Ireland, SK Slovakia, CA Canada, IM Isle of Man, SI Slovenia, KY Cayman Islands, IT Italy, ZA South Africa, CN China, JM Jamaica, ES Spain, CY Cyprus, JP Japan, SE Sweden, CZ Czech Republic, JE Jersey, CH Switzerland, DK Denmark, KW Kuwait, TW Taiwan, EG Egypt, LV Latvia, TH Thailand, EE Estonia, LI Lichtenstein, TR Turkey, FI Finland, LT Lithuania, AE United Arab Emirates, FR France, LU Luxembourg, US United States of America, DE Germany, MT Malta, VG British Virgin Islands, GB Great Britain, NL Netherlands, GR Greece, NZ New Zealand
Example:
"INP","T",123456,12345678,,12,123456,"Ben","Ben Ad1","Ben Ad2","Ben Ad3","Bank Name",“Bank Ad1","Bank Ad2","Bank Ad3","GBP","USD","Bank's Inst","Prio Pro”,"Inst Char","Remit's Ref","Contract Rate","For Contract Num",,"Pay Det1","Pay Det2","Pay Det3","Pay Det4","US"
Trailer Value The format for the file trailer record is: –
Import & ExFIELD NAME
|
CONTENT OR FORMAT
|
MANDATORY/OPTIONAL
|
Record Code
|
F X(3) “TRA”
|
M
|
No of Payments
|
F 9(4)
|
M
|
Example:
"TRA",0012 <CR>
BACS FORMAT IMPORT FILE
Bacs Format is used to create Bacs Direct Payment instructions only.
Bacs file format consist of a single file with any number of records in the file. The Bacs input file name is used as the Batch name. No existing batch can have this name, or the error message “A batch with the same name already exists. Rename the file and try again.” is produced.
Each record is delimited by a new line. There may be any number of records prior to the User Header Label these are ignored. The User Header Label is optional. If no User Header Label is present then the first record must be a payment record. –
If no UHL is present then the processing date is set to the next working day.
There may be any number of records between the last CONTRA record and the User Trailer Label these are ignored. –
These records must be identified by EOF in the Label Identifier field.
Any records after the User Trailer Label are ignored.
The following is an example of Bacs file format.
Header Records
|
-
|
Optional any number prior to UHL–
|
User Header Label 1
|
-
|
Optional
|
Payment record
|
-
|
-
|
Payment record
|
-
|
-
|
-
|
:
|
Payment record group repeated N times
|
Payment record
|
-
|
-
|
Contra record
|
-
|
-
|
Payment record
|
-
|
-
|
Payment record
|
-
|
-
|
-
|
:
|
Payment record group repeated N times
|
Payment record
|
-
|
-
|
Contra record
|
-
|
-
|
End of File 1
|
-
|
End of file records are optional
|
End of File 2
|
-
|
-
|
User Trailer Label 1
|
-
|
-
|
BACS USER HEADER LABEL
FIELD NAME
|
CONTENT OR FORMAT
|
MANDATORY/OPTIONAL
|
Record identifier
|
F X(3) “UHL”
|
M
|
Label Number
|
F 9(1)
|
M
|
Filler
|
F X(1)
|
M
|
Value Date
|
F 9(5) YYDDD
|
M
|
Notes: The Value date for each payment will be set to the Value date as above. The date is in Julian format. The date
must be a valid payment date.
Example:
UHL1 11277
PAYMENT RECORD (Bacs Credit Section)
Payment records are used to generate Bacs Credits (within a Bacs Direct Payment). They are validated in the
same way as for on-line payments. Beneficiary details are therefore mandatory. All payment records prior to a
Contra record must have the same remitter sort code and account number. If this is not true the batch data will
be rejected with error “The Bacs payment account number does not match that of the preceding record.”
NAME
|
CONTENT OR FORMAT
|
MANDATORY/OPTIONAL
|
OBJECTS MAPPING (BCSINS)
|
Beneficiary Sort Code -
|
F 9(6) -
|
M -
|
sortCode
|
Beneficiary Account No. -F 9(8) -
|
Beneficiary Account No. -F 9(8) -
|
M
| BACSAccountNo |
Filler
|
F X(1)
|
O
|
Not used
|
Transaction Code
|
F 9(2).
|
M
|
Not used
|
Remitters Sort Code
|
F 9(6)
|
M
|
debitAccId.sortCode1
|
Remitters Account No.
|
F 9(8)
|
M
|
debitAccid.Number1
|
Filler -
|
F X(4)
|
O
|
Not used
|
Amount -
|
F 9(11)
|
M -
|
amount in pence
|
Remitters Name
|
F X(18)
|
M -
|
Not used
|
Remitters Reference -
|
F X(18) -
|
M -
|
BACSMandateRef
|
Beneficiary Name
|
F X(18)
|
M
|
M benName
|
Notes: 1 Debit Sort Code and Debit A/C Number must match a valid account in the system.
Example:
1201030110030401712010300107446000000000000500Remitters Name Remitters Refer Beneficiary Name
CONTRA Record The CONTRA record is to be checked to ensure that the amount in the Contra record is equal to the
value of preceding payment records. Contra record by itself does not generate a payment record. If the amounts do not
match, the batch file will be rejected with error “A Contra record did not equal the sum of its Payment records”. –
FIELD NAME
|
CONTENT OR FORMAT
|
MANDATORY/OPTIONAL
|
Remitters Sort Code1
|
F 9(6) -
|
M
|
Remitters Account Number1
|
F 9(8) -
|
M
|
Filler
|
F X(1)
|
O
|
Transaction Code
|
F 9(2), “99” -
|
M
|
Remitters Sort Code1
|
F 9(6) -
|
M
|
Remitters Account Number1
|
F 9(8) -
|
M
|
Filler
|
F X(4)
|
O
|
Amount2
|
F 9(11), in pence
|
M
|
Remitters Narrative
|
F X(18) -
|
O
|
Record Label
|
F X(18), “CONTRA”
|
M
|
Beneficiary Name
|
F X(18)
|
O (Not used)
|
Notes:
1 Must match previous records
2 Must match sum of previous records. This value is in pence, i.e. 2 decimal places implied.
Example:
12345601234567099123456012345123412345678901 Remitters NarrativCONTRA Beneficiary Name12
User Trailer Label If the validation of this record fails then it will reject the batch with error “The Trailer
Record values do not match the sum of Payment records”. ––
NAME
|
CONTENT OR FORMAT
|
MANDATORY/OPTIONAL
|
Record Label
|
F X(4),UTL1 -
|
M
|
Total Value of Debits1
|
F 9(13), value in pence -
|
M
|
Total Value of Credits1
|
F9(13), value in pence
|
M
|
Total Number of Debits2
|
F9(7) -
|
M
|
Total Number of Credits3
|
F9(7) -
|
M
|
Notes:
1 The value of credits must equal the value of debits, which must be equal to the value of all preceding payment records.
2 The number of debits must equal the number of Contra records.
3 The number of credits must equal the number of Payments records.
Example:
UTL11234567890123123456789012312345671234567<CR>
