Overview
We have modified the pdpExtractChecksJob and pdpExtractAchPaymentsJob to support the ISO 20022 standard bank format for creating checks and ACH files. The proprietary format was deprecated as of 5/31/2023.
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
- 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
- Standard Entry Class is required.
Set up
- 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 There will be one for each vendor payment, multiple PREQs, DVs and credit memos. |
<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 |
<AddtlRmtInf></AddtlRmtInf> |
DV and PREQ Check Stub Notes. |
</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.