1. BRM Payments (Credit card and Direct Debit payments)

2. External Payments through Argus and PSM

3. Payment reversal/dishonours

4. Payments Enhancements

Payments are classified into two types:

1. BRM initiated payments

2. External Payments

3.1. BRM initiated payments

BRM-initiated payment processing is triggered by BRM and requires no action from customers. Payments processed in this way are those for which a customer is automatically charged, such as credit card and direct debit payments.

BRM utility "pin_collect" is used to collect BRM-initiated payments.

3.1.1.pin_collect MTA Configuration

MTA Name

$PIN_HOME/bin/pin_collect

Log file

$PIN_LOG_DIR/pin_billd_ara_disabled/pin_mta.pinlog

children

25

per_batch

100

per_step

25000

fetch_size

50000

3.1.2.TWS Scripts

Following wrapper scripts are used to invoke pin_collect utility for BRM initiated payments.

3.1.2.1. CreditCard Payments TWS script:

Automic Script name

vf_tws_bin_bil_collectCC_au.sh

Automic script location

$PIN_HOME/apps/vf_tws/bin

JOB_NAME

APIN_DEFERRED_CREDIT_CARD

Application triggered by the Automic Script

$PIN_HOME/bin/pin_collect

Functionality

· Used for Credit Card Collections

· Calls pin_collect utility to collect credit card payments of all accounts with pay_type 10003

3.1.2.2. DebitCard Payments TWS script:

Automic Script name

vf_tws_bin_bil_collectDD_au.sh

Automic script location

$PIN_HOME/apps/vf_tws/bin

JOB_NAME

APIN_DEFERRED_DEBIT_CARD

Application triggered by the Automic Script

$PIN_HOME/bin/pin_collect

Functionality

· Used for Debit Card Collections

· Calls pin_collect utility to collect credit card payments of all accounts with direct debit pay_type (10005)

3.2. External payments

Externally initiated payments are typically payments that are sent to a bank, and the bank sends you a list of payments that have been received and deposited.

Here we are loading the payments that are sent from ARGUS and PSM.

3.2.1.vf_file_loader Utility/MTA

vf_file_loader MTA is client application for loading batch files received from one of the Vodafone legacy platforms. This parses the batch input file, and transforms each detail record into an input flist. The MTA framework then calls a specified opcode for each input flist.

This MTA is used to process payments from ARGUS and PSM and also to reverse payments in case of failures.

3.2.2.Configuration

Application Name

$PIN_HOME/apps/vf_file_loader/vf_file_loader

Application Log file

$PIN_LOG_DIR/vf_file_loader/file_loader.log

LOG_LEVEL

SEVERE

INPUT DIR

$PIN_HOME/apps/vf_file_loader/input/

DONE DIR

$PIN_HOME/apps/vf_file_loader/done

TMP DIR

$PIN_HOME/apps/vf_file_loader/tmp

ACH

0

recondir

$PIN_HOME/apps/vf_file_loader/recon

retrydir

$PIN_HOME/apps/vf_file_loader/retry

backupdir

$PIN_HOME/apps/vf_file_loader/backup

date_mask

$PIN_HOME/apps/vf_file_loader/date_mask_file

payment_type

20000

children

25

per_batch

100

per_step

100000

fetch_size

100000

max_errs

100000

delta_step

1000000

3.2.2.1. Parameters

The MTA takes file as input and template needs to be passed in parameters to identify the input file format or payment types to process the files.

Input file

Input fie with payment or payment reversal details/records.

Template

Template to identify the payment or payment reversal types/records.

Template name for payments: batch_payments

Template name for payment dishonors/ reversals: batch_dd_dishonours

log level

Log level to log error (1)/warnings (2)/debug (3) level messages.

override

Option to reprocess the input file even if the file is already processed.

3.2.3.Opcode Customizations

3.2.3.1. VF_EOP_PYMT_COLLECT

vf_file_loader utility calls VF_EOP_PYMT_COLLECT opcode to load payments/refunds in BRM when batch_payments template is used.

This opcode validates the input fields or payment details and creates input flist and calls/invokes OOB opcode PCM_OP_PYMT_COLLECT to load the payment/refund in BRM.

Input parameters

Level

Name

Mandatory

Type

Description

0

PIN_FLD_POID

Y

POID

Null POID, for database identifying purposes only

0

PIN_FLD_INDICATOR

Y

INT

Action to be performed.

0

PIN_FLD_BATCH_ID

N

STRING

Id of the batch submitted.

0

PIN_FLD_BATCH_TOTAL

N

DECIMAL

The total amount of all the payments in the batch

0

VF_FLD_PYMT_SOURCE

N

STRING

Source system identifier that originated the transaction.

0

PIN_FLD_CHARGES

Y

ARRAY

Array containing payments/refunds.

1

PIN_FLD_CHANNEL_ID

N

STRING

Channel id.

1

VF_FLD_PYMT_TYPE

N

STRING

Payment type.

1

VF_FLD_PYMT_SUBTYPE

N

STRING

Payment subtype.

1

PIN_FLD_ACCOUNT_OBJ

N

POID

Infranet Account POID.

1

PIN_FLD_ACCOUNT_NO

N

STRING

Vodafone Account id. Required if PIN_FLD_MSISDN and PIN_FLD_ACCOUNT_OBJ fields not supplied.

1

PIN_FLD_MSISDN

N

STRING

Msisdn. Required if PIN_FLD_ACCOUNT_NO and PIN_FLD_ACCOUNT_OBJ fields not supplied.

1

PIN_FLD_AMOUNT

Y

DECIMAL

Amount of the transaction

1

PIN_FLD_TRANS_ID

N

STRING

Transaction id as it comes form the source system.

1

PIN_FLD_LOGIN

N

STRING

Login of CSR (Siebel) for AdHoc. For batch payments will be derived from input information.

1

PIN_FLD_BILL_OBJ

N

STRING

Bill POID. Supplied optionally for AdHoc payments and requests.

1

PIN_FLD_BILL_NO

N

STRING

Bill Number.

1

PIN_FLD_EFFECTIVE_T

N

TSTAMP

Timestamp when transaction was submitted.

1

PIN_FLD_RESULT

N

ENUM

Result of the VCC Debit request:

1

PIN_FLD_REASON_DOMAIN_ID

N

INT

Reason Domain Id for refunds

1

PIN_FLD_REASON_ID

N

INT

Reason Id for refunds

1

PIN_FLD_PAYINFO

N

ARRAY

Array containing payment type specific info.

2

PIN_FLD_PAY_TYPE

N

ENUM

Payment type as in /config/payment

2

PIN_FLD_DEBIT_NUM

N

STRING

Credit Card number for AdHoc payments/refunds and VCC responses.

2

PIN_FLD_REFERENCE_ID

N

STRING

CCP Transaction id

2

PIN_FLD_AUTH_DATE

N

STRING

VCC response request date/time

2

PIN_FLD_AUTH_CODE

N

STRING

Response code from CCP as provided by the bank.

2

PIN_FLD_VENDOR_RESULTS

N

STRING

Response message from CCP as provided by the bank.

Output parameters

Level

Name

Mandatory

Type

Description

0

PIN_FLD_POID

Y

POID

Null POID, for database identifying purposes only

0

PIN_FLD_RESULTS

Y

ARRAY

Array containing result of the payments/refunds

1

PIN_FLD_RECEIPT_NO

N

STR

Receipt number identifying the request

1

PIN_FLD_RESULT

Y

ENUM

Transaction result: 0 = Success, 0 <> Fail

3.3. Payment Dishonors/ Reversals

3.3.1.TWS Scripts

Following wrapper scripts are used to call vf_file_loader MTA with batch_dd_dishonours template option for reversing failed payments in ARGUS or PSM.

3.3.1.1. ARGUS Dishonours:

Automic Script name

vf_tws_bin_argus_response_au.sh

Automic script location

$PIN_HOME/apps/vf_tws/bin

JOB_NAME

APIN_PYMTS_ARGUS_DISHONOURS_S1

Application triggered by the Automic Script

$PIN_HOME/apps/vf_file_loader/vf_file_loader.ksh –i <ARGUS_DDD*> -t batch_dd_dishonours

Functionality

· Used for external payments

· Calls vf_file_loader utility to load external payments from ARGUS in BRM.

3.3.1.2. PSM Dishonours:

Automic Script name

vf_tws_bin_psm_response_au.sh

Automic script location

$PIN_HOME/apps/vf_tws/bin

JOB_NAME

APIN_PYMTS_PSM_DISHONOURS

Application triggered by the Automic Script

$PIN_HOME/apps/vf_file_loader/vf_file_loader.ksh –i <PSM_DDD*> -t batch_dd_dishonours

Functionality

· Used for external payments

· Calls vf_file_loader utility to load external payments from PSM in BRM.

3.3.2.Opcode Customizations

3.3.2.1. VF_EOP_PYMT_REVERSE

vf_file_loader utility calls VF_EOP_PYMT_REVERSE opcode with action type as VF_PYMT_AU_DD_DISHONOUR to reverse payments with failures in BRM when batch_dd_dishonours template is used.

This opcode validates the input fields for given action. The opcode creates input flist and calls OOB opcode PCM_OP_PYMT_COLLECT to reverse payment and apply payment failure fee (/event/billing/fee/failed_payment event) based on the payment failure reason code in BRM for VF_PYMT_AU_DD_DISHONOUR action.

Sample input flist

0 PIN_FLD_POID POID [0] 0.0.0.1 /account -1 0

0 PIN_FLD_PROGRAM_NAME STR [0] "vf_file_loader"

0 PIN_FLD_REVERSALS ARRAY [0] allocated 20, used 5

0 PIN_FLD_BATCH_ID STR [0] "21014351"

0 PIN_FLD_BATCH_TOTAL DECIMAL [0] 30

0 PIN_FLD_INDICATOR INT [0] 70

0 VF_FLD_PYMT_SOURCE STR [0] "PGB"

1 PIN_FLD_ACCOUNT_NO STR [0] "607093494"

1 PIN_FLD_REASON_CODE STR [0] "6100"

1 PIN_FLD_EFFECTIVE_T TSTAMP [0] (1621872510) Tue May 25 02:08:30 2021

1 PIN_FLD_TRANS_ID STR [0] "T1,2f,0"

1 PIN_FLD_DESCR STR [0] "006"

Sample input flist of PCM_OP_PYMT_COLLECT

0 PIN_FLD_POID POID [0] 0.0.0.1 /account 181935 0

0 PIN_FLD_PROGRAM_NAME STR [0] "ADAM TEST"

0 PIN_FLD_CHARGES ARRAY [0] allocated 7, used 7

1 PIN_FLD_ACCOUNT_OBJ POID [0] 0.0.0.1 /account 181935 0

1 PIN_FLD_ACH INT [0] 0

1 PIN_FLD_AMOUNT DECIMAL [0] 40

1 PIN_FLD_COMMAND ENUM [0] 0

1 PIN_FLD_PAY_TYPE ENUM [0] 10017

1 PIN_FLD_STATUS ENUM [0] 30

1 PIN_FLD_BILLINFO ARRAY [0] allocated 6, used 6

2 PIN_FLD_AMOUNT DECIMAL [0] 0

2 PIN_FLD_AMOUNT_ORIGINAL_PAYMENT DECIMAL [0] 40

2 PIN_FLD_BILLINFO_OBJ POID [0] 0.0.0.1 /billinfo 127540 0

2 PIN_FLD_TRANS_ID STR [0] "PGA#555666777"

2 PIN_FLD_ITEMS ARRAY [0] allocated 2, used 2

3 PIN_FLD_POID POID [0] 0.0.0.1 /item/payment 2385 0

3 PIN_FLD_DUE DECIMAL [0] -40

2 PIN_FLD_PAYMENT SUBSTRUCT [0] allocated 1, used 1

3 PIN_FLD_INHERITED_INFO SUBSTRUCT [0] allocated 1, used 1

4 PIN_FLD_PAYMENT_FAILED_INFO ARRAY [0] allocated 1, used 1

5 PIN_FLD_PAYMENT_TRANS_ID STR [0] "PGA#555666777"

Sample Output flist

0 PIN_FLD_POID POID [0] 0.0.0.1 /account -1 0

0 PIN_FLD_RESULTS ARRAY [0] allocated 20, used 2

1 PIN_FLD_RESULT ENUM [0] 0

1 PIN_FLD_POID POID [0] 0.0.0.1 /event/billing/payment/failed 17592220696424 0

4. Payments Enhancements

As part of projects mentioned below, there were further enhancements to payments:

Project

Formatter Changes

References

PrePayments

Solution for pre payments to offer options for payment of

devices/accessories, while maintaining control of credit risk

· VHA_BRM_PREPAYMENT_HLD_v1.0.docx

Direct Debit Retry

Solution for direct debit customer payment retry in case of payment failure due to soft dishonour failure

VHA_BRM_DirectDebit_Retry_HLD_v1.0.docx

Direct Debit Dishonour

· Solution to view meaningful and actual reason for direct debit dishonour in Siebel

VHA_BRM_DD_RESPONSE_DISPLAY_HLD_v1.0.docx