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 |
|