/
UCI PDP Pre-Paid Voucher Upload from Aperek

UCI PDP Pre-Paid Voucher Upload from Aperek

Revision History

DateInitialDescription
07/03/18SWXML header specification change. Max line is now 5,000
07/31/17MPSChanged bank code from NYM2 to NYM5
06/08/17KTIncluded the current AMS payment upload spec for cash based accounting
05/04/17KTSpecified that the Aperek Disbursement Number should be 9 digits long
04/28/17KTInitial

Uploading Payments from Aperek

You may create pre-paid voucher files in Aperek and upload the file to the SFTP(XFER) server.   This process will record payments after the fact in PDP without generating checks or ACH from KFS itself and generate necessary GL entries (cash based).   The detailed payment records are ultimately used for tax reporting including bi-weekly EDD reporting,1099 reporting; and responses to various UCOP purchasing related inquiries.   The GL entries will be fed back to Med Center SMS GL system on the 5th day of the month for Medical Center month-end closing.

References

This process replaces the current AMS to KFS Payment upload process which supports cash based accounting.   See AMS to KFS Payment Upload specification document.

XML Element Definition

Element / Attribute

Data Type

Req'd?

Description

Example

<pdp_file>

 

Req

 

 

xmlns

String

Req

Always:xmlns="http://www.kuali.org/kfs/pdp/payment"

 

xmlns:xsi

String

Req

Always:xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 

xsi:schemaLocation

String

Req

Always:xsi:schemaLocation="http://www.kuali.org/kfs/pdp/payment http://localhost:8080/kuali-dev/static/xsd/pdp/payment.xsd"

 

version

 

 

Always:version="1.0"

 

<header>

 

 

 

 

<chart>

StringMin Len: 2Max Len: 2

Req

Chart of accounts code. First part of the PDP Customer Profile

MC

<unit>

StringMin Len: 1Max Len: 4

Req

This is a four character description of the unit. Second part of the PDP Customer Profile.

APRK

<sub_unit>

[UCIKFS:A-Z]{1,4}

Req

Four digit code that describes the source of the PDP file. The last part of the PDP Customer Profile.

AP

<creation_date>

String

Req

Date file is created. Format is yyyy-mm-ddThh:mm:ss (Please notice the T separating the Date and Time)

2017-07-16T09:00:00

</header>

 

Req

 

 

<group>

 

Req

The <group> element combines payments to a single vendor or payee. Each <group> element will contain one or more <detail> elements (described below) to provide information about individual payments.

 

<payee_name>

StringMin Len: 1Max Len: 40

Req

Name of the vendor or individual for which the payment is intended.

ABC CLEARNING SERVICES

<payee_id>

StringMin Len: 0Max Len: 25

Opt

This is the Vendor Number that exists in KFS.  This would also be the Student ID for students.

 

Required Attribute: id_type="A"

12345678

<payee_own_cd>

String[UCIKFS:A-Z][UCIKFS:A-Z]

Opt

Fill in one of the applicable ownership types. It will be used for 1099 reporting.

Ownership CodeDescription
CPCorporation
ETTrust/Estate
GVGovernment
IDIndividual/Sole Proprietor
NPNon-Profit
PTPartnership
LPLLP Limited Liab Partnership
LCLLC C Corporation
AIForeign Individual
FOForeign Ownership
TEUS Tax Exempt Org
LRLLC Partnership
LSLLC S Corporation

CP

<customer_institution_identifier>

StringMin Len: 0Max Len: 30

Opt

Unit defined. For example, the customer number the vendor associates with our account. Leave blank

 

<address1>

StringMin Len: 1Max Len: 45

Req

Address to which payment is to be sent. There may be up to four address lines. Do not include city, state, or zip code.

CUSTOMER PAYMENT CENTER

<address2>

StringMin Len: 0Max Len: 45

Opt

Address to which payment is to be sent. There may be up to four address lines. Do not include city, state, or zip code.

PO BOX 1234

<city>

StringMin Len: 0Max Len: 45

Opt

City to which payment is to be sent.

Irvine

<state>

StringMin Len: 0Max Len: 30

Opt

State to which payment is to be sent.

CA

<zip>

StringMin Len: 0Max Len: 20

Opt

Zipcode to which payment is to be sent.

92697-4600

<country>

StringMin Len: 0Max Len: 30

Opt

Country to which payment is to be sent.

USA

<campus_address_ind>

[UCIKFS:Y,N]

Opt

Y – Payee address is on-campus.
N – Payee address is off-campus.

N

<payment_date>

String

Req

Date payment is due or the check produced. Format is yyyy-mm-dd.  This would normally be the due date.

2017-07-16

<attachment_ind>

[UCIKFS:Y,N]

Opt

Y – Indicates that an attachment has been mailed or faxed
N – No attachment

N

<special_handling_ind>

[UCIKFS:Y,N]

Opt

Y – Indicates special handling is required. Use this to indicate Pick Up check.
N – No special handling required.

N

<taxable_ind>

[UCIKFS:Y,N]

Opt

Y – Taxable expense (Y for 1099)
N – Tax-exempt expense

Y

<nra_ind>

[UCIKFS:Y,N]

Opt

Y – Vendor is non-resident alien
N – Vendor is US citizen

If you set up a customer with the NRA Check Indicator checked and that customer uploads a payment with the nra_ind set to "Y" then that payment will load into PDP in "Held for Tax" status. Payments in this status won't get pulled in when a format process is run. The idea is that you'd want someone to review this for tax issues before you make the disbursement.  If it is ok they would remove the hold. If it's not they would probably cancel the payment.
 
There's currently a bug related to removing the tax hold where the folks who should have that permission don't appear to. This is reported in JIRA as KFSMI-5595.

N

<combine_group_ind>

[UCIKFS:Y,N]

Opt

Y – Payment may be combined with other payments to the same vendor
N – Payment should not be grouped with other payments to the same vendor

Y

<bank_code>

StringMin Len: 0Max Len: 4

Opt

Bank code defined in the KFS for Medical Center.

WEL9 for Wells Fargo (check)

NYM5 for Mellon Bank (ACH)

WEL9

<disbursement_date>String

Required if <pmt_stat_cd> is EXTR otherwise omit

Disbursement date.2017-07-16
<disbursement_number>

integer

Len: 9

Required if <pmt_stat_cd> is EXTR otherwise omitDisbursement number. This could be an ACH number or check number. Note: Aperek disbursement number should be 9 digits.123456789
<disbursement_type>

String

Len: 4

Required if <pmt_stat_cd> is EXTR otherwise omitDisbursement Type. CHCK for check, ACH for ACH.CHCK
<pmt_stat_cd>

String

Len: 4

ReqHard code EXTR (extracted)EXTR

<detail>

 

Req

Every <group> element must contain at least one <detail> sub-element. The contents of the <detail> element provide information about a single payment to the vendor described in the parent <group> element (described above). Each <detail> element will contain one or more <accounting> elements (described below).  KFS supports up to 5,000 details per group (was changed from 9,999 as of 7/3/2018).

 

<source_doc_nbr>

[UCIKFS:A-Za-z0-9]{1,14}

Req

This will be an identifying number that can be searched on. Could be used to identify a batch of payments. From KFS, it is the same as the document number. Use this attribute to pass the Image Id if you are using DDM scanning services.

12345

<invoice_nbr>

[UCIKFS:A-Za-z0-9]{1,14}

Opt

The number that identifies the payment. This can be searched on. From KFS, it is the same as the Payment Request Number.

INV1

<po_nbr>

StringMin Len: 1Max Len: 9

Opt

Purchase Order number

12345

<req_nbr>

StringMin Len: 1Max Len: 8

Opt

Requisition number

12345

<org_doc_nbr>

StringMin Len: 1Max Len: 10

Opt

Additional identifying internal number at the header level.

12345

<invoice_date>

String

Opt

Invoice Date. Format is yyyy-mm-dd. It is advisable to send your source document date in this attribute for recording purposes.

2017-07-16

<orig_invoice_amt>

decimal

Opt

Original Invoice Amount

29.77

<net_payment_amt>

decimal

Opt

Net Payment Amount. Both positive and negative amounts allowed. Note that the sum of the net payment amount within each <group> tag must be >= 0.

29.77

<invoice_tot_discount_amt>

decimal

Opt

Invoice total discount amount

0

<invoice_tot_ship_amt>

decimal

Opt

Invoice total shipping amount

0

<invoice_tot_other_debits>

decimal

Opt

Invoice total other debits

0

<invoice_tot_other_credits>

decimal

Opt

Invoice total other credits

0

<fs_origin_cd>

StringMin Len: 0Max Len: 2

Opt

Origin Code specific to the unit, please reference your Origin Code.

MA

<fdoc_typ_cd>

StringMin Len: 0Max Len: 4

Opt

Document type code will be EPAY.

EPAY
<extension> Opt  
<use_tax_type_cd>[UCIKFS:D,I]Opt

I - for Invoice Date driven use tax calculation

D – for Delivery Date driven use tax calculation

D

<delivery_date>

String Len: 10

Opt

To allow medical center to specify which date to calculate use tax (delivery date vs. invoice date) YYYY-MM-DD. Populate this tag only if the use_tax_type_cd is D.

2007-07-09 

</extension> Opt 

 

<chart_cd>

String

Len: 2

ReqChart Code. MC for Med Center, IR for School of MedicineMC
<account_nbr>

String

Len: 7

ReqAccount number. 

<sub_account_nbr>

String

Len: 5

Opt

Sub-account number.
Optional. If omitted, please omit tag as well.


<object_cd>

StringMin Len: 1Max Len: 4

Req

Object code

5000

<sub_object_cd>

String

Len: 4

Opt

Sub-object code
Optional. If omitted, please omit tag as well.

<org_ref_id>

StringMin Len: 0Max Len: 10

Opt

Unit-defined reference number used at the transaction level.  Normally carries FS Source.

 

<project_cd>

String

Len: 10

Opt

Project Code ID.  This attribute is pre-defined in the Project table and it is validated if used.  If you use it make sure it is a valid Project.

133

<amount>

decimal

Req

Amount

100.00

</accounting>

 

Req

 

 

<payment_text>

StringMin Len: 0Max Len: 90

Opt

Each <detail> element may contain multiple <payment_text> sub-elements. The text contained within each <payment_text> element will appear as a single line of text printed on the payment stub remitted to the vendor.

 

</detail>

 

Req

 

 

<capital_asset_information> Opt  
<new_asset> Opt  
<asset_type_code>

String

Len: 7
 Opt  
<vendor_number>

String

Len: 40
 Opt  
<asset_manufacturer_name>

String

Len: 45
 Opt  
<asset_manufacturer_model_number>

String

Len: 25
 Opt  

<asset_description>

String

Len: 40
 Opt  
</new_asset> Opt  
<asset_info_detail> Opt  
<asset_tag_number>

String

Len: 8
 Opt  
<asset_serial_number>

String

Len: 25
 Opt  
<campus_code>

String

Len: 2
 Opt  
<building_code>

String

Len: 10
 Opt  
<building_room_number>

String

Len: 8
 Opt  
<building_sub_room_number>

String

Len: 2
 Opt  
</asset_info_detail> Opt  
<existing_asset> Opt  

<asset_number>

String

Len: 12
Opt  
</existing_asset> Opt  
</capital_asset_information> Opt  

</group>

 

Req

 

 

<trailer>

 

Req

 

 

<detail_count>

integer

Req

Number of transactions in the file.

 

<detail_tot_amt>

decimal

Req

Total amount of the payment lines.

 

</trailer>

 

Req

 

 

</pdp_file>

 

Req

 

 

 



 

Simple XML Input File

Sample File: aperek.xml

<?xml version="1.0" encoding="UTF-8"?>
<pdp_file version="1.0" xsi:schemaLocation="http://www.kuali.org/kfs/pdp/payment http://localhost:8080/kual=dev/static/xsd/pdp/payment.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.kuali.org/kfs/pdp/payment">
<header>
<chart>MC</chart>
<unit>APRK</unit>
<sub_unit>AP</sub_unit>
<creation_date>2014-07-16T01:35:28</creation_date>
</header>
<group>
<payee_name><![CDATA[EAI/ECONOMIC ALTERNATIVES INC]]></payee_name>
<payee_id id_type="X">999999999</payee_id>
<payee_own_cd>CP</payee_own_cd>
<address1><![CDATA[1307 W 6TH STREET]]></address1>
<address2><![CDATA[#203]]></address2>
<city>CORONA,</city>
<state>CA</state>
<zip>928823173</zip>
<country>US</country>
<campus_address_ind>N</campus_address_ind>
<payment_date>2017-07-16</payment_date>
<attachment_ind>N</attachment_ind>
<special_handling_ind>N</special_handling_ind>
<bank_code>WEL9</bank_code>
<disbursement_date>2014-03-04</disbursement_date>
<disbursement_number>12347</disbursement_number>
<disbursement_type>CHCK</disbursement_type>
<pmt_stat_cd>EXTR</pmt_stat_cd>
<detail>
<source_doc_nbr>APRK003</source_doc_nbr>
<invoice_nbr><![CDATA[35326 0000]]></invoice_nbr>
<po_nbr>X00000000</po_nbr>
<net_payment_amt>300.00</net_payment_amt>
<fs_origin_cd>MA</fs_origin_cd>
<fdoc_typ_cd>EPAY</fdoc_typ_cd>
<accounting>
<coa_cd>MC</coa_cd>
<account_nbr>8428470</account_nbr>
<object_cd>3089</object_cd>
<amount>300.00</amount>
</accounting>
<payment_text>Aperek Payments</payment_text>
</detail>
</group>
<trailer>
<detail_count>1</detail_count>
<detail_tot_amt>300.00</detail_tot_amt>
</trailer>
</pdp_file>
 


XSD for Payment Upload

Link to xsds.zip

<?xml version="1.0" encoding="UTF-8"?>
<!--

    The Kuali Financial System, a comprehensive financial management system for higher education.

    Copyright 2005-2018 Kuali, Inc.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

-->
<xsd:schema elementFormDefault="qualified"
    targetNamespace="http://www.kuali.org/kfs/pdp/payment"
    xmlns:kfs="http://www.kuali.org/kfs/sys/types"
    xmlns:dd="http://www.kuali.org/kfs/sys/ddTypes"
    xmlns="http://www.kuali.org/kfs/pdp/payment" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <xsd:import namespace="http://www.kuali.org/kfs/sys/types" schemaLocation="classpath:org/kuali/kfs/sys/types.xsd"/>
    <xsd:import namespace="http://www.kuali.org/kfs/sys/ddTypes" schemaLocation="classpath:edu/uci/kfs/sys/ddTypes.xsd" />
        
    <!-- simple data types -->
    <xsd:simpleType name="versionType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="1.0"/>
        </xsd:restriction>
    </xsd:simpleType>

    <!-- BEGIN UCI CODE -->
    <xsd:simpleType name="oneToSevenCharType">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="7"/>
        </xsd:restriction>
    </xsd:simpleType>
    
    <xsd:simpleType name="useTaxTypeCodeType">
        <xsd:restriction base="xsd:string">
            <!-- WARREN CHANGE: change codes from E/U to D/I -->
            <!-- <xsd:enumeration value="E"/>
            <xsd:enumeration value="U"/> -->
            <xsd:enumeration value="D"/>
            <xsd:enumeration value="I"/>
        </xsd:restriction>
    </xsd:simpleType>     
    
    <xsd:simpleType name="uciPurchaseOrderNbr">
        <xsd:restriction base="xsd:normalizedString">
            <xsd:maxLength value="9"/>
            <xsd:whiteSpace value="replace"/>
        </xsd:restriction>
    </xsd:simpleType>    
    <!-- END UCI CODE -->
    
    <!-- BEGIN UCI CODE -->
    <!-- definition of simple type elements -->
     <xsd:element name="chart" type="dd:PaymentFileLoad.chart"/>
    <xsd:element name="unit" type="dd:PaymentFileLoad.unit"/>
    <xsd:element name="sub_unit" type="dd:PaymentFileLoad.subUnit"/>
    <!-- KFSI-1202 just make create date xsd:datetime -->
    <xsd:element name="creation_date" type="xsd:dateTime"/>
    <xsd:element name="source_doc_nbr" type="dd:PaymentDetail.custPaymentDocNbr"/>
    <xsd:element name="invoice_nbr" type="dd:PaymentDetail.invoiceNbr"/>
    <!-- KFSI-14071 limit the length to 9 max -->
    <xsd:element name="po_nbr" type="uciPurchaseOrderNbr"/>
    <xsd:element name="req_nbr" type="dd:PaymentDetail.requisitionNbr"/>
    <xsd:element name="org_doc_nbr" type="dd:PaymentDetail.organizationDocNbr"/>
    <xsd:element name="payee_name" type="dd:PaymentGroup.payeeName"/>
    <xsd:element name="payee_own_cd" type="dd:PaymentGroup.payeeOwnerCd"/>
    <xsd:element name="customer_institution_identifier" type="dd:PaymentGroup.customerInstitutionNumber"/>
    <xsd:element name="address1" type="dd:PaymentGroup.line1Address"/>
    <xsd:element name="address2" type="dd:PaymentGroup.line2Address"/>
    <xsd:element name="address3" type="dd:PaymentGroup.line3Address"/>
    <xsd:element name="address4" type="dd:PaymentGroup.line4Address"/>
    <xsd:element name="city" type="dd:PaymentGroup.city"/>
    <xsd:element name="state" type="dd:PaymentGroup.state"/>
    <xsd:element name="zip" type="dd:PaymentGroup.zipCd"/>
    <xsd:element name="country" type="dd:PaymentGroup.country"/>
    <xsd:element name="campus_address_ind" type="dd:PaymentGroup.campusAddress"/>
    <!-- KFSI-1202 just make date xsd:date -->
    <xsd:element name="payment_date" type="xsd:date"/>
    <!-- KFSI-1202 just make date xsd:date -->
    <xsd:element name="invoice_date" type="xsd:date"/>
    <xsd:element name="attachment_ind" type="dd:PaymentGroup.pymtAttachment"/>
    <xsd:element name="immediate_ind" type="xsd:normalizedString"/>
    <xsd:element name="special_handling_ind" type="dd:PaymentGroup.pymtSpecialHandling"/>
    <xsd:element name="taxable_ind" type="dd:PaymentGroup.taxablePayment"/>
    <xsd:element name="orig_invoice_amt" type="dd:PaymentDetail.origInvoiceAmount"/>
    <xsd:element name="net_payment_amt" type="dd:PaymentDetail.netPaymentAmount"/>
    <xsd:element name="invoice_tot_discount_amt" type="dd:PaymentDetail.invTotDiscountAmount"/>
    <xsd:element name="invoice_tot_ship_amt" type="dd:PaymentDetail.invTotShipAmount"/>
    <xsd:element name="invoice_tot_other_debits" type="dd:PaymentDetail.invTotOtherDebitAmount"/>
    <xsd:element name="invoice_tot_other_credits" type="dd:PaymentDetail.invTotOtherCreditAmount"/>
    <xsd:element name="nra_ind" type="dd:PaymentGroup.nraPayment"/>
    <xsd:element name="combine_group_ind" type="dd:PaymentGroup.combineGroups"/>
    <xsd:element name="coa_cd" type="dd:PaymentAccountDetail.finChartCode"/>
    <xsd:element name="account_nbr" type="dd:PaymentAccountDetail.accountNbr"/>
    <xsd:element name="sub_account_nbr"  type="dd:PaymentAccountDetail.subAccountNbr"/>
    <xsd:element name="object_cd" type="dd:PaymentAccountDetail.finObjectCode"/>
    <xsd:element name="sub_object_cd" type="dd:PaymentAccountDetail.finSubObjectCode"/>
    <xsd:element name="org_ref_id" type="dd:PaymentAccountDetail.orgReferenceId"/>
    <xsd:element name="project_cd" type="dd:PaymentAccountDetail.projectCode"/>
    <xsd:element name="amount" type="dd:PaymentAccountDetail.accountNetAmount"/>
    <xsd:element name="payment_text" type="dd:PaymentNoteText.customerNoteText"/>
    <xsd:element name="detail_count" type="dd:PaymentFileLoad.paymentCount"/>
    <xsd:element name="detail_tot_amt" type="dd:PaymentFileLoad.paymentTotalAmount"/>
    <!-- BEGIN UCI KFSI-3933 -->
    <xsd:element name="bank_code" type="dd:Bank.bankCode"/> 
    <!-- END UCI --> 
    <xsd:element name="fs_origin_cd" type="dd:PaymentDetail.financialSystemOriginCode"/> 
    <xsd:element name="fdoc_typ_cd"  type="dd:PaymentDetail.financialDocumentTypeCode"/> 
    <!-- BEGIN UCI CODE: [FSI-142] INT-PDP-004 Manual/Local Check Upload --> 
    <!-- KFSI-1202 just make date xsd:date -->
    <xsd:element name="disbursement_date" type="xsd:date" />    
    <xsd:element name="disbursement_number" type="xsd:string" /> 
    <xsd:element name="disbursement_type" type="kfs:zeroToFourCharType" /> 
    <xsd:element name="pmt_stat_cd" type="kfs:zeroToFourCharType" />
    <xsd:element name="generate_gl_entries" type="xsd:boolean" /> 
    <!-- END UCI -->
    
    <!-- BEGIN UCI CODE KFSI-191 -->
    <xsd:element name="asset_type_code" type="oneToSevenCharType" />
    <xsd:element name="vendor_number" type="kfs:oneToFortyCharType" />
    <xsd:element name="asset_number" type="xsd:integer" />
    <xsd:element name="asset_manufacturer_name" type="kfs:zeroToFortyFiveCharType" />
    <xsd:element name="asset_manufacturer_model_number" type="kfs:oneToTwentyFiveCharType" />
    <xsd:element name="asset_description" type="kfs:oneToFortyCharType" />
    
    <xsd:element name="asset_tag_number" type="kfs:oneToEightCharType" />
    <xsd:element name="asset_serial_number" type="kfs:oneToTwentyFiveCharType" />
    <xsd:element name="campus_code" type="kfs:oneToTwoCharType" />
    <xsd:element name="building_code" type="kfs:oneToTenCharType" />
    <xsd:element name="building_room_number" type="kfs:oneToEightCharType" />
    <xsd:element name="building_sub_room_number" type="kfs:oneToTwoCharType" />
    <!-- END UCI CODE KFSI-191 -->
    
    <!-- BEGIN UCI CODE KFSI-470 -->
    <xsd:element name="use_tax_type_cd" type="useTaxTypeCodeType" /> 
    <!-- KFSI-6743 KFSI-470 -->
    <xsd:element name="delivery_date" type="xsd:date"/>
    <!-- END UCI CODE -->

    <!-- definition of attributes -->

    <!-- definition of complex type elements -->
    <xsd:element name="pdp_file">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="header"/>
                <xsd:element maxOccurs="unbounded" minOccurs="1" ref="group"/>
                <xsd:element ref="trailer"/>
            </xsd:sequence>
            <xsd:attribute name="version" type="versionType" use="required"/>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="accounting">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element maxOccurs="1" minOccurs="0" ref="coa_cd"/>
                <xsd:element maxOccurs="1" minOccurs="1" ref="account_nbr"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="sub_account_nbr"/>
                <xsd:element ref="object_cd"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="sub_object_cd"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="org_ref_id"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="project_cd"/>
                <xsd:element ref="amount"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="header">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="chart"/>
                <xsd:element ref="unit"/>
                <xsd:element ref="sub_unit"/>
                <xsd:element ref="creation_date"/>
                <!-- BEGIN UCI CODE KFSI-142 -->
                <xsd:element maxOccurs="1" minOccurs="0" ref="generate_gl_entries"/>
                <!-- END UCI CODE -->
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="trailer">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="detail_count"/>
                <xsd:element ref="detail_tot_amt"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="group">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="payee_name"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="payee_id"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="payee_own_cd"/>
                <!-- BEGIN UCI CODE: [KFSI-98] INT-PDP-003 Payment Upload Using PURAP Vendor-->
                <xsd:element maxOccurs="1" minOccurs="0" name="extension">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element maxOccurs="1" minOccurs="0" name="address_id" type="kfs:oneToTenCharType"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element maxOccurs="1" minOccurs="0" ref="address1"/>
                <!-- END UCI CODE -->
                <xsd:element maxOccurs="1" minOccurs="0" ref="address2"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="address3"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="address4"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="city"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="state"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="zip"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="country"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="campus_address_ind"/>
                <!-- BEGIN UCI CODE: [KFSI-9418] force paymen date to be required -->
                <xsd:element maxOccurs="1" minOccurs="1" ref="payment_date"/>
                <!-- END UCI CODE -->
                <xsd:element maxOccurs="1" minOccurs="0" ref="attachment_ind"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="immediate_ind"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="special_handling_ind"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="taxable_ind"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="nra_ind"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="combine_group_ind"/>
                <!-- BEGIN UCI KFSI-3933 -->
                <xsd:element maxOccurs="1" minOccurs="0" ref="bank_code"/>
                <!-- END UCI -->
                <!-- BEGIN UCI CODE: [FSI-142] INT-PDP-004 Manual/Local Check Upload --> 
                <xsd:element maxOccurs="1" minOccurs="0" ref="disbursement_date" /> 
                <xsd:element maxOccurs="1" minOccurs="0" ref="disbursement_number" /> 
                <xsd:element maxOccurs="1" minOccurs="0" ref="disbursement_type" /> 
                <xsd:element maxOccurs="1" minOccurs="0" ref="pmt_stat_cd" />
                <!-- END UCI -->
                
                <!--  Default check stub holds 27 note lines.  There is a line printed for each detail
                      so the number of detail items on a check needs to be subtracted from the
                      total allowed note lines.  This can't be enforced in the schema so it is possible
                      to provide too many note lines in some cases.  This rule will be enforced in
                      code.

                      Because of this, the maximum number of detail segments is 27 (assuming they
                      have no notes).

                      If your check stub holds more or less than 27 note lines, you need to change this,
                      the maximum number of detail segments in this file and the setting MAX_NOTE_LINES
                      in the application settings file.
                      -->
                <!-- BEGIN UCI CODE KFSI-4582 up limit to 200 payment details
                                    KFSI-13238 up limit to 9999 
									KFS-451 lower limit to 5000 -->
                <xsd:element maxOccurs="5000" minOccurs="1" ref="detail"/>
                <!-- END UCI CODE KFSI-4582 KFSI-13238 -->
                <!-- BEGIN UCI CODE KFSI-191 -->
                <xsd:element maxOccurs="1" minOccurs="0" ref="capital_asset_information"/>
                <!-- END UCI CODE KFSI-191 -->
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="detail">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="source_doc_nbr"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="invoice_nbr"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="po_nbr"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="req_nbr"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="org_doc_nbr"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="customer_institution_identifier"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="invoice_date"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="orig_invoice_amt"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="net_payment_amt"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="invoice_tot_discount_amt"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="invoice_tot_ship_amt"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="invoice_tot_other_debits"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="invoice_tot_other_credits"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="fs_origin_cd"/>
                <xsd:element maxOccurs="1" minOccurs="0" ref="fdoc_typ_cd"/>
                
                <!-- WARREN ADD extension -->
                <xsd:element maxOccurs="1" minOccurs="0" name="extension">
                    <xsd:complexType>
                        <xsd:sequence>                                                        
                            <!-- UCI CODE KFSI-470 -->
                            <!-- WARREN ADD -->
                            <xsd:element maxOccurs="1" minOccurs="0" ref="use_tax_type_cd" />
                            <xsd:element maxOccurs="1" minOccurs="0" ref="delivery_date" />
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
                                
                <xsd:element maxOccurs="unbounded" minOccurs="1" ref="accounting"/>
                <!--  Default check stub holds 27 note lines.  There is a line printed for each detail
                      so the number of detail items on a check needs to be subtracted from the
                      total allowed note lines.  This can't be enforced in the schema so it is possible
                      to provide too many note lines in some cases.  This rule will be enforced in
                      code.

                      Because of this, the maximum note lines a detail can have is 26 (assuming there
                      is only one detail in the payment group).

                      If your check stub holds more or less than 27 note lines, you need to change this,
                      the maximum number of detail segments in this file and the setting MAX_NOTE_LINES
                      in the application settings file.
                      -->
                <xsd:element maxOccurs="26" minOccurs="0" ref="payment_text"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="payee_id">
        <xsd:complexType>
            <xsd:simpleContent>
                <xsd:extension base="kfs:oneToTwentyFiveCharType">
                    <xsd:attribute name="id_type" type="kfs:oneAlphaType" use="required"/>
                </xsd:extension>
            </xsd:simpleContent>
        </xsd:complexType>
    </xsd:element>

    <!-- BEGIN UCI CODE KFSI-191 -->
    <xsd:element name="capital_asset_information">
        <xsd:complexType>
            <xsd:choice>
                <xsd:element minOccurs="0" maxOccurs="1" ref="new_asset"/>
                <xsd:element minOccurs="0" maxOccurs="1" ref="existing_asset"/>
            </xsd:choice>
        </xsd:complexType>
    </xsd:element>

    <xsd:element name="existing_asset">
        <xsd:complexType>
            <xsd:all>
                <xsd:element minOccurs="0" maxOccurs="1" ref="asset_number"/>
            </xsd:all>
        </xsd:complexType>
    </xsd:element>    
    
    <xsd:element name="new_asset">
        <xsd:complexType>
            <xsd:sequence>            
                <xsd:element minOccurs="0" maxOccurs="1" ref="asset_type_code"/>
                <xsd:element minOccurs="0" maxOccurs="1" ref="vendor_number"/>
                <xsd:element minOccurs="0" maxOccurs="1" ref="asset_manufacturer_name" />
                <xsd:element minOccurs="0" maxOccurs="1" ref="asset_manufacturer_model_number"/>
                <xsd:element minOccurs="0" maxOccurs="1" ref="asset_description"/>
                <xsd:element minOccurs="0" maxOccurs="unbounded" ref="asset_info_detail"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>    
    
    <xsd:element name="asset_info_detail">
        <xsd:complexType>
            <xsd:all>
                <xsd:element minOccurs="0" maxOccurs="1" ref="asset_tag_number"/>
                <xsd:element minOccurs="0" maxOccurs="1" ref="asset_serial_number"/>
                <xsd:element minOccurs="0" maxOccurs="1" ref="campus_code"/>
                <xsd:element minOccurs="0" maxOccurs="1" ref="building_code"/>
                <xsd:element minOccurs="0" maxOccurs="1" ref="building_room_number"/>
                <xsd:element minOccurs="0" maxOccurs="1" ref="building_sub_room_number"/>
            </xsd:all>
        </xsd:complexType>
    </xsd:element>
    <!-- END UCI CODE KFSI-191 -->
</xsd:schema>

Uploading Payment Batch Files Through Managed File Transfer (MFT)

Not established at the moment.  To be completed.