You are on page 1of 9

XDO file name: Mapping of Payment Format: Date: 3/9/2006

IBYDE_N_US_en.rtf Generic US NACHA Format

Format Setup:
Hint: Define formatting options…
<TEMPLATE TYPE> FIXED_POSITION_BASED
<OUTPUT CHARACTER SET> iso-8859-1
<CASE CONVERSION> Upper
<NEW RECORD CHARACTER> Carriage Return

Format Data Levels:


Hint: Define data levels that are needed in the format which do not exist in data extract…
<DEFINE LEVEL> PayMethodPayerInstrumentPayDate
<BASE LEVEL> OutboundPayment
<GROUPING CRITERIA> PaymentMethod/PaymentMethodFormatValue,
Payer/PartyInternalID,
BankAccount/BankAccountInternalID,
PaymentDate
<END DEFINE LEVEL> PayMethodPayerInstrumentPayDate

Sequences:

Hint: Define sequence generators…


<DEFINE SEQUENCE> PaymentsSeq
<RESET AT LEVEL> PayMethodPayerInstrumentPayDate
<INCREMENT BASIS> LEVEL
<START AT> 1
<END DEFINE SEQUENCE > PaymentsSeq

<DEFINE SEQUENCE> FileSeq


<RESET AT LEVEL> PERIODIC_SEQUENCE
<INCREMENT BASIS> LEVEL

1
<START AT> /
OutboundPaymentInstruction/PaymentInstructio
nInfo/PaymentSequence[SequenceName=
‘US_NACHA_DAILY_SEQ’]/LastValue + 1
<MAXIMUM> 99
<END DEFINE SEQUENCE > FileSeq

<DEFINE SEQUENCE> BatchSeq


<RESET AT LEVEL> OutboundPaymentInstruction
<INCREMENT BASIS> LEVEL
<START AT> 1
<MAXIMUM> 9999999999
<END DEFINE SEQUENCE > BatchSeq

Concatenated Records:

Hint: Define fields that are composed of concatenated records…


<DEFINE CONCATENATION> AddendaContent
<BASE LEVEL> DocumentPayable
<ELEMENT> ‘RMR*IV*’ || DocumentNumber/ReferenceNumber
|| ‘**’ || PaymentAmount/Value || ‘\’
<DELIMITER> ‘’
<END DEFINE CONCATENATION> AddendaContent

Format Data Records:


Hint: This is the body of the format. Define your format records here.
Create one table for each record or group of records that are at the same level.

<BEGIN FILLER BLOCK> AllRecordsBlock


<FILLER CHARACTER> 9
<BLOCK SIZE> 10

<LEVEL> OutboundPaymentInstruction
<POSITION> <LENGTH> <FORMAT> <PAD> <DATA> <COMMENTS>

2
<NEW RECORD> FILE_HEADER
1 1 Number L, ‘0’ 1 Record Type Code
2 2 Number L, ‘0’ 1 Priority Code
4 1 Alpha R, ‘ ‘ Immediate Destination: the first
position is a blank
5 9 Number L, ‘0’ PaymentInstructionInfo/Payme Immediate Destination: the
ntSystemAccount/AccountSetti second to the tenth position of
ngs[Name=’RECEIVING_BANK_9DI this field is the ABA routing
GIT_ABA’]/Value number of the receiving bank of
this payment file. The ABA
routing number is a nine digit
number composed of three
parts. The first four digits are
the Federal Reserve Routing
Symbol; the next four digits are
the ABA Institution Identifer; and
the last one digit is the check
digit.
14 1 Number L, ‘0’ 1 Immediate Origin: mutually
defined – ANSI one-digit ICD
15 9 Alpha L, ‘0’ REPLACE(PaymentInstructionIn Immediate Origin
fo/PaymentSystemAccount/Acco
untSettings[Name=’SENDER_ID’
]/Value, ‘-‘)
24 6 Date, SYSDATE File Creation Date
YYMMDD
30 4 Date, SYSDATE File Creation Time (Military
HHMM Time)
34 1 Alpha R, ‘ ‘ DECODE(SEQUENCE_NUMBER(FileS File ID Modifier.
eq), 1, ‘A’, 2, ‘B’, 3, ‘C’,
4, ‘D’, 5, ‘E’, 6, ‘F’, 7,
‘G’, 8, ‘H’, 9, ‘I’, 10,
‘J’, 11, ‘K’, 12, ‘L’, 13,
‘M’, 14, ‘N’, 15, ‘O’, 16,
‘P’, 17, ‘Q’, 18, ‘R’, 19,
‘S’, 20, ‘T’, 21, ‘U’, 22,
‘V’, 23, ‘W’, 24, ‘X’, 25,
‘Y’, 26, ‘Z’)
35 3 Number L, ‘0’ 94 Record Size

3
38 2 Number L, ‘0’ 10 Blocking Factor
40 1 Number L, ‘0’ 1 Format Code
41 23 Alpha R, ‘ ‘ PaymentInstructionInfo/Payme Immediate Destination Name
ntSystemAccount/AccountName
64 23 Alpha R, ‘ ‘ PaymentInstructionInfo/Payme Immediate Origin Name.
ntSystemAccount/AccountSetti
ngs[Name=’SENDER_NAME’]/Valu
e
87 8 Alpha R, ‘ ‘ Optional Reference Code.

<LEVEL> PayMethodPayerInstrumentPayDate
<POSITION> <LENGTH> <FORMAT> <PAD> <DATA> <COMMENTS>
<NEW RECORD> BATCH_HEADER
1 1 Number L, ‘0’ 5 Record Type Code
2 3 Number L, ‘0’ 200 Service Class Code
5 16 Alpha R, ‘ ’ OutboundPayment/Payer/LegalE Company Name
ntityName
21 20 Alpha R, ‘ ‘ / Company Discretionary Data
OutboundPaymentInstruction/P
aymentInstructionInfo/Instru
ctionReferenceNumber
41 1 Number L, ‘0’ 1 Company Identification: first
position is ANSI one-digit ICD
(Identification Code
Designators):
1 = IRS Employer Identification
Number (EIN)
3 = Data Universal Numbering
Systems (DUNS)
9 = Mutually Defined
42 9 Alpha L, ‘0’ REPLACE(OutboundPayment/Paye Company Identification.
r/LegalEntityRegistrationNum Same as position 14 in the file
ber, ‘-‘) header rec

51 3 Alpha R, ‘ ‘ OutboundPayment/PaymentMetho Standard Entry Class Cpde


d/PaymentMethodFormatValue
54 10 Alpha R, ‘ ‘ Company Entry Description.
64 6 Alpha R, ‘ ‘ Company Descriptive Date. Not

4
used
70 6 Date, OutboundPayment/PaymentDate Effective Entry Date
YYMMDD
76 3 Alpha R, ‘ ‘ Settlement date. Reserved for
ACH operator. Leave blank
79 1 Number L, ‘0’ 1 Originator Status Code
80 8 Number L, ‘0’ OutboundPayment/BankAccount/ Originating DFI Identification.
BranchNumber This is the first 8 digits of the
ABA routing number of the
receiving bank (internal bank) –
without the check digit.
88 7 Number L, ‘0’ SEQUENCE_NUMBER(BatchSeq) Batch Number. This is the
sequence number for the batch
– it must match position 88 to
94 of batch control rec.

<LEVEL> OutboundPayment
<SORT ASCENDING> Payee/Name
<POSITION> <LENGTH> <FORMAT> <PAD> <DATA> <COMMENTS>
<NEW RECORD> ENTRY_DETAIL_CR
1 1 Number L, ‘0’ 6 Record type
2 2 Alpha R, ' ' DECODE(PaymentAmount/Value, Transaction Code
0,'23','22')

4 9 Number L, ‘0’ PayeeBankAccount/BranchNumbe Receiving DFI Identification


r (including check digit)
13 17 Alpha R, ' ' PayeeBankAccount/BankAccount DFI Account Number
Number
30 10 Number, L, ‘0’ ROUND(PaymentAmount/Value*10 Amount
Integer 0)
40 15 Alpha R, ' ' PaymentNumber/PaymentReferen Identification Number
ceNumber
55 22 Alpha R, ' ' Payee/Name Receiving Company Name/ID
Number
77 2 Alpha R, ' ' Discretionary Data
79 1 Number L, ‘0’ 1 Addenda record Indicator
80 8 Number L, ‘0’ BankAccount/BranchNumber ODFI Routing Number

5
88 7 Number L, ‘0’ SEQUENCE_NUMBER(PaymentsSeq) Entry Detail Sequence. Numeric
sequence starting at 1 within
the batch
<NEW RECORD> ADDENDA
<DISPLAY CONDITION> PaymentMethod/PaymentMethodFormatValue = ‘CCDP’ OR
PaymentMethod/PaymentMethodFormatValue = ‘PPDP’
1 1 Number L, ‘0’ 7 Record type
2 2 Alpha L, ‘0’ 5 Addenda Type Code

4 80 Alpha R, ' ' AddendaContent Payment Related Information


84 4 Number L, ‘0’ 1 Addenda Sequence Number
88 7 Number L, ‘0’ SEQUENCE_NUMBER(PaymentsSeq) Entry Detail Sequence. Same
value as in proceeding
ENTRY_DETAIL_CR record
<END LEVEL> OutboundPayment

<LEVEL> PayMethodPayerInstrumentPayDate
<POSITION> <LENGTH> <FORMAT> <PAD> <DATA> <COMMENTS>
<NEW RECORD> ENTRY_DETAIL_DR
1 1 Number L, ‘0’ 6 Record Type Code
2 2 Alpha R, ' ' DECODE(SUM(OutboundPayment/P Transaction Code
aymentAmount/Value)*100,
0,'28','27')

4 9 Number L, ‘0’ OutboundPayment/BankAccount/ Receiving DFI Identification


BranchNumber including the check digit
13 17 Alpha R, ' ' InstructionGrouping/BankAcco DFI Account Number
unt/BankAccountNumber
30 10 Number, L, ‘0’ ROUND(SUM(OutboundPayment/Pa Amount
Integer ymentAmount/Value)*100)
40 15 Alpha R, ' ' ‘BATCH_NAME’ Indicates the next field is batch
name
55 22 Alpha R, ' ' OutboundPayment/Payer/PartyN Batch reference
umber || ‘ ‘ ||
OutboundPayment/BankAccount/
BankAccountNumber || ‘ ‘ ||
TO_CHAR(OutboundPayment/Paym

6
entDate, ‘MMDD’)
77 2 Alpha R, ' ' Discretionary Data
79 1 Number L, ‘0’ 0 Addenda record Indicator
80 8 Number L, ‘0’ OutboundPayment/BankAccount/ ODFI Routing Number
BranchNumber
88 7 Number L, '0' COUNT(OutboundPayment) + 1 Trace Number
<NEW RECORD> BATCH_CONTROL
1 1 Number L, ‘0’ 8 Record Type Code
2 3 Number L, ‘0’ 200 Service Class Code
5 6 Number L, ’0’ COUNT(ENTRY_DETAIL_CR) + Entry/Addenda count
COUNT(ADDENDA) + 1
11 10 Number L, ‘0’ SUBSTR(to_char(SUM(TO_NUMBER Entry Hash
(SUBSTR
(OutboundPayment/PayeeBankAc
count/BranchNumber,1,8)))),
Length(SUM(TO_NUMBER(SUBSTR
(OutboundPayment/PayeeB
ankAccount/BranchNumber
,1,8))))-9 )
21 12 Number, L, ‘0’ ROUND(SUM(OutboundPayment/Pa Total Debit Dollar Amount of
Integer ymentAmount/Value)*100) Batch
33 12 Number, L, ‘0’ ROUND(SUM(OutboundPayment/Pa Total Credit Dollar Amount of
Integer ymentAmount/Value)*100) Batch
45 1 Number L, ‘0’ 1 Company Identification: first
position is ANSI one-digit ICD
(Identification Code
Designators):
1 = IRS Employer Identification
Number (EIN)
3 = Data Universal Numbering
Systems (DUNS)
9 = Mutually Defined
46 9 Alpha L,’0’ REPLACE(OutboundPayment/Paye Company Identification.
r/LegalEntityRegistrationNum Same as position 14 in the file
ber, ‘-‘) header rec

55 25 Alpha R, ‘ ‘ Message Authentication Code


AND Reserved Space

7
80 8 Number L, ‘0’ OutboundPayment/BankAccount/ Originating DFI Identification
BranchNumber
88 7 Number L, ‘0’ SEQUENCE_NUMBER(BatchSeq) Batch Number. Same as last
field of Record 5
<END LEVEL> PayMethodPayerInstrumentPayDate

<LEVEL> OutboundPaymentInstruction
<POSITION> <LENGTH> <FORMAT> <PAD> <DATA> <COMMENTS>
<NEW RECORD> FILE_CONTROL
1 1 Number L, ‘0’ 9 Record Type Code
2 6 Number L, ‘0’ 1 Batch Count
8 6 Number L, ‘0’ CEIL(((COUNT(ENTRY_DETAIL_CR Block Count. Total number of
) + COUNT(ADDENDA) + records in the file, divided by
COUNT(BATCH_HEADER) + ten and rounded up. All
COUNT(ENTRY_DETAIL_DR) + records, including both the File
COUNT(BATCH_CONTROL))+2) DIV Header and File Control
(10)) Records are included in the
block count.
14 8 Number L, ‘0’ COUNT(ENTRY_DETAIL_CR) + Entry/Addenda Count.
COUNT(ADDENDA) +
COUNT(ENTRY_DETAIL_DR)
22 10 Number L, ‘0’ SUBSTR(to_char(SUM(TO_NUMBER Entry Hash
(SUBSTR
(OutboundPayment/PayeeBankAc
count/BranchNumber,1,8)))),
Length(SUM(TO_NUMBER(SUBSTR
(OutboundPayment/PayeeB
ankAccount/BranchNumber
,1,8))))-9 )
32 12 Number, L, ‘0’ ROUND(SUM(OutboundPayment/Pa Total Debit Entry Dollar Amount
Integer ymentAmount/Value)*100) in File
44 12 Number, L, ‘0’ ROUND(SUM(OutboundPayment/Pa Total Credit Entry Dollar Amount
Integer ymentAmount/Value)*100) in File
56 39 Alpha R, ‘ ‘ Blank

<END LEVEL> OutboundPaymentInstruction

8
<END FILLER BLOCK> AllRecordsBlock

You might also like