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.