Overview
We have modified the pdpExtractChecksJob and pdpExtractAchPaymentsJob to support the ISO 20022 standard bank format for creating checks and ACH files. We will be deprecating the proprietary format that is currently delivered with Kuali Financials in the 3rd quarter of 2022.
Parameter ISO20022_FORMAT_IND controls which format is used. Set the parameter to Y to use the ISO 20022 format.
- pdpExtractChecksJob runs as part of the Format Checks / ACH process.
- pdpExtractAchPaymentsJob runs nightly or can be run on demand.
- Both jobs create .xml and .done files and places them in the staging/pdp/paymentExtract folder.
What Changed?
We made the following changes to support the new file format:
- Modified batch jobs:
- pdpExtractChecksJob
- pdpExtractAchPaymentsJob
- Added three fields to the Bank table:
- Bank Identification Code
- ACH Institution ID
- ACH Institution Scheme Name
- Added validation to require the above fields when the ISO20022_FORMAT_IND = Y
- Bank Identification Code is required when the Bank Check flag is checked
- ACH fields are required when the Bank ACH flag is checked.
- Added Standard Entry Class to the Payee ACH Account.
- Valid values are PPD, CCD and CTX
- This field is required when the ISO20022_FORMAT_IND = Y
Set up
- Set parameter ISO20022_FORMAT_IND = Y
- Update the appropriate Bank:
- Verify the Routing Number is valid - the format process uses the Routing Number to get the bank name and address.
- Verify the appropriate flags are set - Bank ACH and Bank Check - setting these flags will enforce the appropriate business rules when the ISO parameter = Y.
- Set the Bank Identification Code (BIC) - the format process uses this when creating the check and ach xml files.
- Set the ACH Institution ID and ACH Institution Scheme Name - the pdpExtractAchPaymentsJob uses these flags to create the ach xml file.
- NOTE: The BIC and ACH fields are provided by your bank.
- Update the ACH Payees - set the Standard Entry Class for each ACH Payee - valid values are PPD, CCD and CTX.
- PPD - Individuals
- CCD - Corporations
- CTX - Corporate Trade Exchange
Sample Files
File Format
xsd is availble here: https://wiki.xmldation.com/Support/ISO20022/List_of_Rules/Pain.001.001.03
XML Tag/Element | Description |
<?xml version="1.0" encoding="UTF-8" ?> |
|
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"> | |
<CstmrCdtTrfInitn> |
Start of the entire transmission file |
<GrpHdr> | Control Information |
<MsgId></MsgId> |
Process ID - generated by PDP when Format Checks / ACH is run |
<CreDtTm></CreDtTm> |
Timestamp when the file is created |
<NbOfTxs></NbOfTxs> |
Number of payments in the file - Number of <CdtTrfTxInf> elements |
<CtrlSum></CtrlSum> | Total amount of payments in the file - total of <CdtTrfTxInf> elements |
<InitgPty> <Nm></Nm> </InitgPty> |
Your institution name from parameter: INSTITUTION_NAME |
</GrpHdr> |
End control information |
<PmtInf> |
Payments included in this file |
<PmtInfId></PmtInfId> |
Sequential identifier for this file |
<PmtMtd></PmtMtd> |
Identifies the type of payment:
|
<NbOfTxs></NbOfTxs> | Number of payment instructions (<CdtTrfRxInf> elements) within this <PmtInf> group |
<CtrlSum></CtrlSum> | Total of payment instruction amounts (<CdtTrfRxInf> elements) within the (<PmtInf> element). |
<PmtTpInf> <SvcLvl> <Cd>NURG</Cd> </SvcLvl> </PmtTpInf> |
ACH only Hard coded to NURG |
<ReqdExctnDt></ReqdExctnDt> |
Date that will printed on the checks in this batch from the Process ID Date. |
<Dbtr> |
Institution information |
<Nm></Nm> | Institution name from the INSTITUTION_NAME parameter. |
<PstlAdr></PstlAdr> |
Institution Address from Customer Profile / Customer Profile Tab |
<Id> <OrgId> |
ACH Only |
<Id></Id> |
ACH Institution ID field from the Bank table |
<SchmeNm> <Prtry></Prtry> </SchmeNm> |
ACH Institution Scheme Name from the Bank table |
</Othr> </OrgId> </Id> |
End ACH Only |
</Dbtr> |
End Institution information |
<DbtrAcct> |
Institution Bank Account information |
<Id> <Othr> </Id> |
Bank Account Number to be debited and printed on MICR line. Source: Bank code on the payment. |
<Ccy>USD</Ccy> |
Currency - hard coded |
</DbtrAcct> |
End institution bank account information |
<DbtrAgt> <FinInstnId> |
Institution bank information |
<BIC></BIC> | Bank Identification Code from the Bank table. |
<ClrSysMmbId> <MmbId></MmbId> </ClrSysMmbId> |
Bank Routing number from the Bank table. |
<PstlAdr></PstlAdr> |
Bank address from the ACH Bank table based on the routing number from the Bank table. |
</FinInstnId> </DbtrAgt> |
End bank information |
<CdtTrfTxInf> |
Vendor Payment Checks: there will be one for each vendor payment, multiple invoices/credit memos. ACH: there will be one for each payment - ACH payments are not bundled. If there is a credit memo, a check will be issued. |
<PmtId> | Disbursement ID Information |
<InstrId></InstrId> | Bank Code / Disbursement Number - does not print on the check |
<EndToEndId></EndToEndId> | Disbursement Number - does not print on the check |
</PmtId> | End Disbursement ID Information |
<PmtTpInf> <LclInstrm> <Cd>CCD</Cd> </LclInstrm> </PmtTpInf> |
ACH Only - Standard Entry Class from the Payee ACH Account table.
|
<Amt> <InstdAmt Ccy="USD"></InstdAmt> </Amt> |
Amount and currency to be printed on the check or transferred via ACH. |
<ChqInstr> | Check Only - Check instructions |
<ChqNb></ChqNb> | Disbursement Number |
<DlvryMtd> <Prtry></Prtry> </DlvryMtd> |
|
<FrmsCd>A1</FrmsCd> | Check design to use - hardcoded A1 |
</ChqInstr> | End check instructions |
<CdtrAgt> <FinInstnId> |
ACH Only - Payee bank information |
<ClrSysMmbId> <MmbId></MmbId> </ClrSysMmbId> |
Routing number from Payee ACH Account |
<Nm></Nm> | Bank name from the ACH Bank table based on the routing number from the Payee ACH Account table. |
<PstlAdr></PstlAdr> | Bank address from the ACH Bank table based on the routing number from the Payee ACH Account table. |
</FinInstnId> </CdtrAgt> |
End ACH Only Payee bank information |
<Cdtr> | Payee information |
<Nm></Nm> | Payee name |
<PstlAdr></PstlAdr> | Payee address |
<Id> |
Payee information (cont.) |
<Id></Id> |
Payee / Vendor number |
<SchmeNm> |
ACH only - hard coded CHID |
</Othr> </Id> </Cdtr> |
End payee information |
<RmtInf> |
Invoices/Credit Memos bundle NOTE: The following fields should be suppressed for ACH payments unless the standard entry class is PPD+ or CCD+. We are sending this information with the ACH file for now and the bank will be treating them as PPD+ and CCD+. We have logged a ticket to address at a later time. |
<Ustrd></Ustrd> |
Remittance information that can be printed on each check, up to 140 characters comes from Check Header Note lines 1-4 on Customer Profile. |
<Strd> |
Individual invoice / credit memo |
<RfrdDocInf> |
Reference information |
<Tp> |
Credit Memos will be set to CREN; all other payments will be set to CINV |
<Nb></Nb> |
Invoice / Credit Memo number |
<RltdDt></RltdDt> |
Invoice / Credit Memo date |
</RfrdDocInf> |
End reference information |
<RfrdDocAmt> |
Amount information Note: all amounts will display as positive numbers. |
<DuePyblAmt Ccy="USD"></DuePyblAmt> |
Invoice Amount |
<DscntApldAmt Ccy="USD"></DscntApldAmt> |
Discount |
<RmtdAmt Ccy="USD" ></RmtdAmt> |
Net Payment |
</RfrdDocAmt> |
End amount information |
<CdtrRefInf> |
Purchase Order number |
</Strd> |
End individual invoice/credit memo |
</RmtInf> |
End invoice/credit memo bundle |
|
End vendor payment |
</PmtInf> </CstmrCdtTrfInitn> </Document> |
Closing elements |
Comments
0 comments
Please sign in to leave a comment.