INTJ0022 - Transfer External Finance System Payments to Callista

Purpose

To transfer payment information from an external finance system into Callista, and in Callista, to match the payments to invoices according to payment application criteria.
Subsystem Callista Open Finance Interface (COFI)
Normally Run By A Callista fees administrator in consultation with the institution's financial system staff.
Anticipated Frequency The job should be run nightly. It can only run in batch mode, through the Job Control & Scheduling Subsystem.
Structure A parameter form is not required for this job.

INTJ0022 processes payments made by an external payment portal which have been created as records in the i_payment_load table. It verifies the payment data, creates a payment record and also matches and applies those payments to any existing invoices.
It runs independently, but accesses invoices created by INTJ0021.
The context for this job is described in the COFI Overview help page.

INTJ0022 uses a hierarchy to determine which invoices to match. This hierarchy has the following order:

  • Invoice Due Date
  • Payment hierarchy rank
  • (invoice) Created_on date
  • UOO_ID
  • Person_id
  • Loan_discount_inv_ind - DESC

When automatically matching and applying payments to invoices, it may re-match parts of payments that have already been allocated to an invoice in i_invoice_payment.
To see how matching of payments occurs in INTJ0022 - see Matching Payments.

Credit Memos and New Invoices
When processing unprocessed payment allocations, INTJ0022 looks for current i_invoice_trans records for an existing invoice which have a prev_invoice_num matching the invoice number of the unprocessed payment match. If it finds one, it applies the payment to the new invoice as required.
In the cases where an invoice is fully credited and a new invoice is created without reference to the original, this match cannot occur and the unprocessed payment allocation will remain unprocessed


Sponsor Payments

Sponsor payments are allocated according to the hierarchy shown above. Where invoices from different students have the same ranking then the invoice for the student with the lowest person ID will be paid first.

Loan Scheme Payments
Loan Scheme processing is the same as for sponsors.

Job Conflict
This job has been set up with conflict records preventing it running concurrently with INTJ0020, INTJ0021, INTJ0023, INTJ0024, INTJ0060 and INTJ0065. More than one instance of INTJ0022 cannot be run at the same time.

Error Handling
For details about how this job handles errors and reports on its progress, see COFI Error Handling.

INTJ0022 or INTJ3022?
Note: If your institution uses the COFI Designated Payment Model (DESG_PAYMENT_MODEL_IND is set to Y in the I_INT_CONTROL table) then INTJ0022 will not be available. In that case you should look at the help for INTJ3022, the job which takes its place in your system.


Statuses

The transfer status values indicating progress in the transfer of each record of I_PAYMENT_LOAD between Callista and the external finance system and between I_PAYMENT_LOAD and I_PAYMENT in Callista is:
For I_PAYMENT_LOAD: READY, PROCESSING
, SUCCESSFUL, ERROR, DELETED
For I_PAYMENT: TODO, ACTIV, FULL

Creating Payment Data in Callista

The table I_PAYMENT_LOAD is populated by the external finance system and the system needs to know about each receipt.
Payments are not matched to invoices at the source of receipts. The system calculates what invoices should be paid by which receipt.

This job finds records in the I_PAYMENT_LOAD table with a Transfer Status of READY and then performs the following:

  • For each READY record it checks if the Customer exists in Callista. (Customer number or check payment advice number in I_FIN_CUSTOMER table).
  • If the customer does not exist then the transfer status for the record changes to ERROR and a message appears in the Transfer Message field.
  • For each payment, it checks that an invoice exists in the I_INVOICE_TRANS table that matches the payment record. If an invoice does not match the Payment record then the transfer status of the payment record changes to ERROR.
  • For reversal (payment type) records, it checks if a payment record (receipt) already exists in Callista in I_PAYMENT_LOAD. If the original receipt does not exist then an ERROR Transfer Status and Transfer Message appears for this record in the I_PAYMENT_LOAD table.
  • Any remaining READY records are then loaded into the I_PAYMENT table with a Processed Status of TODO. The transfer status in for these records in the I_PAYMENT_LOAD table is changed to SUCCESSFUL.
  • EXT_TRANSFER_STATUS in the I_PAYMENT_LOAD table is set to READY if the transfer status is SUCCESSFUL.

Processing Import Data

The job performs the following:

  • Reads I_PAYMENT_LOAD tables entries with a TRANSFER_STATUS of READY.
  • Loads the I_PAYMENT table.
  • Applies new payments to old invoices and write to the FEE_ASS table with new payments.
  • Calls the discount procedure to award discounts in FEE_ASS where required.
  • Where the I_PAYMENT record has been successfully loaded its sequence number (IP_SEQUENCE_NUMBER) is written to the I_PAYMENT_LOAD table.
  • The transfer_status of I_PAYMENT_LOAD is updated to SUCCESSFUL and the EXT_TRANSFER_STATUS is set to READY.
  • If the load of I_PAYMENT is unsuccessful, the TRANSFER_STATUS of I_PAYMENT_LOAD will be set to ERROR and the TRANSFER_MESSAGE written.

Applying New Payments to Existing Invoices

The way in which payments are matched to invoices is more fully documented in Matching Invoices.

This job navigates the 'payment stream' and is called once payments have been transferred to Callista and loaded into the I_PAYMENT table. Processes in the payment stream perform the tasks below before applying or re-applying payments.

  • The module checks if the payment record is a reversal of payment. If so it deletes the appropriate I_INVOICE_PAYMENT, writes a new record to I_INVOICE_PAYMENT with a zero amount indicating a reversed relationship, and reverses out the original payment transaction in the fee assessment table.
  • If a discount may have been awarded on the basis of an original payment that has now been reversed, a process creates a Student ToDo entry to check if the invoice should be recalculated when the invoicing job INTJ0021 is next run.
  • If it is a pre-dated payment, the details are retrieved and written to the Student ToDo tables.
  • The module checks for the last point at which existing relationships between invoices and payments are valid.

External Financial System tasks - import table creation

  • Establish which receipts have been received since the last transfer to Callista.
  • Write entries to the I_PAYMENT_LOAD table with a TRANSFER_STATUS of READY and an EXT_TRANSFER_STATUS of TODO.

The form INTF1000 displays I_PAYMENT_LOAD details.

Creation of Export table

The I_PAYMENT_LOAD table may be used as an export to the finance system.

  • The above job also updates the I_PAYMENT_LOAD column ext_transfer_status to READY. The I_PAYMENT_LOAD table has been loaded successfully and is ready to be loaded to the GL.

External Financial System Tasks - payment export table processing

  • Read the I_PAYMENT_LOAD record with an EXT_TRANSFER_STATUS of READY.
  • Create the GL entries in the external financial system to match the data in the system.
  • Write a reference of the GL loading procedure in the EXT_BATCH_DT.
  • Write a SUCCESSFUL EXT_TRANSFER_STATUS to the I_PAYMENT_LOAD table.
  • Where there are errors that are related to the source data write ERROR to the EXT_TRANSFER_STATUS and write a message to EXT_TRANSFER_MESSAGE of the I_PAYMENT_LOAD table.
  • If it is useful to the external finance system the following columns in the I_PAYMENT_LOAD table are available for update by the external processing for record keeping purposes; Ext_Batch_Number, Ext_Batch_Dt, Ext_Posting_Dt, Ext_Attribute_1, Ext_Attribute_2,
    Ext_Attribute_3, Ext_Attribute_4, Ext_Attribute_5, Ext_transfer_status, and Ext_transfer_message

  • This process may be used at the discretion of the institution. The job will not indicate its success or otherwise.
  • The status referred to is the EXT_TRANSFER_STATUS and EXT_TRANSFER_MESSAGE that refers to the transfer to the external transfer of payments (to Finance system) as opposed to the TRANSFER_STATUS and TRANSFER_MESSAGE that refers to the internal transfer of payments.

Last modified on 12 November, 2015 3:43 PM

History Information

Release Version Project Change to Document
18.0.0.2 2146 - VU Payment Matching Separated Job Error Handling to a separate page
Added reference to INTJ3022.
11.0.0.0.0.0 1350 - Job Error Handling Part 2 Added details re Job Error handling and Run Log details.