BRM Configuring and Collecting Payments
BRM Configuring and Collecting Payments
BRM Configuring and Collecting Payments
February 2014
Oracle Communications Billing and Revenue Management Configuring and Collecting Payments, Release
7.5
E16712-07
Copyright © 2011, 2014, Oracle and/or its affiliates. All rights reserved.
This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,
transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse
engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is
prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it
on behalf of the U.S. Government, the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software,
any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users
are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and
agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and
adaptation of the programs, including any operating system, integrated software, any programs installed on
the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to
the programs. No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications, including
applications that may create a risk of personal injury. If you use this software or hardware in dangerous
applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other
measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages
caused by use of this software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of
their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks
are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD,
Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced
Micro Devices. UNIX is a registered trademark of The Open Group.
This software or hardware and documentation may provide access to or information on content, products,
and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly
disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle
Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your
access to or use of third-party content, products, or services.
Contents
1 About Payments
About Payments........................................................................................................................................ 1-1
About BRM-Initiated Payment Processing ......................................................................................... 1-1
About Collecting BRM-Initiated Payments.................................................................................... 1-1
Supported BRM-Initiated Payment Methods ................................................................................ 1-2
About Externally Initiated Payment Processing ................................................................................ 1-2
About Collecting Externally Initiated Payments........................................................................... 1-2
Supported Externally Initiated Payment Methods ....................................................................... 1-2
About Payment Methods ........................................................................................................................ 1-3
Cash, Check, and Postal Order Payment Methods ....................................................................... 1-3
Credit Card Payment Method.......................................................................................................... 1-3
Direct Debit Payment Method ......................................................................................................... 1-4
Invoice Payment Method .................................................................................................................. 1-4
Prepaid Payment Method ................................................................................................................. 1-4
Nonpaying (Subordinate) Payment Method.................................................................................. 1-5
Undefined Payment Method ............................................................................................................ 1-5
About Credit Limits for Undefined Payment Methods ........................................................ 1-5
Voucher Payment Method................................................................................................................ 1-5
Wire Transfer Payment Method ...................................................................................................... 1-6
Finding Payment Info........................................................................................................................ 1-6
About Payment Attributes...................................................................................................................... 1-6
Account and Bill Number ................................................................................................................. 1-6
Payment Method ................................................................................................................................ 1-6
Payment Channel ............................................................................................................................... 1-6
Payment Status ................................................................................................................................... 1-7
Batch ID ............................................................................................................................................... 1-7
Transaction ID .................................................................................................................................... 1-7
Subtransaction ID............................................................................................................................... 1-7
About Validating Payments ................................................................................................................... 1-8
iii
About Payment Status ....................................................................................................................... 1-8
Default BRM Status Codes and Descriptions................................................................................. 1-9
About Allocating Payments ................................................................................................................ 1-10
Allocating Account-Level Payments to Multiple Bill Units...................................................... 1-11
About Reversing Payments ................................................................................................................. 1-13
About Payment Fees ............................................................................................................................. 1-14
About Payment Incentives .................................................................................................................. 1-14
About Credit Card Payment Confirmation Numbers .................................................................... 1-15
About Account Top-Ups ...................................................................................................................... 1-15
About Payment Suspense Manager................................................................................................... 1-15
About Unconfirmed Payment Processing ........................................................................................ 1-16
About Reversing Account Write-Offs during Payment Collection............................................. 1-16
About Payment Processors .................................................................................................................. 1-16
About Automated Clearing Houses............................................................................................. 1-16
About Credit Card, Debit Card, and Direct Debit Processors.................................................. 1-16
About Payment Gateways ............................................................................................................. 1-17
How BRM Collects Payments ............................................................................................................. 1-17
BRM-Initiated Payment Processing.............................................................................................. 1-17
Externally Initiated Payment Processing..................................................................................... 1-18
Selecting the Items to Which Payments Are Applied .................................................................... 1-19
How Items Are Selected for Payments ........................................................................................ 1-19
How BRM Calculates Payment Collection Dates ........................................................................... 1-20
How BRM Receives Payments............................................................................................................ 1-21
How BRM Reverses Payments ........................................................................................................... 1-22
How BRM Refunds Payments ............................................................................................................ 1-23
How BRM Writes Off Payments ........................................................................................................ 1-24
Related Documents ............................................................................................................................... 1-24
iv
About Collecting BRM-Initiated Payments ........................................................................................ 2-7
When to Run the pin_collect Utility ................................................................................................ 2-8
Increasing Performance of the pin_collect Utility ......................................................................... 2-8
Setting the Minimum Amount to Collect ....................................................................................... 2-8
About Depositing BRM-Initiated Payments ...................................................................................... 2-8
When to Run pin_deposit ................................................................................................................. 2-8
Increasing Performance of the pin_deposit Utility ....................................................................... 2-9
About Resolving Failed BRM-Initiated Payment Transactions...................................................... 2-9
When to Run the pin_clean Utility .................................................................................................. 2-9
Example of Running pin_clean ........................................................................................................ 2-9
About Recovering BRM-Initiated Payment Transactions............................................................. 2-10
When to Run the pin_recover Utility ........................................................................................... 2-10
How BRM-Initiated Payment Transactions Are Performed ......................................................... 2-10
How BRM Performs Credit Card Charges .................................................................................. 2-13
How BRM Performs Direct Debit Charges.................................................................................. 2-14
About Paymentech Direct Debit Implementation............................................................... 2-14
Creating a Custom Direct Debit Implementation ............................................................... 2-15
How BRM Performs a Batch of Direct Debit Charges ............................................................... 2-15
How BRM Checks the Results of BRM-Initiated Batch Payment Operations........................ 2-15
How BRM Validates Credit Card and Direct Debit Transactions ........................................... 2-16
How BRM Handles Credit Card Information during Account Creation ................................... 2-16
About Credit Card Fraud Prevention ................................................................................................ 2-17
v
Troubleshooting HeartBeat Errors ........................................................................................ 3-14
Changing How BRM Handles Paymentech Address Validation Return Codes ...................... 3-15
Handling AVS Validations for International Credit Cards ...................................................... 3-16
Customizing How the Results of Credit Card Transactions Are Processed .............................. 3-16
Changing How BRM Handles Paymentech Authorization Return Codes ................................ 3-18
Testing Paymentech Credit Card Processing ................................................................................... 3-19
Setting Up the Paymentech Simulator ......................................................................................... 3-20
Defining the Credit Card Functionality to Test................................................................... 3-20
Setting Up the Paymentech DM Configuration File for Testing....................................... 3-20
Specifying an IP Address for the Paymentech Simulator .................................................. 3-20
Running the Paymentech Simulators........................................................................................... 3-21
Simulating Failed Credit Card Transactions............................................................................... 3-21
Resolving Failed Credit Card Transactions ................................................................................ 3-22
About Paymentech Fraud Prevention Using CID and CVV2 .................................................. 3-22
About Paymentech Soft Descriptor Credit Card and Checking Statement Information........ 3-22
Implementing a Direct Debit Payment Method ............................................................................. 3-23
Direct Debit Options ....................................................................................................................... 3-23
Direct Debit Installation ................................................................................................................. 3-23
Direct Debit Components .............................................................................................................. 3-23
Implementing a Custom Direct Debit Payment Method .......................................................... 3-24
Overview of Adding a Custom Direct Debit Implementation.......................................... 3-24
Creating /payinfo Storable Classes....................................................................................... 3-24
Modifying Customer Center .................................................................................................. 3-25
Creating Opcodes..................................................................................................................... 3-25
Creating Event Storable Classes ............................................................................................ 3-25
Creating a Data Manager........................................................................................................ 3-25
Updating the /config/payment Storable Object................................................................. 3-25
vi
Defining Reason Codes for Failed Payments................................................................................. 6-3
Creating Payment Fees ............................................................................................................................ 6-4
Defining a Payment Fee .................................................................................................................... 6-4
Defining Thresholds for Payment Fees........................................................................................... 6-6
Defining Exemptions from Payment Fees ...................................................................................... 6-7
Removing a Payment Fee from an Account Balance .................................................................... 6-8
Customizing Payment Fees .................................................................................................................... 6-8
How Payment Fees Are Applied ..................................................................................................... 6-8
Customizing Payment Fees .............................................................................................................. 6-9
Storing Additional Information with Payment Fees.................................................................. 6-10
vii
How Direct Reversals and Refunds Relate to Suspense ........................................................... 8-16
About Directly Reversing Payments from BRM ................................................................. 8-17
About Refunding Payments ................................................................................................... 8-17
About Removing Unallocatable Payments from Suspense ...................................................... 8-17
About Payment Suspense Manager and Client Applications .................................................. 8-18
Summary of Payment Suspension Guidelines and Restrictions .............................................. 8-20
General Guidelines .................................................................................................................. 8-20
Suspended Payment Guidelines............................................................................................ 8-21
Distributed Payment Guidelines ........................................................................................... 8-21
Configuring BRM for Payment Suspense Manager....................................................................... 8-22
Enabling Payment Suspense in BRM ........................................................................................... 8-22
Creating the Payment Suspense Account.................................................................................... 8-23
Working with Suspense Reason Codes and Action Owner Codes ......................................... 8-23
About the Reasons.locale File.................................................................................................. 8-24
Loading Reason Codes into the BRM Database .................................................................. 8-26
Setting Up Permissions for Payment Center............................................................................... 8-27
About Customizing Payment Suspense Manager .......................................................................... 8-27
How Payments Are Suspended during Payment Processing .................................................. 8-28
How Payments Are Recycled to and from Suspense................................................................. 8-28
How Recycled Payments Are Retrieved...................................................................................... 8-30
How Payments Are Reversed ....................................................................................................... 8-31
How Payments Are Reversed During Recycling ................................................................ 8-31
How Payments Are Removed As Unallocatable................................................................. 8-32
Customizing Payment Suspense Validation ............................................................................... 8-32
Customization Example: Suspending Large Payments ..................................................... 8-33
Customization Example: Threshold for Suspending Payments ....................................... 8-34
Customization Example: Finding Unconfirmed Payments............................................... 8-34
Customization Example: Error Handling ............................................................................ 8-34
Default Payment Validation Process .................................................................................... 8-34
Payment Validation Flags....................................................................................................... 8-37
Customizing Payment Guidance to Suspense ............................................................................ 8-37
Customizing Payment Failure Reason Codes............................................................................. 8-37
Customizing Payment Tool ........................................................................................................... 8-38
Adding a Cash Reversal Batch............................................................................................... 8-38
Customizing Suspense Criteria for Payment Tool.............................................................. 8-39
Handling Custom Payment Methods .......................................................................................... 8-39
Adding Multischema Support in Payment Processing.................................................................. 8-40
9 Configuring Top-Ups
About Topping Up Accounts ................................................................................................................. 9-1
About Standard Top-Ups.................................................................................................................. 9-1
Standard Top-Up Payment Methods ....................................................................................... 9-2
About Sponsored Top-Ups ............................................................................................................... 9-3
About Sponsored Top-Up Groups ........................................................................................... 9-3
About Sponsored Top-Up Credit Limits ................................................................................. 9-4
Sponsored Top-Up Limitations ................................................................................................ 9-5
About Top-Up Discount Incentives................................................................................................. 9-5
viii
Implementing Top-Ups in Custom Client Applications.................................................................. 9-5
Implementing Manual Standard Top-Ups ..................................................................................... 9-5
Implementing Automatic Standard Top-Ups ................................................................................ 9-6
Implementing Manual Sponsored Top-Ups .................................................................................. 9-7
Implementing Automatic Sponsored Top-Ups ............................................................................. 9-9
How BRM Sets Up Top-Up Information for an Account ................................................................. 9-9
Preparing an Account’s Top-Up Information............................................................................. 9-10
Additional Preparation for Sponsored Top-Ups................................................................. 9-11
Validating an Account’s Top-Up Information............................................................................ 9-11
Creating or Modifying an Account’s Top-Up Information....................................................... 9-12
Creating Top-Up Information ................................................................................................ 9-12
Modifying Top-Up Information ............................................................................................ 9-12
Setting an Account’s Sponsored Top-Up Member Status and PIN ......................................... 9-13
Activating Sponsored Top-Up Group Members................................................................. 9-13
Inactivating Sponsored Top-Up Group Members .............................................................. 9-14
Setting Sponsored Top-Up Member PINs............................................................................ 9-14
Finding Sponsored Top-Up Groups............................................................................................. 9-14
About Tracking Sponsored Top-Up Adjustments.......................................................................... 9-15
Customizing and Loading Sponsored Top-Up Reason Codes................................................. 9-16
Offering Discount Incentives with Top-Ups................................................................................... 9-17
How BRM Performs Top-Ups............................................................................................................. 9-17
Triggering PCM_OP_PYMT_TOPUP .......................................................................................... 9-17
Performing Top-Ups with PCM_OP_PYMT_TOPUP ............................................................... 9-18
How PCM_OP_PYMT_TOPUP Handles Manual Standard Top-Ups............................. 9-18
How PCM_OP_PYMT_TOPUP Handles Automatic Standard Top-Ups........................ 9-19
How PCM_OP_PYMT_TOPUP Handles Manual Sponsored Top-Ups .......................... 9-19
How PCM_OP_PYMT_TOPUP Handles Automatic Sponsored Top-Ups ..................... 9-20
About Transferring Sponsored Top-Ups from Debit Balances ................................................ 9-21
About Retrieving Balance Impact Information for Voucher Top-Ups.................................... 9-21
About Taxes Applied during Voucher Top-Ups ........................................................................ 9-21
Topping Up Accounts in Customer Center and Self-Care Manager....................................... 9-21
Performing Top-Ups in Customer Center............................................................................ 9-22
Performing Top-Ups in Self-Care Manager ......................................................................... 9-23
Performing Automatic Sponsored Top-Ups ............................................................................... 9-23
Running the pin_balance_transfer Utility ............................................................................ 9-23
About Reversing Voucher Top-Ups .................................................................................................. 9-23
Reversing Vouchers That Have Only Non-Currency Resources ............................................. 9-24
Reversing Vouchers That Have Currency and Non-Currency Resources ............................. 9-24
About Vouchers Having Non-Currency Resources with a Positive Impact .............................. 9-24
Viewing Sponsored Top-Up History................................................................................................. 9-24
Displaying All Sponsored Top-Ups Associated with an Account........................................... 9-25
Displaying Sponsored Top-Ups Associated with Only One Group ....................................... 9-25
Displaying Only Sponsored Top-Up Credits or Debits............................................................. 9-25
Canceling Top-Ups ............................................................................................................................... 9-26
Canceling Sponsored Top-Ups...................................................................................................... 9-26
Canceling a Single Member’s Sponsored Top-Ups............................................................. 9-26
Canceling an Entire Group’s Sponsored Top-Ups.............................................................. 9-27
ix
Reinstating Sponsored Top-Ups ............................................................................................ 9-27
Deleting Accounts That Are Sponsored Top-Up Owners or Members .................................. 9-27
About Deleting Owner Accounts .......................................................................................... 9-27
About Deleting Member Accounts........................................................................................ 9-28
x
Rules for Modifying Payment and Reversal Fields.................................................................. 11-17
Creating an Object Definition for a New Payment or Reversal Event ................................. 11-18
Changing the Order of Columns in Payment Tool .................................................................. 11-19
Adding a New Column to Payment Tool.................................................................................. 11-20
Adding Direct Debit Details to the Customer Center Payments Tab.................................... 11-20
Customizing the Date Format of Batch Files in Payment Tool .............................................. 11-21
xi
About Extending a Resource Reservation Amount ........................................................................ 14-6
About Extending a Resource Reservation Expiration Time.......................................................... 14-6
About Releasing a Partially Used Reservation................................................................................ 14-6
About Releasing an Unused Reservation ......................................................................................... 14-6
About Reserving and Releasing Disputed Amounts ..................................................................... 14-7
Sending Reservation Requests to the Resource Reservation Manager Opcodes ..................... 14-7
Creating Reservations..................................................................................................................... 14-8
Associating a Session with a Reservation.................................................................................... 14-9
Extending the Reservation Amount ............................................................................................. 14-9
Finding a Reservation................................................................................................................... 14-11
Releasing Reservations ................................................................................................................. 14-11
Extending the Expiration Time for a Reservation .................................................................... 14-12
Customizing Resource Reservation................................................................................................. 14-13
Customizing Resource Reservation Rules................................................................................. 14-13
Customizing the Rules for Extending a Reservation ............................................................... 14-13
Customizing the Rules for Releasing a Reservation ................................................................ 14-14
Customizing the Offer Profile Threshold Notifications .......................................................... 14-14
Installing Resource Reservation Manager ..................................................................................... 14-14
System Requirements ................................................................................................................... 14-14
Software Requirements ................................................................................................................ 14-14
Installing Resource Reservation Manager ................................................................................ 14-14
Uninstalling Resource Reservation Manager ................................................................................ 14-16
15 Payment Utilities
load_pin_ach .......................................................................................................................................... 15-2
pin_balance_transfer ............................................................................................................................ 15-4
pin_clean ................................................................................................................................................. 15-6
pin_collect............................................................................................................................................... 15-8
pin_deposit ........................................................................................................................................... 15-11
pin_recover ........................................................................................................................................... 15-13
xii
Preface
This guide describes how to collect and manage payments data in Oracle
Communications Billing and Revenue Management (BRM).
Audience
This guide is intended for developers and system administrators.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle
Accessibility Program website at
http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
xiii
Version Date Description
E16712-03 August 2012 Documentation updates for BRM 7.5 Patch Set 2.
■ Added an example in "Specifying the Batch Mode
Encryption Key".
E16712-04 December 2012 Documentation updates for BRM 7.5 Patch Set 3.
■ Updated "Reserving Resources for Concurrent
Network Sessions" for policy-driven charging.
■ Added the section "Improved Performance of
Searches for Payment Events in Payment Center".
E16712-05 March 2013 Replaced multidatabase information with multischema
information.
E16712-06 August 2013 On HP-UX IA64, BRM 7.5 is certified as of BRM 7.5
Patch Set 5.
Documentation added for HP-UX IA64.
E16712-07 February 2014 Documentation updates for BRM 7.5 Patch Set 7.
■ Made minor formatting and text changes.
xiv
1
About Payments
1
About Payments
A payment consists of the amount and method by which customers pay their bills.
There are several different payment methods available in BRM, depending on the type
of payment processing your company performs: BRM-initiated, or externally initiated.
When payments are received in BRM, a payment event is recorded, and the BRM
system creates a payment accounts receivable (A/R) item. Payments can be submitted
to BRM automatically, by a payment processor, or manually, by using Payment Tool.
You use Customer Center to search for and review customer payments. You can view
the payment amount, payment date, payment method, and other payment attributes.
For information on accounts receivable, see “About Accounts Receivable” in BRM
Managing Accounts Receivable.
checking account is charged by your payment processor, and then the payments are
sent to the BRM Payment Data Manager (DM).
You can use multiple payment processors and configure multiple Data Managers to
handle payment processing.
For more information on collecting BRM-initiated payments, see "About BRM-Initiated
Payment Processing".
■ Wire transfer
■ Voucher
For information on creating new payment methods, see “Customizing Payment
Methods” in BRM Managing Customers.
When a customer registers for a credit card payment method, BRM attempts to
validate the card by default. See “Validating Credit Cards at Registration” in BRM
Managing Customers.
When a credit card payment is made, BRM returns a confirmation number that the
customer can use to identify the payment. See "About Credit Card Payment
Confirmation Numbers".
Note: BRM supports direct debit only in the United States and
Canada.
With prepaid balances, there is no credit risk, because customers cannot use services
until they have paid for them.
Payment Method
The payment method identifies how customers pay their bill (for example, by credit card
or check). See "About Payment Methods".
You use Customer Center to manage the payment method for an account. For more
information, see the Customer Center Help.
Payment Channel
The payment channel identifies how the payment was sent to your third-party payment
processor, such as by the Internet or Voice over IP (VOIP). You can create custom
payment rules based on the payment channel ID; for example, you can grant a
payment incentive if customers pay their bills over the Internet.
For more information, see "Configuring Payment Channels".
Payment Status
The payment status identifies the success or failure of a payment when it is received.
BRM uses the status code to determine how to process each payment. The status
description is displayed in Payment Tool to assist payment clerks in handling
externally initiated payment batches.
For more information, see "About Payment Status".
Batch ID
All payments in a payment batch contain the same batch ID. This helps you to identify
payments that do not contain a payment ID.
Transaction ID
BRM uses the payment transaction ID to internally manage A/R and to identify
payment transactions that occurred between BRM and the payment processor. All
BRM-initiated payments, such as credit card and direct debit payments, contain a
transaction ID.
BRM identifies failed transactions by keeping a record of each transaction in the BRM
database. For information on resolving failed BRM-initiated payment transactions, see
"Resolving Failed BRM-Initiated Payment Transactions".
If unconfirmed payment processing is enabled in your BRM system, when a failed
unconfirmed payment is received, BRM identifies the original successful payment by
using its transaction ID. For more information on unconfirmed payment processing,
see "About Unconfirmed Payment Processing".
Subtransaction ID
The subtransaction ID identifies a payment that was reversed due to suspended
payment recycling. BRM uses subtransaction IDs internally to track a recycled
payment back to its original payment. The subtransaction ID of a recycled payment is
the same as the transaction ID of the payment from which it originated.
Payments that have never been recycled have a SUB_TRANS_ID value of NULL.
For information on Payment Suspense Manager and tracking suspended payments,
see "How BRM Tracks Suspended Payments".
■ Items
Payments allocated to one or more items close each item and update the balance
accordingly. If all items in a bill are closed, the bill is also closed. Item-level
allocation also updates the account balance.
Underpayments and overpayments may also require allocation. See "Handling
Overpayments and Underpayments".
An account-level payment applied to an account with multiple bill units may also
require allocation. See "Allocating Account-Level Payments to Multiple Bill Units".
For information on how to allocate payments in Payment Tool, see "About Allocating
Payments".
To allocate an account-level payment to multiple bill units of an account, BRM calls the
PCM_OP_PYMT_COLLECT opcode. PCM_OP_PYMT_COLLECT performs the
following operations:
1. Opens a transaction.
2. Calls the PCM_OP_PYMT_VALIDATE_PAYMENT opcode to validate the
payment.
PCM_OP_PYMT_VALIDATE_PAYMENT invokes the PCM_OP_PYMT_POL_
VALIDATE_PAYMENT policy opcode to validate the payment. This policy
opcode:
a. Checks the appropriate /config/business_params objects to find out if
Payment Suspense Manager is enabled.
b. Checks that the payment is an account-level payment and that the account has
multiple bill units.
c. If the payment is successful and passes the validation process, adds the reason
ID, PIN_REASON_ID_MBI_DISTRIBUTION_REQD to the PIN_FLD_
PAYMENT_REASONS array in the output flist.
Direct reversals are the most frequent type of reversal in BRM, and they occur outside
of the suspense and recycling processes. Unlike reversals that occur during recycling,
direct reversals are not initiated by the creation of a new recycled payment.
BRM uses the PCM_OP_BILL_REVERSE opcode to process direct reversals. For more
information, see "How BRM Reverses Payments".
Indirect reversals are assigned a G/L ID of 113, placing the payment amount in a
special G/L bucket so that you can keep a separate record of these reversals. For more
information on G/L IDs and reversals, see "Working with Suspense Reason Codes and
Action Owner Codes".
For more information about reversals due to recycling, see "Understanding Payment
Recycling" and "How Payments Are Reversed".
Important: Only credit card and debit card payment methods can be
posted before they are confirmed.
For information on using the Paymentech processing service with BRM, see
"Configuring BRM-Initiated Payment Processing".
included, all items belonging to those bills are selected. If none are specified,
the default /billinfo storable object is used to apply the payment.
– The PIN_FLD_BILLINFO array specifies the /billinfo object to select items for.
If none are specified, the items are retrieved based on the bills in the PIN_
FLD_BILLS array. If neither a bill unit POID or bill is included, the items are
selected from the account’s default /billinfo object. This is the /billinfo object
that contains the default balance group for the account.
Note: If x makes the payment collection date earlier than the date the
bill is finalized, the PCM_OP_BILL_POL_CALC_PYMT_DUE_T
policy opcode uses the finalization date instead.
– Array Element 0: Stores the reason code used to determine the G/L ID of the
payment being moved to the payment suspense account.
– Array Element 1: Stores the action owner code for suspended or failed
payments.
– Array Element 2: Stores the original reason code for failed payments that BRM
suspended. This ensures that the reason initially associated with the financial
failure is not lost if BRM places the payment in suspense. Element 2 is used
only for Payment Suspense Manager; if payment suspense is not enabled, only
element 0 will be present.
When the failed payment leaves suspense and PCM_OP_BILL_RCV_PAYMENT
creates new payment objects to record the corrected payment, Elements 0 and 1 are
no longer needed. The object does not contain the elements 0 and 1 recorded for
suspense, and Element 2 becomes the new Element 0.
■ When processing multiple resource voucher top-ups that include non-currency
resources, PCM_OP_BILL_RCV_PAYMENT retrieves the non-currency balance
impacts from the PIN_FLD_TOPUP_RESOURCE_INFO substruct in the PCM_
OP_PYMT_COLLECT input flist and passes them to the PCM_OP_ACT_USAGE
opcode so that they are recorded in the corresponding
/event/billing/payment/voucher object. See "How BRM Performs Top-Ups".
PCM_OP_BILL_RCV_PAYMENT uses the PIN_FLD_SESSION_OBJ field in the input
flist to reference the type of session in which the event occurred: either
/event/billing/batch/refund or /event/billing/batch/payment, depending on the batch.
■ Finds all distributed payment events that have the same SUB_TRANS_ID
value as this payment’s TRANS_ID value, and have not been reversed already
due to the recycling process.
■ Assigns a reversal TRANS_ID value to each payment returned by the search
and populates the reversal flist with each TRANS_ID value.
5. Checks the PIN_FLD_STATUS field of each /event/billing/reversal object
associated with the payment being reversed to ensure that no part of the payment
has been removed from suspense as unallocatable.
6. Calls PCM_OP_BILL_REVERSE_PAYMENT to reverse the list of payments.
■ If the payment was originally made to a customer account, the list includes
any recycled payment generated if the payment was moved into the suspense
account after it posted to the customer account.
■ If the payment was originally made to the suspense account, the list contains
all payments generated from the original payment, including distributed
payments and any payment remaining in the suspense account.
In both cases, the sum of all the payments reversed in this operation should equal
the amount of the original payment.
PCM_OP_BILL_REVERSE_PAYMENT verifies that the reversal operation was
successful for all of the payments. It uses the PIN_FLD_SESSION_OBJ field in the
input flist to reference the reversal batch event.
It also checks the /config/business_params object to determine whether payment
incentives are enabled. If so, PCM_OP_BILL_REVERSE_PAYMENT calls the
PCM_OP_PYMT_REVERSE_INCENTIVE opcode, which removes the payment
incentive trigger in the /billinfo object, thus eliminating the payment incentive.
7. Populates the payment batch with the sum of the reversal flist.
8. Returns the reversal information for all the payments in the PIN_FLD_MULTI_
RESULTS array.
The PIN_FLD_RESULTS field of the output flist indicates whether the reversal was
successful. Direct reversal is not allowed if either of the following conditions is true:
■ The payment has a SUB_TRANS_ID value and, therefore, is not an original
payment.
■ PCM_OP_BILL_REVERSE is called from the PCM_OP_PYMT_RECYCLE_
PAYMENT opcode. In this case, a reversal takes place, but it is not a direct
reversal. See "How Payments Are Reversed".
To customize how written off payments are reversed, use the PCM_OP_BILL_POL_
REVERSE_PAYMENT policy opcode. See “Customizing Reversal of Payments
Allocated to Written-Off Accounts” in BRM Managing Accounts Receivable.
If you have Payment Suspense Manager enabled, you can reverse only original
payments. For information on payment reversals that occur during payment suspense
processing, see "How Payments Are Reversed".
For information on processing a payment reversal batch by using Payment Tool, see
"About Reversing Payments".
Related Documents
For more information about payments and accounts receivable, see the following
documents:
■ About Accounts Receivable in BRM Managing Accounts Receivable
■ About BRM-Initiated Payment Processing
■ Managing Externally Initiated Payments
Prerequisites
To use Paymentech’s 120-byte batch request/response format, you must complete the
required certification with Paymentech for online payment processing. This step
should be completed before you allow customers to log in to a production system. You
can obtain more information on obtaining the required certification from the Chase
Paymentech Web site at:
http://www.chasepaymentech.com
If you plan to enhance your existing payment processing with Paymentech’s Account
Verification function, then before you do so, ensure that all pre-authorized payments
are deposited or reversed.
■ When a transaction needs validation only, Paymentech Manager sends the action
code LO and a transaction amount is $0.00.
Paymentech in turn, validates this direct debit transaction against an Automatic
Clearing House (ACH) eligibility file, Notification of Change (NOC) file, and
Electronic Check Processing (ECP) internal negative file for Canadian ECP.
If the account verification is successful for a transaction with an LO action code
and the amount set to $0.00, Paymentch responds with a Response Reason Code
101 (Validation passed Paymentech negative file and data edit check).
■ When the Paymentech Manager must verify the direct debit transaction against a
third-party negative file for United States ECP, it sends the action code VO and a
transaction amount $0.00.
If the account verification of a transaction with an VO action code for an amount
set to $0.00 passed the third-party negative file for United States ECP, Paymentech
responds with a Response Reason Code 102 (Account verification Passed external
negative file).
■ When the Paymentech Manager must verify the account for VISA or MasterCard,
it sends the action code VF and a transaction amount $0.00.
If the account verification of a transaction with an VF action code for an amount
set to $0.00 is successfully approved, Paymentech responds with a Response
Reason Code 104 (No Reason to Decline).
For more information, see the 120-Byte Batch Processing Versions 2.0.0-3.0.0 Rev 2
Addendum in Support of Account Verification technical specification on the Chase
Paymentech library Web site.
The credit card processor returns a validation code and an authorization code.
BRM ignores the authorization code, and uses the validation code to determine if
the address validation passed. For example, by default an address validation fails
if the 5-digit ZIP code is wrong.
If the address validation fails, the next step, authorization, does not take place.
2. BRM sends another validation request along with an authorization to charge for
an actual amount, for example, a purchase fee.
The credit card processor returns a validation code and an authorization code.
This time, BRM ignores the validation code and uses the authorization code to
determine if the authorization passed.
You can change how BRM responds to validation and authorization return codes. For
more information about how BRM handles Paymentech address validation and
authorization return codes, see:
■ Changing How BRM Handles Paymentech Address Validation Return Codes
■ Changing How BRM Handles Paymentech Authorization Return Codes
The request and response messages should continue for the duration of the connection
and are comprised of a unique sequence number and a current timestamp.
For information on initializing the HeartBeat application and troubleshooting errors,
see "Using the Paymentech HeartBeat Application".
Important: When you use multiple payment processors, you run this
utility for each payment processor. See "Using More Than One
Payment Processor".
You can also run the pin_collect utility manually to rebill accounts from a specific
date.
Important: When you use multiple payment processors, you run this
utility for each payment processor. See "Using More Than One
Payment Processor".
If performance warrants, you can modify the scope of the search by using the start and
end options to change the starting and ending dates of the search.
Tip: The pin_clean utility writes output to stdout, so you can write a
script to run the pin_clean utility daily and write the output to a file.
In this example, there are three failed verification transactions, three failed
authorization transactions, and two failed refund transactions.
Note:
■ For security reasons, the credit card CVV2 and CID numbers are
not stored in BRM. If the cc_collect entry is enabled, PCM_OP_
PYMT_CHARGE passes the security information to the payment
processor for authorization and collection only at time of account
creation. When collecting payments, PCM_OP_PYMT_CHARGE
does not pass the information. In addition, it omits the PIN_FLD_
SECURITY_ID field from the input flist of PCM_OP_ACT_
USAGE so it is not written to the /event/billing/charge/cc object.
The result is that the CVV2/CID information is stored in the
database with a NULL value. For more information, see
"Requiring Additional Protection against Credit Card Fraud".
■ BRM supports direct debit transactions from checking accounts
only.
Each of the commands listed below in Table 2–1 can be executed as an operation. They
are also called by Customer Center:
For each operation specified, the result of the operation is stored in the corresponding
/event/billing/charge storable object.
The result is stored both as a numeric value returned by the payment processor, and as
an enumerated result. The enumerated result should generally be used by applications
to determine what happened because its values are independent of which settlement
house was used.
Possible result values for an operation are shown in Table 2–2:
General soft declines are failures that can be retried later with possible success. This
includes reasons like insufficient credit limit and other transitory causes. General hard
declines are failures that are unlikely to succeed if retried. These include reasons like
lost and stolen credit card and chronic payment failures.
You can send multiple charges in one call by using the PIN_FLD_CHARGES array on
the input flist. This array is designed for batch processing; you just make one call to
PCM_OP_PYMT_CHARGE for a whole list of charges (or accounts to charge). These
entries on the input flist of this opcode are of special interest:
■ The PIN_FLD_POID entry at the top of the input flist is only used for routing; it
only requires a correct (user) database number.
■ The PIN_FLD_ACCOUNT_OBJ entry is the POID of the account actually being
charged (verified) by this element of the PIN_FLD_CHARGES array. In a batch,
this POID is presumably different for every element.
If the PCM_OPFLG_CALC_ONLY flag is set, the opcode does not change any fields in
the database and does not create an /event/billing/charge object. However, it does
provide a charge calculation to the caller by returning the fields that would have been
used to create the event object and the charge item.
With most credit card payment services, performing an authorization is much faster
than a conditional deposit (authorization plus deposit). Thus, for applications where
latency is important, it may be desirable to perform just the authorization step in
real-time. BRM daily billing performs the necessary deposits for all outstanding
authorizations from the previous day. This removes a significant amount of latency
from the real-time process, but still authorizes the charge so it is guaranteed to deposit
successfully.
The set of Paymentech return codes handled by BRM is listed in the BRM_
Home/sys/dm_fusa/fusa_codes file. As explained in "Changing How BRM Handles
Paymentech Authorization Return Codes", these codes can be modified. See "How
BRM-Initiated Payment Transactions Are Performed" for a list of the PIN result codes
from BRM-initiated payment transactions.
Unless the PCM_OPFLG_CALC_ONLY flag is specified, PCM_OP_PYMT_CHARGE_
CC creates an /event/billing/charge/cc storable object for each operation. If an array of
operations was specified, then more than one event storable object is created. The
event storable objects are created even if the credit card operations cannot be
performed.
For more information on credit card handling, see "About the Billing Utilities" and the
pin_collect, pin_recover, and pin_deposit sections in particular.
The set of Paymentech return codes handled by BRM is listed in the BRM_
Home/sys/dm_fusa/fusa_codes file. As explained in "Changing How BRM Handles
Paymentech Authorization Return Codes", these codes can be modified.
For both opcodes, the input flist contains an array of specific operations to perform, so
any number of operations can be batched together into a single call. The command is
specified within each operation, so a single batch can contain different commands. The
PIN_FLD_SESSION_OBJ in the input flist is either /event/billing/batch/refund or
/event/billing/batch/payment, depending on the batch type: payment or refund.
This chapter provides instructions for setting up Oracle Communications Billing and
Revenue Management (BRM) credit card and direct debit processing by using
Paymentech.
To use Paymentech with BRM, you must install the Paymentech Manager software.
Paymentech Manager integrates the Paymentech software with BRM.
Before reading this chapter, read “About Billing” in BRM Configuring and Running
Billing for information about how BRM handles billing. See "About BRM-Initiated
Payment Processing" for information about BRM-initiated payment processing,
Unless otherwise noted, the procedures described in this chapter apply to both credit
card and direct debit processing with Paymentech. BRM-initiated payments refers to
both credit card and direct debit transactions.
For information about creating a custom DM to handle direct debit processing, see
"Implementing a Direct Debit Payment Method".
■ W. Written.
BRM Paymentech Manager supports these new authorization method values and the
corresponding information as required by Paymentech.
If you customize electronic check processing with Paymentech, when ECP
Authorization Method is set to A or P:
■ Connection Manager ignores any input you provide in the fields that Paymentech
mandates for Check Serial Number, Terminal City, Terminal State, and Image
Reference Number.
■ The Check Serial Number, Terminal City, Terminal State, and Image Reference
Number mandatory fields are blank in the input BRM Paymentech Data Manager
receives from Connection Manager.
In BRM, when you customize electronic check processing for end-to-end payment
operations with Paymentech, avoid setting ECP Authorization Method to A or P.
Points to Consider
Consider the following points about batch processing functionality complying with
Paymentech Batch Version 3.0.0 Revision 4.2:
■ If you use the 120-byte message format, you must complete the certification for
batch processing for Paymentech before you allow customers to log in to the
production system.
■ For the UK Domestic Maestro (Switch/Solo) card (MOP = SW) with batch
processing functionality complying with Paymentech Batch Version 3.0.0 Revision
4.2, Paymentech expects the card issue date and the issue number (if present) in
the UK Domestic Maestro extension record.
■ BRM does not support registration of new subscribers with UK Domestic Maestro
(Switch/Solo) card type. For already registered subscribers, transactions other
than the refund (Action Code = RF) are not supported.
For more information about Paymentech’s 120-byte batch format, view the 120-Byte
Batch Processing Format Specification version 3.0.0 - Revision 4.2 document at the
Chase Paymentech Web site.
You specify merchants and the payment processor vendors that process your
BRM-initiated payment transactions for the entire system. You can specify any number
of payment processor vendor and merchant pairs.
To specify merchants and vendors, you edit the pin_ach file, then run the "load_pin_
ach" utility to load the contents of the file into the /config/ach object in the BRM
database.
Note: The default merchant for each payment processor is the first
merchant listed for the vendor.
where:
■ fusa is the name of the payment processor.
■ 0.0.1.1 /payment -1 is a routing POID used to identify the database where the
payment processor Data Manager (DM) runs. The object type and ID
(/payment -1) are not significant.
■ test is the merchant name.
■ Edit this field to specify your merchant name. This name must match the
merchant name entry in the payment processing data manager (DM)
configuration file. For example, if the merchant name in the dm_fusa pin.conf
file is mid_ispDealer, the merchant name in pin_ach must be ispDealer.
■ 0 is the payment channel ID.
■ Edit this field to specify the payment channel ID for each vendor. The
channel_id value must match a payment channel ID configured in the /strings
object. If a payment does not contain a payment channel ID, a value of 0 is
saved with the payment by default, which configures it as Unspecified
Payment Channel. For more information, see "Configuring Payment
Channels".
If you are not in the same directory as the pin_ach file, include the complete path
to the file. For example:
load_pin_ach BRM_Home/sys/data/pricing/example/pin_ach
And add entries to run the utility for each payment processor vendor:
pin_refund -active -pay_type 10003 -vendor fusa
IF %ERR% EQU 0 IF %ERRORLEVEL% NEQ 0 SET ERR=%ERRORLEVEL%
pin_refund -active -pay_type 10003 -vendor new_vendor
IF %ERR% EQU 0 IF %ERRORLEVEL% NEQ 0 SET ERR=%ERRORLEVEL%
...
pin_collect -inactive -pay_type 10003 -vendor fusa
IF %ERR% EQU 0 IF %ERRORLEVEL% NEQ 0 SET ERR=%ERRORLEVEL%
pin_collect -inactive -pay_type 10003 -vendor new_vendor
IF %ERR% EQU 0 IF %ERRORLEVEL% NEQ 0 SET ERR=%ERRORLEVEL%
...
pin_deposit -pay_type 10003 -vendor fusa
IF %ERR% EQU 0 IF %ERRORLEVEL% NEQ 0 SET ERR=%ERRORLEVEL%
pin_deposit -pay_type 10003 -vendor new_vendor
IF %ERR% EQU 0 IF %ERRORLEVEL% NEQ 0 SET ERR=%ERRORLEVEL%
...
3. Stop and restart the CM. See “Starting and Stopping the BRM System” in BRM
System Administrator's Guide.
Customer service representatives (CSRs) can request this information when they use
Customer Center to register customers or update credit card information in customer
accounts. By default, the CVV2 and CID numbers are considered to be optional when
CSRs add or change a customer’s credit card information. To require the CVV2 or CID
number as part of customer registration, change the following fields in the Connection
Manager (CM) configuration file (BRM_Home/sys/cm/pin.conf).
Important: For security reasons, the CVV2 and CID numbers are
stored in BRM with a NULL value. If you have the cvv2_required
entry enabled, the information is sent directly to Paymentech for
validation without being stored in the database. (Even if your CM
does not require this additional fraud prevention, Paymentech still
accepts the information if it is sent.)
For example:
- dm_fusa mid_ispname_840 050505
4. Stop and restart the Paymentech DM. See “Starting and Stopping the BRM
System” in BRM System Administrator's Guide.
3. Change the other related entries according to the instructions in the file.
4. Save and close the file.
5. Stop and restart the Paymentech DM. See “Starting and Stopping the BRM
System” in BRM System Administrator's Guide.
For an overview of soft descriptors, see "About Paymentech Soft Descriptor Credit
Card and Checking Statement Information" and the Paymentech soft descriptor
specifications.
To create multiple DBA names, product names, and phone number entries, you must
customize the PCM_OP_PYMT_POL_PRE_COLLECT policy opcode.
■ Set the fusamux online_port and fusamux online_srvr entries to point to the
Paymentech online server IP address and port number.
■ Set the fusamux_port entry to the port on which the fusamux daemon listens.
■ Set the dm_fusa online_port entry to the port on which fusamux listens.
■ Set the dm_fusa online_srvr entry to point to the fusamux IP address.
■ Set the dm_fusa qm_n_be entry to a number between 4 and 8.
3. Save the file.
4. Stop and restart the Paymentech DM. See “Starting and Stopping the BRM
System” in BRM System Administrator's Guide.
Note: If you use this option, you cannot process credit card
transactions by using the pin_collect or pin_deposit utilities. You
must wait and run billing when the Paymentech connection is
restored.
Tip: If the credit card payment service is not available and you still
want to register customers, you must isolate those accounts for later
credit card authorization. Modify the PCM_OP_PYMT_POL_
VALIDATE policy source file either to save a list of permissive
registrations or to send email to the system administrator.
Alternatively, you can write a simple application to periodically check
accounts and flag the ones that have been registered without
verification.
5. Stop and restart the Paymentech DM. See “Starting and Stopping the BRM
System” in BRM System Administrator's Guide.
■ To specify the AES encryption key, change the line to the following:
- crypt aes| libpin_crypt4qm.so "encryption_key"
For MD5:
- crypt md5| libpin_crypt4qm.so "24CFD43E8CE5273B0B7781140CB71B92"
For AES:
- crypt aes| libpin_crypt4qm.so "24CFD43E8CE5273B0B7781140CB71B92"
Tip: You can copy and paste the key or you can type it.
If these entries are missing from the dm_fusa.pinlog file or are not continuous for the
duration of the connection with Paymentech, the payment processing company should
call Paymentech to troubleshoot why the connection was lost or the HeartBeat
application was not enabled from their end.
If an error occurs with the HeartBeat application during payment simulation, an error
message similar to the following is written to the BRM_Home/apps/fusa_
server/answer_s.pinlog file:
Received (20) chars: Heartbeat response Validation failed in process_it() :
HI19999999813123300^M
For more information, see "Defining the Credit Card Functionality to Test".
If a socket disconnect occurs with the payment processing simulator and no online
transactions are occurring, errors similar to the following are written to the answer_
s.pinlog file:
E Tue Aug 08 10:51:24 2006 elm dm_fusa:2994 qbe_fusa.c(1.13):645 1:elm:dm_
fusa:2991:1:0:1155059471:0
Socket read error in dm_fusa_respond_heartbeat() recv() returned (0)
E Tue Aug 08 10:51:24 2006 elm dm_fusa:2994 qm_back.c(7):299 1:elm:dm_
fusa:2991:1:0:1155059471:0
Error(7) processing heartbeat monitor fd(5)
To this:
case PIN_CHARGE_RES_FAIL_ADDR_LOC:
/* street address failure is acceptable */
result = PIN_RESULT_FAIL;
descr = "street address not correct";
break;
For more information about credit card validation, see "About Credit Card Validation
and Authorization".
PCM_OP_PYMT_POL_VALIDATE returns the result of validating a credit card
transaction in the PIN_FLD_VENDOR_RESULTS field, including a description of that
result. You can customize credit card validations based on the response from ACH by
passing a PIN_FLD_ VENDOR_RESULTS value in the input flist. For example, you
can set the validation to pass or fail, or turn on logging based on the results from the
ACH.
PCM_OP_PYMT_VALIDATE calls this policy opcode during customer registration to
determine the success or failure of credit card validation.
You can change both the PIN_FLD_RESULT and PIN_FLD_DESCR values to modify
BRM responses to validation results returned in PIN_FLD_VENDOR_RESULTS. For
example, if your company does not want to proceed with a transaction when the result
The remaining input PIN_FLD_RESULT values are implemented in the same way.
PCM_OP_PYMT_POL_COLLECT sets the output PIN_FLD_RESULT value and the
PIN_FLD_DESCR description, and then reads the item for the account to determine if
there is an amount that is 30 days past due. If so, it specifies the following actions
shown in Table 3–5:
Note: You can map a Paymentech code to any BRM result code
except CHECKPOINT.
1. Open BRM_Home/sys/dm_fusa/fusa_codes.
2. Use the instructions in the file to edit the file.
3. Save the file.
4. Stop and restart the Paymentech DM. See “Starting and Stopping the BRM
System” in BRM System Administrator's Guide.
For more information about credit card authorization, see "About Credit Card
Validation and Authorization".
Caution: To test credit card and debit card processing with BRM
Paymentech simulators, you must use the account numbers from the
test environment only.
Note: The Paymentech simulator does not check for the expiration
date of the credit card.
Caution: Use the answer_s and answer_b utilities only in the test
environment.
In the production environment, uninstall these utilities to prevent
sensitive data from being used for verification.
For information about validation and authorization, see "About Credit Card Validation
and Authorization".
1. Open the simulator configuration file (BRM_Home/apps/fusa_server/pin.conf).
2. Change the response and result codes as necessary. For example:
- answer_s v_code 100
- answer_s avs I3
- answer_s s_code M
- answer_b v_code 100
- answer_b avs I3
to determine where to connect, or, if you know the IP address (for example, one
provided by Paymentech), you can define it in the answer pin.conf file.
1. Open the simulator configuration file (BRM_Home/apps/fusa_server/pin.conf).
2. Do one of the following:
■ To enable Paymentech to listen to any IP address located on the machine
where the answer utility is running, add the following entry to the file:
- answer answer_name -
■ To assign a specific IP address for the answer utility, add the following entry to
the file:
- answer answer_name IP_address
Note: Start the simulators before you start the Paymentech DM.
You can start and stop the simulators through the command line:
start_answer &
stop_answer
The value for merchant is described in "About Merchant Numbers and Account
Identifiers".
On the customer's statement, an asterisk is used to separate the DBA name and
product name. If the entry is longer than 22 characters (including spaces), it is
truncated on the statement. In this 22-character-maximum line, the asterisk delimiter
can appear in position 4, 8, or 13.
For example, if the merchant is psi, the DBA name is BRM, the pdt (product) is
internetSVC, and customer service number is 800-555-1234, use the following entries:
- dm_fusa sd_psi_dba BRM
- dm_fusa sd_psi_pdt InternetSVC
- dm_fusa sd_psi_phone 800-555-1234
For more information on soft descriptors, see "Adding Soft Descriptor Information"
and the Paymentech specifications.
To use multiple DBA names, product names, or phone numbers, you must customize
the PCM_OP_PYMT_POL_PRE_COLLECT policy opcode.
If you did not set these values when you installed BRM, you must do so and reinstall.
■ Opcodes
■ DMs
■ /payinfo storable classes
■ DLLs
■ Entries for the default bill types in the /config/payment storable object
You can add other billing and payment methods that you need for your business, and
customize the payment interface for those bill types.
Note: Whenever you add opcodes, opcode flags, or new event types
to BRM, you must also then edit the init_objects_ddebit.source file
and run the pin_init script.
Creating Opcodes
To manipulate objects derived from your new storable class, create opcodes and
Facilities Modules to implement them. For more information, see “Writing a Custom
Facilities Module” in BRM Developer's Guide.
Note: You can copy and paste the key, or you can type it.
You can use the payment channel information to implement customizations in BRM,
such as suspending payments, charging failed payment fees, and offering
early-payment incentives. For more information, see "How BRM Collects Payments".
Note: If you’re loading a localized version of this file, use the correct
file extension for your locale. For a list of file extensions, see Locale
names.
load_pin_ach ach_file
If you are not in the same directory as the load_pin_ach file, include the complete
path to the file. For example:
load_pin_ach BRM_Home/sys/data/pricing/example/ach_file
4. Stop and restart the Connection Manager (CM). See “Starting and Stopping the
BRM System” in BRM System Administrator's Guide. If necessary, restart Payment
Tool.
5. Verify that the pin_ach file was loaded successfully by using the Object Browser to
display the /config/ach object, or use the testnap utility with the robj command.
See “Reading an Object and Writing its Contents to a File” in BRM Developer's
Guide.
If a payment does not contain a payment channel ID, a value of 0 will be saved with
the payment by default, which configures it as Unspecified Payment Channel.
For more information on setting up merchants and automated clearing houses, see
"About BRM-Initiated Payment Processing".
Automatic Payments
This chapter explains how to configure Oracle Communications Billing and Revenue
Management (BRM) payment collection dates for automatic customer payments.
Before reading this chapter, read the following topics:
■ “About Billing” in BRM Configuring and Running Billing
■ About Payments
■ About BRM-Initiated Payment Processing
■ “About Accounts Receivable” in BRM Managing Accounts Receivable
Note:
■ The payment collection date of a bill (/bill object) is stored in the
/billinfo object with which the bill is associated.
■ To collect BRM-initiated payments for bills whose payment
collection date is on a day other than the days listed above, use the
pin_collect utility’s start and end parameters. See “Specifying
Start and End Times” in BRM Configuring and Running Billing.
For more information, see "About Collecting BRM-Initiated Payments" and "pin_
collect".
The Bill 1 payment collection date (September 5) is stored in the /billinfo object
associated with Bill 1.
On August 18, the Bill Now feature is used to bill the account:
■ Bill finalized = “Bill Now” (see Figure 5–2)
However, the Bill Now payment collection date (September 13) is not stored in the
/billinfo object. Instead, the earlier payment collection date (September 5) is applied to
both bills, as shown in Figure 5–3:
Note: If the Bill Now payment collection date were stored in the
/billinfo object on August 18, it would overwrite the Bill 1 payment
collection date, changing the date from September 5 to September 18.
This would postpone Bill 1’s payment collection for over a week.
For more information about Bill Now and on-demand billing, see “About Bill Now”
and “About On-demand Billing” in BRM Configuring and Running Billing.
For example, your system has a 14-day billing delay. Account A’s bill is due 21 days
after the end date of its monthly billing cycle. If you set a payment collection date that
is more than 7 days before the bill due date, the payment collection date will occur
before the bill is finalized. In such cases, BRM ignores the payment collection date and
collects the payment on the date the bill is finalized.
For information about delayed billing, see “Setting up Delayed Billing” in BRM
Configuring and Running Billing.
This chapter provides an overview of how payment fees are handled in your Oracle
Communications Billing and Revenue Management (BRM) system. It includes:
■ An overview of failed payments and payment fee processing.
■ Information on how to configure BRM for payment fees, create payment fee
products, and manually remove a payment fee from an account balance.
For information on customizing payment fees, see "Customizing Payment Fees".
For background information on payments, see "About Payments".
If you defined payment fees, the failed payment triggers the creation of a payment fee
event, and the rated amount is applied to the customer’s current account balance.
Failed payments can be posted to an account only when the account number is
available in BRM. If a failed payment is not posted, the associated fee cannot be
applied.
You create fees for failed payments by setting up pricing plans. The product in the
plan contains a rate that is mapped to the payment fee event. When you create a
payment fee product, any account that own the product will receive a payment fee if a
payment fails; you cannot exempt accounts from receiving payment fees. To cancel out
unwanted fees from an account’s balance, you set up account-level discounts for the
payment fee event. See "Defining Exemptions from Payment Fees".
BRM applies the balance impact of the payment fee event to the default balance group
of the bill unit.
Note: If you add your own reason codes to the reasons.locale file,
you should use IDs above 100,000.
To define reason codes for failed payments, you edit the reasons.en_US sample file in
the BRM_Home/sys/msgs/reasoncodes directory. You then use the load_localized_
strings utility to load the contents of the file into the /strings objects.
When you run the load_localized_strings utility, use this command:
load_localized_strings reasons.locale
Note:
■ If you are loading a localized version of this file, use the correct
file extension for your locale. For a list of file extensions, see
Locale names.
■ If a failed payment is loaded into BRM with an invalid reason
code, payment fees are not applied.
Note: You should be familiar with real-time rating before you begin.
For information on creating rates and pricing plans, see Pricing Center
Help and "About Real-time Rate Plans" in BRM Setting Up Pricing and
Rating.
Note: This defines payment fees for all customer accounts. To define
fees only for certain accounts, create a Subscription product and
purchase the product for the account.
2. Apply the product at the account level and define the purchase and ownership
information.
3. In the General Product Info tab, type 1 in Priority.
4. Under Event Map, click Add.
a. In the Event column, select Failed Payment Fee Event.
b. In the Measured By column, select Occurrence.
c. In the Rate Plan Structure column, select Rate Plan Selector.
Note:
■ To configure the rate plan according to additional payment fee
attributes, click ...+ in the next column and choose the field on
which to base the fees. Then enter the field values in each row.
■ A rate plan selector can only contain fields defined in the payment
fee event. For example, you can apply a payment fee based on a
customer segment, payment channel, or payment method, or a
combination of these attributes.
To exempt accounts from receiving fees, see "Defining Exemptions from Payment
Fees".
To define a threshold at which to suppress payment fees, see "Defining Thresholds for
Payment Fees".
an expired credit card. It calls PCM_OP_ACT_USAGE to create the payment fee event
to be rated.
PCM_OP_PYMT_APPLY_FEE is called by PCM_OP_PYMT_COLLECT.
The behavior of PCM_OP_PYMT_APPLY_FEE is determined by the PIN_FLD_
STATUS field passed in on the input flist. Payments are eligible to receive payment
fees if they have a PIN_FLD_STATUS value >= PIN_PYMT_FAILED and < PIN_
PYMT_STATUS_MAX. The numeric range for financially failed payments is 30-44.
For more information, see "About Payment Status".
The normal flow of PCM_OP_PYMT_APPLY_FEE is as follows:
1. Checks the input flist for the status of the payment and the reason ID that
describes why the payment failed.
2. Calls the PCM_OP_PYMT_POL_APPLY_FEE policy opcode to perform custom
checks before the failed payment fee is applied. See "Customizing Payment Fees".
When it returns the output flist, PCM_OP_PYMT_APPLY_FEE validates the
information, and creates the failed payment fee events for all failed payments
based on the information. The default value in the PIN_FLD_BOOLEAN field on
the output flist is 0, which specifies that the fee will be created.
3. If a payment fails, records the /event/billing/payment/payment_type event.
The PIN_FLD_EVENTS array of the output flist stores the POID of the failed payment
fee event or write off event, if one is created. The PIN_FLD_EVENTS array is
contained in the PIN_FLD_RESULTS array.
Flags are not used directly by PCM_OP_PYMT_APPLY_FEE. They are passed in from
PCM_OP_PYMT_COLLECT for PCM_OP_PYMT_SELECT_ITEMS. For example,
Payment Tool can set the PCM_BILLFLG_DEFER_ALLOCATION flag to indicate
which payments should be left unallocated.
The PIN_FLD_BOOLEAN value of False specifies that the fee event is not created.
When payments are posted, BRM uses the customer segment ID to determine if a
payment fee is charged.
You can also use the PIN_RESULT_PASS and PIN_RESULT_FAIL return values in
PCM_OP_PYMT_POL_APPLY_FEE to configure whether payment fees are applied.
This chapter provides an overview of how payment incentives are handled in your
Oracle Communications Billing and Revenue Management (BRM) system. It includes:
■ A summary of the payment incentive functionality.
■ An overview of how BRM processes payment incentives.
■ Information on how to enable BRM for payment incentives, create payment
incentive products, and manually reverse a payment incentive.
For information on customizing payment incentives, see "Customizing Payment
Incentives".
For background information on payments, see "About Payments".
Here, the payment incentive is applied to the current bill, but you can apply it to the
next bill instead.
■ If the payment incentive is a fee reduction, BRM subtracts the incentive amount
from the total currency amount.
■ If the payment incentive is a resource grant such as free minutes, BRM reduces or
increases the total resource amount by the incentive amount, depending on the
conventions you use for non-currency resources.
In either case, the payment incentive is applied to the default balance group of the bill
unit associated with the bill.
During real-time rating, BRM bases its calculations on either the current bill total or
the last bill total, depending on how your pricing expert defined the product.
In default implementations, payment incentives are granted after BRM processes all
billing time events including the application of taxes. Therefore, payment incentives
cannot be based on a pre-tax bill amount: only on the total after-tax amount. However,
you can customize the PCM_OP_PYMT_POL_GRANT_INCENTIVE policy opcode to
consider all the /bill items on a before tax basis.
Figure 7–2 shows how BRM processes payment incentives:
Payment incentives are granted only in the billing run for the account’s normal billing
cycle. BRM does not apply payment incentives for:
■ On-demand billing runs.
■ Bill-now billing runs.
If these types of billing runs occur during a billing cycle, BRM ignores any payment
incentives. Later, BRM applies the payment incentive during the next normal billing
run, provided there was an early payment within the normal billing cycle and the
account is eligible.
Caution: BRM uses the XML in this file to overwrite the existing
/config/business_params object for the ar instance. If you delete or
modify any other parameters in the file, these changes affect the
associated aspects of BRM’s billing configuration.
4. Use the following command to load the change into the /config/business_params
object:
pin_bus_params bus_params_AR.xml
Note: You should be familiar with real-time rating before you begin.
For detailed information on creating rates and pricing plans, see
Pricing Center Help and BRM Setting Up Pricing and Rating.
Note: A rate plan selector can only contain fields defined in the
payment incentive event. For example, you can apply a payment
incentive based on a customer segment, payment channel, or payment
method, or a combination of these attributes.
Note: This defines payment fees for all customer accounts. To define
fees only for certain accounts, create a Subscription product and
purchase the product for the account.
2. Apply the product at the account level and define the purchase and ownership
information.
3. In the General Product Info tab, type 1 in Priority.
4. Under Event Map, click Add.
a. In the Event column, select Payment Incentive Event.
b. In the Measured By column, select Current Bill Total.
c. In the Rate Plan Structure column, select Rate Plan Selector.
5. Set up a rate plan for the 15% total bill reduction.
a. Under Rate Plan Selector, type 15% Reduction as the name for the payment
incentive.
b. Click Edit Plans and click New.
c. Define the Plan Details and Rate Plan Structure.
d. Define the Quantity Discount Bracket for the new rate as Based on: Rate
Dependent.
e. In the Balance Impacts tab, select US Dollars [840] as the Resource ID and
type –0.15 in Scaled Amount. Because the value for Scaled Amount is
negative, this results in a 15% reduction. (A positive number would result in a
fee.)
f. Click OK.
6. Set up a second rate plan for the $10 total bill reduction plus the 30 free minutes.
This reduction is applied only if the total for the current bill is over $100.
a. Under Rate Plan Selector, type $10 Reduction + 30 Minutes as the name for
the payment incentive.
b. Click Edit Plans and click New.
c. Define the Plan Details and Rate Plan Structure.
d. Define the Quantity Discount Bracket for the new rate as Based on: Rate
Dependent.
e. In the Balance Impacts tab, deselect Minimum and type 100 in the associated
entry box.
f. Select US Dollars [840] as the Resource ID and type –10 in Fixed Amount.
g. Add a row to the balance impacts table that sets Free Domestic Minutes as the
Resource ID and enter 30 in Fixed Amount.
h. Click OK.
7. Set up the rate plan selector.
a. Click ...+ in the first column, select Event, choose PIN_FLD_
INCENTIVE.PIN_FLD_PAY_TYPE from the attributes list, and click OK.
b. Click ...+ in the next column, select Event, choose PIN_FLD_
INCENTIVE.PIN_FLD_CUSTOMER_SEGMENT from the attributes list, and
click OK.
c. Click + in the row column to create a row for each of the two payment
method/customer segment combinations. The system product does not
provide incentives to any customers who do not meet one of these two criteria.
d. For the first row, type 10003 to define credit card as the payment method and
Platinum Subscriber to define the customer segment. Select the 15%
Reduction rate plan.
e. For the second row, type 10011 to define cash as the payment method and
Silver Subscriber to define the customer segment. Select the $10 Reduction +
30 Minutes rate plan.
f. Click OK and Apply.
4. It sends the event to the rating opcodes to calculate the payment incentive for each
bill. BRM applies the balance impact of the payment incentive event to the default
balance group of the bill unit.
5. It clears the payment incentive trigger in the PIN_FLD_PAYMENT_EVENT_OBJ
field for the /billinfo objects of each affected bill, returning this field to a null
value.
Two other standard opcodes are used for payment incentives:
■ PCM_OP_PYMT_PROVISION_INCENTIVE triggers payment incentives. See
"How Payment Incentives Are Triggered".
■ PCM_OP_PYMT_REVERSE_INCENTIVE reverses payment incentives. See "How
Payment Incentives Are Reversed".
determining whether to apply the incentive and when calculating the payment
incentive.
■ Extend the /event/billing/incentive class by adding the PIN_FLD_SERVICE_OBJ
and PIN_FLD_CURRENCY fields. BRM then includes the service type and
currency in the event object each time it’s created. When you create columns in the
rate plan selector, you can select these two fields along with the default fields.
In addition to performing this type of customization, you can also customize the
PCM_OP_PYMT_POL_GRANT_INCENTIVE policy opcode to do the following:
■ Provide special types of incentives such as free gifts. In this case, you modify the
opcode so that it calls the opcodes that process and control product purchases, for
example, PCM_OP_SUBSCRIPTION_PURCHASE_DEAL. Then, you create a deal
that includes an item product that awards the free gift.
■ Develop an aggregation application to count the number of subscription services
for an account and customize PCM_OP_PYMT_POL_GRANT_INCENTIVE to
include this information in the enriched flist.
■ Customize which customer segment to use. You can also customize this opcode to
select a different customer segment from PIN_FLD_CUSTOMER_SEGMENT_
LIST. By default, PCM_OP_PYMT_POL_GRANT_INCENTIVE selects the first
customer segment from the PIN_FLD_CUSTOMER_SEGMENT_LIST it gets from
PCM_OP_PYMT_GRANT_INCENTIVE. The customer segment returned by
PCM_OP_PYMT_POL_GRANT_INCENTIVE is the one that BRM uses as a
filtering attribute during payment incentive calculation.
For more information, see "Using Event Notification" in BRM Developer's Guide.
In addition, you must customize your middleware and CRM applications to
process the notification correctly and issue appropriate messages to operations
personnel.
This chapter provides an overview of Payment Suspense Manager and how your
Oracle Communications Billing and Revenue Management (BRM) system handles
suspended payments. It includes:
■ A summary of the Payment Suspense Manager functionality.
■ An overview of how BRM determines the status of a payment and how it
suspends payments.
■ Information on how to set up BRM for Payment Suspense Manager.
suspend payments that were incorrectly posted to customer accounts and to correct
suspended payments.
How you work with these applications depends on whether you receive the payment
as a batch file from the bank or use a payment gateway that has been directly
integrated with BRM payment services.
For details on the payment suspense process, see "About the Payment Suspension
Process". For more information on how to work with Payment Tool and the payment
gateway in relation to Payment Suspense Manager, see "About Payment Suspense
Manager and Client Applications".
The reason codes and action owner codes provide information on why a payment
is suspended and who is assigned to correct the problem. To help payment clerks
understand the nature of a suspended payment, BRM displays descriptions
associated with reason codes and action owner codes in Payment Tool and
Payment Center. In addition, BRM uses reason codes and action owner codes to
populate selection lists in these tools.
Note: You can also create additional search fields in Payment Center
and additional batch types in Payment Tool. For information on
modifying payment options in these tools, see BRM Developer's Guide.
For more information, see "Working with Suspense Reason Codes and Action
Owner Codes"
■ Define any custom suspense rules.
BRM validates a payment by determining whether the payment has certain
mandatory information such as the correct account number and bill number. You
can customize BRM such that it considers extra validation criteria like the
customer segment. You can also define the conditions under which you submit a
suspended payment to the payment suspense account (for example, a minimum
payment amount).
For more information, see "About Customizing Payment Suspense Manager".
incorrect account number. The payment information indicates that one check
has cleared and the other bounced.
Coming into BRM, the first payment would be considered successful and the
second, failed. When BRM validates the payments, both would be marked for
suspense because, regardless of the financial success or failure of the payment,
neither payment can be posted to the correct account.
■ If the payment does not meet the validation criteria and also does not qualify
for suspense, BRM informs you that the payment cannot be posted. You must
create an exception batch to handle payments that fall into this category.
Payment validation is initiated automatically through the payment gateway or
manually by a payment clerk.
For details on payment validation, see "About Payment Validation".
2. Suspension: BRM moves the payment to the payment suspense account and
creates the associated events and items to store information on the suspended
payment.
There are two distinct situations in which payment suspense can occur: during
payment processing, when a payment batch is submitted to the BRM database,
and during account maintenance, after payments have been saved to the BRM
database.
■ During payment processing, payment suspense is initiated automatically
through a third-party payment gateway or manually by using Payment Tool.
It is initiated in Payment Tool when you submit a payment batch that includes
payments marked for suspense. Such payments can be successful payments
that you manually mark for suspense because you suspect they have a
problem or you know they require manual allocation. For details on
suspending unposted payments, see "About Processing Suspended Payments
in a Payment Batch".
■ During account maintenance, payment suspense is initiated manually by
using Payment Center. Payment suspense is initiated when you undo the
allocation of a payment from a customer account. For details on suspending
posted payments, see "About Processing Suspended Payments in the BRM
Database".
3. Correction: To correct a suspended payment, you use Payment Center to assign it
to a correct account number or bill number and apply it to the customer account.
You can also create a distribution list for a suspended payment, which enables you
to apply the payment to multiple accounts.
After payment analysts correct suspended payments and assign them to one or
more accounts, the payments must be validated again. If the payment validation is
successful, BRM posts the payments to the correct accounts. If the suspended
payment is allocated completely (an amount does not remain in suspense), BRM
reverses the suspended payment, removing it from the payment suspense account.
While performing this operation, BRM creates the required objects and events.
For more information about payment status, see "About Payment Status".
For information on the suspense validation opcodes, see "Payment FM Standard
Opcodes" and "Payment FM Policy Opcodes" in BRM Developer's Reference.
Whether you use Payment Tool or a payment gateway, BRM calls the PCM_OP_
PYMT_POL_SUSPEND_PAYMENT policy opcode to process any payment submitted
with the status PIN_PYMT_SUSPENSE. The opcode places a payment in suspense by
enriching the flist so that the payment can be directed to the payment suspense
account. It then calls the opcodes that post the payment to this account and create
objects to record the suspended payment. The event object contains all information
about the payment and its suspense, including the account number, bill number,
transaction ID, and any associated reason codes or action owner codes. This
information can be used to investigate why the payment failed the validation process
and who is responsible for resolving the problem.
Note: If you do not want to undo the allocation and reallocate the
suspended payment to the same account, you can directly transfer the
correct amount to the correct item, bill, or account by performing an
adjustment. See "Transferring Amounts between Items" in BRM
Managing Accounts Receivable.
If you are resuspending a payment that was distributed to multiple accounts, you can
resuspend any number of the distributed payments simultaneously.
You use Payment Center to suspend payments that were posted to customer accounts.
For more information, see Payment Center Help.
You use Customer Center to perform adjustments, if necessary. For more information,
see Customer Center Help.
In the example shown in Figure 8–2, a $3,000 suspended payment is portioned into
three distributed payments of $1000, $450, and $650, each of which is posted to a
different customer account:
You can specify only one payment allocation level for each target account in the
distribution list. For example, a payment analyst cannot choose to apply a payment to
Account A and then try to allocate it to specific bills in Account A. Likewise, if a
payment analyst chooses bill-level allocation for Account B, he or she cannot later
apply that payment at the account level for Account B.
You use Payment Center to process distributed payments. The procedure involves:
1. Opening a suspended payment that requires distribution.
2. Creating a payment distribution list and identifying the customer account, bills, or
items to which each distributed payment belongs.
3. Submitting the payment distribution list to BRM.
If you discover that one or more distributed payments were allocated incorrectly, you
can return them to suspense and redistribute them at any time.
For more information about Payment Center and distributed payments, see
"Managing Suspended Payments".
payment is removed from the source account and moved to the target account,
resulting in a complete reversal of the payment in the source account so that the
payment information can be transferred to the destination account as a recycled
payment. If the payment being recycled had been posted in a customer account,
any bills and items that were closed due to the payment are reopened.
Indirect reversals are assigned a G/L ID of 113, placing the payment amount in a
special G/L bucket so that you can keep a separate record of these reversals. For
more information on G/L IDs and reversals, see "Working with Suspense Reason
Codes and Action Owner Codes".
For more information about reversals due to recycling, see "Understanding
Payment Recycling".
■ Reversals that occur when you remove a payment as unallocatable
If a suspended payment cannot be fixed but you want to track revenue for these
payments and get reports on how much unallocatable revenue you have, you can
remove them from suspense as unallocatable. When you do this, BRM reverses the
payment in the payment suspense account and assigns it to a special G/L ID
bucket. These reversals are rare in BRM. Even though they are part of suspense,
they occur outside of the recycling process.
For more information about removing payments as unallocatable, see "About
Removing Unallocatable Payments from Suspense".
■ Reversals that you perform directly by using Payment Tool or a third-party
application
Direct reversals occur when you use Payment Tool or a third-party application to
reverse a payment that was recorded in the BRM database but never actually
deposited. Direct reversals are the most frequent type of reversal in BRM, and they
occur outside of the suspense and recycling processes.
Direct reversals reverse an active payment completely and reopen any bills and
items so the payment can be made again. Unlike reversals that occur during
recycling, direct reversals are not initiated by the creation of a new recycled
payment.
For more information about direct reversals, see "About Directly Reversing
Payments from BRM".
In addition to having a transaction ID, payments and reversals have another ID that is
used to track all actions performed on a specific payment: a subtransaction ID (SUB_
TRANS_ID field) for payments, and a paytransaction ID (PAYMENT_TRANS_ID field)
for reversals. These ID values are used to find all payments and reversals that occur
due to the recycling of an original payment.
■ The SUB_TRANS_ID value of an original (never-recycled) payment is NULL.
■ The SUB_TRANS_ID value of a recycled payment is equal to the transaction ID of
its original payment.
■ The PAYMENT_TRANS_ID value of a payment reversal is equal to the transaction
ID of the payment it reversed.
In the example shown in Figure 8–4, a $3000 payment is suspended when it first
arrives in BRM so that it can be posted to individual accounts within the corporation.
The original payment is represented in white.
The payment analyst first partially distributes the original suspended payment to two
accounts. The first distributed payment is for $1000 to Account A and the second is for
$700 to Account B. The remaining $1300 is resuspended. The results of this operation
are represented in Phase 1.
Later, the payment analyst realizes that the distributed payment made to Account B
was erroneous and puts the $700 payment back into suspense, leaving $1000 in
Account A and $2000 in the suspense account. The results of this operation are
represented in Phase 2.
In this figure, all payments except the original payment are recycled payments. Notice
that:
■ Both distributed payments have the same subtransaction IDs (s1). The SUB_
TRANS_ID value is the same as the TRANS_ID value of the original payment.
■ All of the recycled payments have SUB_TRANS_ID values that match the original
payment’s TRANS_ID values.
■ Each reversal has a PAYMENT_TRANS_ID value that is equal to the TRANS_ID
value of the payment it reversed.
When an original suspended payment is applied to a customer account, the following
operations occur:
1. The suspended payment is reversed, and an /event/billing/reversal object is
created. The reversal object’s PAYMENT_TRANS_ID value is equal to the TRANS_
ID value of the suspended payment.
2. A new payment (event/billing/payment/pay_type object) is applied to the
customer account and contains the following information:
■ The original suspended payment’s details, including a value for any amount
remaining in suspense.
revenue. To track revenue and report for these payments, you can remove them from
the payment suspense account as unallocatable.
You use Payment Center to remove unallocatable payments from suspense. BRM
assigns a G/L ID of 112 for the reversal, placing the payment amount in a special G/L
bucket so that you can obtain information about how much unallocatable revenue you
have. This amount was a credit that your company could not recognize toward a debit
on any account. It is removed from the system and tracked for accounting purposes.
You can remove an original or recycled payment from suspense as unallocatable.
Removing unallocatable payments from suspense does not generate any recycled
payments.
In some cases, you may must partially distribute a suspended payment and remove
the remaining suspended amount as unallocatable. If you then resuspend one of the
distributed payments, BRM creates a new suspended payment for the distributed
payment's amount, and you can later remove this new amount as unallocatable if
necessary.
■ Through Payment Center when payment analysts work with payment batches that
contain suspended payments or after payments have been posted in customer
accounts.
There are two BRM client applications that are used in the payment suspense process:
Payment Tool and Payment Center. Payment Tool is used to determine whether any
payments should be suspended and Payment Center is used to investigate and correct
suspended payments. Depending on how you initiate the payment suspense process,
you use one or both of these applications.
■ If a payment clerk loads payment batches into BRM, you use a combination of
Payment Tool and Payment Center.
■ If the payment gateway loads payment batches into BRM, you use only Payment
Center.
■ If payments are already posted to customer accounts, you use only Payment
Center.
How you use these client applications differs depending on how the payment process
is initiated.
Figure 8–6 shows how the payment suspense process works when you use Payment
Tool to load payments:
When you receive externally initiated payment batches, you perform all validation
and suspense tasks by using Payment Tool and all correction tasks by using Payment
Center.
Use Payment Tool for the following tasks:
■ Validate a batch of payments.
■ Manually suspend a payment that passed validation but requires special handling.
Or, change the status of a manually suspended payment back to validated.
■ Submit validated payments to BRM.
Use Payment Center for the following tasks:
■ Investigate and correct suspended payments.
■ Apply corrected payments to the appropriate account.
■ Remove a payment from suspense if you cannot correct it within a reasonable
time.
Typically, when you use Payment Tool to process a batch of payments, you import the
batch and validate the payments. The results of validation show the status of payment,
indicating whether the payment was successful or suspended.
You can then do one of three things:
■ Submit the batch to BRM, which posts all successful payments to the correct
accounts and posts any suspended payments to the payment suspense account. In
this case, you would later open Payment Center to investigate and correct the
suspended payments and resubmit the corrected payments to BRM.
■ Correct the suspended payments before submitting the batch. In this case, you
would immediately launch Payment Center from Payment Tool and correct the
payments. Then, you must return to Payment Tool to revalidate the payments and
submit the payment batch to BRM.
■ Save the payment batch as a PMT file for later processing. In this case, you would
open the PMT file in Payment Tool and begin the validation process again.
When you use automated payment processing, like that provided by a payment
gateway, there is no need for payment personnel to handle a payment batch, validate
payments, or submit payments to BRM. These steps are all performed automatically
by the payment gateway working in concert with BRM.
Figure 8–7 shows how the payment suspense process works if you use a payment
gateway to process payments.
In this case, the payment gateway directs BRM to perform the validation and suspense
tasks you would otherwise perform by using Payment Tool. After BRM determines
payment status, it submits the payments to the BRM database and moves any
suspended payments to the payment suspense account. Then you use Payment Center
to review the contents of the payment suspense account, investigate the suspended
payments, correct any problems, and submit the corrected payments to BRM.
When you suspend payments that were successfully submitted to customer accounts,
you use Payment Center to undo the allocation of the payments in the customer
accounts and save them to the payment suspense account. You can then investigate the
suspended payments, correct any problems, and resubmit them to the correct
accounts.
For detailed information on Payment Tool, see Payment Tool Help. For information on
Payment Center, see Payment Center Help.
General Guidelines
The following guidelines and restrictions apply to suspended payment processing.
■ Only externally initiated payments can be suspended and managed by using
Payment Center.
■ The currency of a recycled payment must match the currency of its original
payment.
■ Payments can be recycled any number of times, but a recycled payment can have
only one original payment.
■ You cannot change the properties of a payment after it has been directly reversed,
removed as unallocatable, or recycled completely.
■ You cannot directly reverse a suspended payment if any portion of the payment
has been removed from suspense as unallocatable.
■ You cannot distribute failed payments. These payments are stored in BRM as
/event/billing/payment/failed objects and have a status of PIN_PYMT_FAILED.
They are created to handle unconfirmed payment processing. For more
information, see "Handling Failed Unconfirmed Payments".
■ To directly reverse a payment outside of the recycling process, you must reverse
the original payment. If you reverse a suspended payment that was applied to one
or more customer accounts, all posted payments will be reversed before the
suspended payment is reversed.
Caution: BRM uses the XML in this file to overwrite the existing
/config/business_params object for the ar instance. If you delete or
modify any other parameters in the file, these changes affect the
associated aspects of BRM’s billing configuration.
4. Use the following command to load the change into the /config/business_params
object:
pin_bus_params bus_params_AR.xml
See "Using testnap" in BRM Developer's Guide for general instructions on using
testnap. See "Reading Objects by Using Object Browser" in BRM Developer's Guide
for Information on how to use Object Browser.
6. Stop and restart the Connection Manager (CM). For more information, see
"Starting and Stopping the BRM System" in BRM System Administrator's Guide.
7. (Multischema systems only) Run the pin_multidb script with the -R CONFIG
parameter. For more information, see "pin_multidb" in the BRM System
Administrator's Guide.
Important: The CSR plan you select must comply with these rules:
■ The admin_client service should have been used when setting up
the plan.
■ There can be absolutely no deals or charges attached to the plan.
or that a payment must be removed from suspense because it could not be allocated in
a reasonable amount of time. An action owner code could indicate that Sally Brown is
responsible for investigating the suspended payment.
Reason codes and action owner codes are used in various ways by the different tools
you use to process payments:
■ Payment Tool: Provides reason lists that payment personnel can choose from as
they suspend a payment.
■ Payment Center: Provides action owner lists that payment personnel can choose
from when assigning a person to correct a payment or use as a criteria when
searching for a suspended payment. It also provides reason lists that payment
personnel choose from when correcting a payment, suspending a payment, or
removing an unallocatable payment from the system.
■ Payment Gateway: Automatically assigns reasons to payments processed through
a payment gateway provided you implement a preprocessing application to map
reason codes in the payment file to reason codes you have created in BRM.
To ensure that BRM can assign the full range of reason codes and action owner codes
suitable for your business needs, you customize BRM by:
■ Creating and loading a reasons.locale file that lists each reason code and action
owner code.
■ Associating each reason code and action owner code with the appropriate
Payment Suspense Manager reason code domain.
Note: You should not assign G/L IDs for action owner codes, and
there is no need to assign G/L IDs for the reason codes for suspended
payments.
For more information on the reasons.locale file and assigning G/L IDs, see "Assigning
G/L IDs to Nonrated Events" in BRM Collecting General Ledger Data.
Note: If you are loading a localized version of this file, use the
correct file extension for your locale. For a list of file extensions, see
"Locale Names" in BRM Developer's Guide.
Note: If you skip this step, some Payment Center functions may not
work correctly.
For detailed instructions on how to set permissions, see Permissioning Center Help.
When a payment is recycled from suspense to a customer account, the input flist
generated for the submission includes the corrected account number, corrected bill
number, and the transaction ID of the original payment. It can also contain other
corrected information if you customized BRM to include additional validation criteria.
5. Prepares the reversal batch, creating new elements and setting a new reason code.
As input, this opcode receives the transaction ID of the payment it is to search for. It
also receives an optional PIN_FLD_RESULTS array, which, with the PCM_OP_FLAG_
READ_RESULT flag, determines the type of information returned by the opcode.
PCM_OP_PYMT_RECYCLED_PAYMENTS_SEARCH performs the following
operations when searching for payments:
1. Verifies that the transaction ID in the PIN_FLD_TRANS_ID field is for an original
suspended payment. To do this, the opcode checks the PIN_FLD_SUB_TRANS_ID
field. If this field is not NULL, the payment is not an original payment, and the
opcode returns an error.
2. Searches for all payments whose subtransaction ID matches the PIN_FLD_
TRANS_ID field of the payment in the input flist.
3. Checks to see whether the PIN_FLD_RESULTS array in the input flist and the
PCM_OP_FLAG_READ_RESULT flag are present. The opcode returns payment
information based on these presence of the flag and array, as follows:
■ If neither the flag nor the array is present, the opcode returns only the fields in
the output flist.
■ If the flag is present, the opcode returns all the fields in the
/event/billing/payment object.
■ If the flag is not present but the array is, the opcode returns the fields in
specified in the PIN_FLD_RESULTS array plus the payment information fields
normally included in the output flist.
■ If the both the flag and array are present, the opcode ignores the array and
returns all the fields in the /event/billing/payment object.
PCM_OP_PYMT_RECYCLED_PAYMENTS_SEARCH does not retrieve payment states
for payments that have been reversed and are no longer active. If the search results are
NULL, PCM_OP_PYMT_RECYCLED_PAYMENTS_SEARCH searches for reversal
events related to a suspended payment. If a reversal event is found, the suspended
record is filtered and not returned.
If neither the bill number nor bill POID was submitted with the payment, you can
configure BRM to find the bill based on the due amount. See "Finding Bills by Due
Amount".
suspiciously large payments (for example, $10,000). If this is a cash payment and
the payment amount exceeds the threshold, have the opcode set PIN_FLD_
STATUS to PIN_PYMT_SUSPENSE.
Note:
■ When an /event/billing object is created for a suspended
payment, it stores the original reason code associated with a failed
payment that has been flagged for suspense. This ensures that the
reason initially associated with the failed payment is not lost if
BRM places the payment in suspense.
■ When the /event/billing/payment object is created, it stores the
original account number provided for the payment being
suspended, the original bill number, and the original transaction
ID.
4. Passes the POID of the successful unconfirmed payment in the output flist to
PCM_OP_BILL_REVERSE_PAYMENT so it can be reversed.
The output flist sends the array of reversal events and tax events (if created) that were
passed in by the PCM_OP_AR_WRITEOFF_REVERSAL opcode.
Write-off Reversal Phase
In this phase, PCM_OP_PYMT_VALIDATE_PAYMENT considers only payments
whose status is marked as successful: those whose PIN_FLD_STATUS value is in the
successful range. The opcode determines which of these payments is for an account,
bill, or bill item that has been written off. It performs the following operations:
■ Checks the /config/business_params object to determine if automatic write-off
reversal functionality for payment processing is enabled.
■ If this is enabled, checks the /profile/writeoff object to verify that the write-off flag
is set for the account.
■ If both checks are successful, sets the PIN_FLD_STATUS field in the output flist to
PIN_PYMT_WRITEOFF_SUCCESS.
Note: Before you begin, you should be familiar with the rules for
modifying the Payment Tool configuration object. See "Rules for
Modifying Payment and Reversal Fields".
You can add a cash reversal batch to Payment Tool to handle any cash payments that
were posted incorrectly and must be reversed from your BRM system. For example, if
the currency a customer used to make a payment was later found to be counterfeit,
you can remove the payment. This restores the customer’s previous account balance
and removes the payment from your company’s G/L system.
The /event/billing/reversal/cash storable class exists in the BRM database; therefore,
there is no need to create one. You only need to add the cash reversal entry to the
/config/paymenttool object.
1. Use the PCM_OP_WRITE_FLDS opcode to add the cash reversal entry to the
/config/paymenttool class. Call the opcode using flag 32. For example:
0 PIN_FLD_POID POID [0] 0.0.0.1 /config/paymenttool 13748 0
0 PIN_FLD_ACCOUNT_OBJ POID [0] 0.0.0.1 /account 1 0
0 PIN_FLD_DESCR STR [0] "US_EN paymentTool pymnt type configuration
locale"
0 PIN_FLD_HOSTNAME STR [0] "-"
0 PIN_FLD_NAME STR [0] "PaymentTool payment Types: Default"
0 PIN_FLD_PROGRAM_NAME STR [0] "-"
0 PIN_FLD_VALUE STR [0] ""
0 PIN_FLD_VERSION STR [0] ""
0 PIN_FLD_PAY_TYPE ARRAY [10011] allocated 2, used 2
1 PIN_FLD_NAME STR [0] "Cash"
1 PIN_FLD_PAYMENTTOOL_FIELDS ARRAY [0] allocated 4, used 4
2 PIN_FLD_BATCH_TYPE INT [0] 1
2 PIN_FLD_COLUMN_NAME STR [0] "Receipt Date"
2 PIN_FLD_FIELD_NAME STR [0] "PIN_FLD_EFFECTIVE_T"
2 PIN_FLD_PURPOSE INT [0] 0
1 PIN_FLD_PAYMENTTOOL_FIELDS ARRAY [1] allocated 4, used 4
2 PIN_FLD_BATCH_TYPE INT [0] 1
2 PIN_FLD_COLUMN_NAME STR [0] "Receipt No."
2 PIN_FLD_FIELD_NAME STR [0] "PIN_FLD_RECEIPT_NO"
2 PIN_FLD_PURPOSE INT [0] 0
Note:
■ The PIN_FLD_BATCH_TYPE value determines the batch type: 0
indicates a payment batch and 1 indicates a reversal batch. In this
example, PIN_FLD_BATCH_TYPE is set to 1 for reversal.
■ The PIN_FLD_PURPOSE value determines the field type: 0
indicates the field is read-only and 1 indicates that data can be
entered into the field. In this example, the Receipt Date and
Receipt No. columns in the reversal batch are read-only. For more
information on entry values, see "Creating an Object Definition for
a New Payment or Reversal Event".
2. Stop and restart the CM. See "Starting and Stopping the BRM System" in BRM
System Administrator's Guide.
All changes you make in /config/paymenttool are reflected in the Payment Tool UI
when you restart BRM.
2. In the directory where Storable Class Editor created the Java source files, compile
the source files:
javac -d . *.java
3. Package the new class files into a JAR file. For example:
jar cvf customfields.jar *.class
4. Copy the contents of the InfranetPropertiesAdditions.properties file and paste it
into the Payment Suspense Center Infranet.properties file. By default, this file is
located in:
C:\Program Files\Portal Software\PymtSuspCenter\PaymentCenter
5. Append the location of the JAR file to the PAYCTRCP environment variable path.
For example:
;.;C:\Program Files\Portal Software\PymtSuspCenter\customfields.jar;
This chapter describes how to implement the Oracle Communications Billing and
Revenue Management (BRM) top-up features.
Before reading this chapter, you should be familiar with the following topics:
■ "About Managing Customers" in BRM Concepts
■ "About Accounts Receivable" in BRM Managing Accounts Receivable
Automatic standard top-ups are initiated by BRM, not by a CSR or a customer. They
occur when an account balance falls below a specified threshold amount. When
BRM rates a usage event and updates the account balance, it checks whether the
balance dropped below the threshold. If it did, BRM automatically tops up the
balance. For example, whenever a customer’s balance falls below $20, BRM can
charge her credit card $50 and credit the balance with that amount.
To receive automatic standard top-ups, an account must have one or more services
that are configured for top-ups. In addition, an automatic standard top-up
payment method, amount, and cap must be set for the account. For more
information, see "Implementing Automatic Standard Top-Ups".
Note: Vouchers can be used for manual standard top-ups only. They
cannot be used for automatic standard top-ups because a voucher ID
and PIN must be manually entered when a voucher top-up is
performed.
Only member accounts whose member status is active can receive sponsored top-ups.
For more information about member status, see these topics:
■ Setting an Account’s Sponsored Top-Up Member Status and PIN
■ Canceling Top-Ups
■ For credit card top ups, pass the following information in the PIN_FLD_TOPUP_
INFO array:
– Bill unit to top up
– Balance group to top up
– Credit card number
– Credit card expiration date
– Credit card owner’s name and address information.
■ For direct debit top ups, pass the following information in the PIN_FLD_TOPUP_
INFO array:
– Bill unit to top up
– Balance group to top up
– Bank routing number
– Bank account number
– Direct debit owner’s name and address information.
For more information, see "How PCM_OP_PYMT_TOPUP Handles Manual Standard
Top-Ups".
For more information, see "How BRM Sets Up Top-Up Information for an Account".
■ Group owner
To specify the sponsored top-up group owner account, set the POID of the
owner account in the PIN_FLD_PARENT field in the PIN_FLD_GROUP_
TOPUP_INFO array of the called opcode’s input flist.
■ Paying balance group
To specify the owner account’s balance group to transfer top-up resources
from, set the POID of the balance group in the PIN_FLD_BAL_GRP_OBJ field
in the PIN_FLD_GROUP_TOPUP_INFO array of the called opcode’s input
flist.
■ Resources to top up
To specify the resources to be topped up in the member account, set the IDs of
the appropriate currency and non-currency resources in the PIN_FLD_
RESOURCE_ID fields in the PIN_FLD_GROUP_TOPUP_LIMITS array of the
called opcode’s input flist.
■ Resource top-up cap
To specify the maximum amount of a resource that the owner can transfer to
its members during the owner’s accounting cycle, set the appropriate value in
the resource’s PIN_FLD_TOPUP_CAP field in the PIN_FLD_GROUP_
TOPUP_LIMITS array.
Important: This cap applies to the sum of all top-ups in the group,
not to an individual member’s top-ups. The cap should not exceed the
credit limit of the paying balance group. See "About Sponsored
Top-Up Credit Limits".
For more information, see "How BRM Sets Up Top-Up Information for an Account".
For more information, see "How BRM Sets Up Top-Up Information for an Account".
■ Modify both objects (/topup and /group/topup) for sponsored top-ups. This
occurs when the following information is passed to PCM_OP_CUST_POL_PREP_
TOPUP:
– A /topup object POID
– A /group/topup POID
■ If the information does not include the POID of an existing /group/topup object,
the opcode modifies the automatic standard top-up information in a standalone
/topup object.
■ If the information includes the POID of an existing /group/topup object, the opcode
modifies the sponsored top-up information in the /group/topup and /topup
objects.
If successful, the PCM_OP_CUST_MODIFY_TOPUP output flist contains the
following:
■ PIN_FLD_POID set to the POID of the /topup object modified
If unsuccessful, the PCM_OP_CUST_MODIFY_TOPUP output flist contains the
following:
■ PIN_FLD_FIELD_NUM set to the field that failed
■ PIN_FLD_TYPE set to the type of field that failed
■ PIN_FLD_RESULT set to the validation error code
Note:
■ By default, top-up PINs do not have to be unique. Members in the
same group and in different groups can have the same top-up
PIN.
■ To enable members to set their own PINs, customize the PCM_
OP_CUST_POL_PREP_TOPUP policy opcode.
flist to determine whether the prospective member account can be added to an existing
group:
■ The group owner account POID (PIN_FLD_PARENT)
■ The name of the group (PIN_FLD_NAME)
Note: Each group owned by the same account must have a unique
name. Groups owned by different accounts can have the same name.
If a group name is not provided, the policy opcode searches for a group by owner
account POID and the ID of the resource or resources that you want to top-up in the
member account (PIN_FLD_RESOURCE_ID in the LIMITS array). The search has the
following results:
■ If the policy opcode finds the group by name but a resource is specified in the
input flist that the group does not support, the following occurs:
– If the group owner account initiated the transaction, the resource is added to
the group.
– If the member account initiated the transaction, an error is returned.
■ If the policy opcode finds the group by resource and the search returns multiple
groups, the groups are listed alphabetically by PIN_FLD_NAME value and the
member is added to the group at the top of the list.
■ If the policy opcode fails to find a group by name or by resource, the following
occurs:
– If the group owner account has a group named default, the member is added
to that group.
– If the group owner account does not have a group named default, such a
group is created based on the information in the input flist. (Each group owner
can have only one sponsored top-up group named default.)
The following definitions for these new reason codes and domain IDs have been
added to the pin_pymt.h file in the BRM_Home/include directory:
■ Sponsored top-up reason code definitions
#define PIN_REASON_ID_TOPUP_CREDIT 5
#define PIN_REASON_ID_TOPUP_DEBIT 4
The new reason codes and domain IDs are used by the following opcodes:
■ PCM_OP_PYMT_TOPUP
■ PCM_OP_BILL_TRANSFER_BALANCE
■ PCM_OP_AR_ACCOUNT_ADJUSTMENT
Note: If you load a localized version of this file, use the correct file
extension for your locale. For a list of file extensions, see "Locale
Names" in BRM Developer's Guide.
For more information about loading the reasons.locale file, see "Loading Localized or
Customized Strings" in BRM Developer's Guide.
For information about creating new strings for this file, see "Creating New Strings and
Customizing Existing Strings" in BRM Developer's Guide.
Triggering PCM_OP_PYMT_TOPUP
PCM_OP_PYMT_TOPUP is triggered as follows:
■ Manual top-ups: When a customer or CSR uses a client application to top up a
balance in an account (a manual top-up), the opcode is called by the client
application.
– To use Customer Center or Self-Care Manager to top up accounts, see
"Topping Up Accounts in Customer Center and Self-Care Manager".
– To use a custom client application to top up accounts, see "Implementing
Top-Ups in Custom Client Applications".
■ Automatic standard top-ups: When a balance in an account configured for
automatic standard top-ups falls below a specified threshold, PCM_OP_PYMT_
TOPUP is called by the PCM_OP_ACT_POL_EVENT_NOTIFY policy opcode.
■ Passes the reason ID and the reason domain ID used to differentiate sponsored
top-up adjustments from other types of adjustments to PCM_OP_BILL_
TRANSFER_BALANCE, which passes them to PCM_OP_AR_ACCOUNT_
ADJUSTMENT. See "About Tracking Sponsored Top-Up Adjustments".
■ Updates the sum of all sponsored top-ups credited to members of the group
during the group owner account’s current accounting cycle. This value is
stored in the PIN_FLD_CYCLE_TOPPED_AMT field of the LIMITS array in
the /group/topup object.
If the last sponsored top-up occurred in the owner account’s current
accounting cycle, PCM_OP_PYMT_TOPUP adds the amount of the current
top-up to the value already in this field.
If the last sponsored top-up occurred in the owner account’s previous
accounting cycle, the opcode sets this field to the amount of the current
top-up.
4. Applies any top-up discount incentives to the account by calling the PCM_OP_
PYMT_POL_PURCHASE_DEAL policy opcode. See "Offering Discount Incentives
with Top-Ups".
Note: This field stores the POID of the account that initiates the
search. If a POID type rather than an actual POID is provided, an
actual balance group POID must be set in the flist’s PIN_FLD_BAL_
GRP_OBJ field.
– PIN_FLD_REASON_ID
– PIN_FLD_REASON_DOMAIN_ID
Note: If you create custom reason and reason domain IDs for
sponsored top-up events, PCM_OP_PYMT_FIND_TOPUP_EVENTS
returns events associated with all the IDs unless you limit the search to
specified IDs.
Canceling Top-Ups
To cancel top-ups, see the following topics:
■ Canceling Sponsored Top-Ups
■ Deleting Accounts That Are Sponsored Top-Up Owners or Members
Note: This changes only the member’s group status. It does not
change the member’s account status.
sponsored top-up group member status is set to closed. To change the status of an
account, see "Changing Account and Service Status" in BRM Managing Customers.
– PIN_FLD_GROUP_OBJ
– PIN_FLD_GROUP_INDEX
This chapter describes how to handle payments that are not tailored to your normal
payment processing.
For more information on payments, see the following documents:
■ About Payments
■ About BRM-Initiated Payment Processing
1. The Connection Manager (CM) collects the balances due on accounts and sends
the charges to the Data Manager (DM) for processing.
/event/billing/charge/pay_type events are recorded in BRM.
2. The Data Manager (DM) processes the charges and sends them to the ACH.
3. Before charges are confirmed by the ACH, the DM automatically sends them back
to the CM as successful payments.
/event/billing/payment/pay_type events are recorded in BRM.
4. The ACH returns any failed unconfirmed payments in a failed payment file. The
failed payment records must include the transaction ID, payment failure reason
code, and result.
5. The failed payment file is loaded into Payment Tool or a third-party payment
application.
6. The transaction ID, reason code, and result are validated, the failed payments are
recorded, and the unconfirmed successful payments are reversed.
When a unconfirmed payment fails, the failed payment is recorded in BRM with a
balance impact of 0, and the successful payment amount is re-applied to the account
balance.
To charge fees for failed unconfirmed payments, see "Configuring Payment Fees".
If the payment processor is not able to send a transaction ID with each payment, or if
the transaction ID is not a reliable means of identifying a payment, you can configure
PCM_OP_PYMT_POL_VALIDATE_PAYMENT to find the original unconfirmed
payment by using other payment properties. For example, you can use a combination
of the payment amount, account number, and invoice number.
When the payment is received, BRM compares these values in the failed payment with
those of the original unconfirmed payment, and if the values match, it will reverse the
unconfirmed payment and post the failed payment.
This chapter describes how to use Oracle Communications Billing and Revenue
Management (BRM) to handle externally initiated payments, such as check or cash
payments.
For information about handling BRM-initiated payments, see "About BRM-Initiated
Payment Processing".
■ Postal order
■ Inter-bank transfer
To add more payment methods, see "Rules for Modifying Payment and Reversal
Fields".
1. After each entry is complete, Payment Tool displays the updated batch total in the
Calculated Total field. When you finish entering all the data in a batch, compare
the entry in the Calculated Total field with the entry in the Specified Total box. If
you expect the entries to match and they do not, check the values in the Payment
Amount column.
For information about Payment Suspense Manager, see "About Payment Suspense
Manager". For information about handling suspended payments, see Payment
Tool Help.
2. When all the payments are recorded, click Validate to validate the batch of
payments. If you entered a projected total when you created the batch and the
calculated total of the payments in the batch does not equal the projected total,
Payment Tool asks whether you want to continue. You can change the payment
amounts before submitting the batch.
If a customer paid too much or too little, an entry might not be validated
(depending on your BRM configuration). You can create a batch that includes only
payments that are not valid. You can use that batch to process the payments that
are not valid, usually by allocating payments. See "About Allocating Payments".
3. When all payments are validated, submit the batch to BRM.
For information about manually suspending payments, see Payment Tool Help.
Note: If your BRM system contains brands, you can see only the
brands that you have permission to access. Before you can process
payments, you must select a brand to work in.
You can override the default distribution by manually allocating the payment.
After manual allocation of payment, revalidate the payment. For more
information on how to manually allocate payment to multiple bill units, see
Payment Tool Help.
3. After distributing the payment, Payment Tool calls the PCM_OP_PYMT_
COLLECT opcode. For more information on how PCM_OP_PYMT_COLLECT
allocates the payment to multiple bill units, see "Allocating Account-Level
Payments to Multiple Bill Units".
Note: For manually allocated payments, the input flist contains the
status as PIN_SELECT_STATUS_MBI_DISTRIBUTED. PCM_OP_
PYMT_VALIDATE_PAYMENT is already called from Payment Tool.
So, PCM_OP_PYMT_VALIDATE_PAYMENT does not perform
previous actions again when PCM_OP_PYMT_COLLECT calls it.
Important: For countries that joined the EMU before February, 2002,
the euro is the only legal currency. Countries that joined the EMU after
2/28/2002 can continue to use their national currency during the
crossover period; however, the accounts should also use the euro, not
the EMU currency, as the primary account currency. If you are unsure
whether you should create an additional batch for the EMU currency,
ask your supervisor.
3. If the payment is not associated with a valid bill number, the opcode searches for a
bill whose total due amount matches the payment amount. The search is restricted
to bills linked to the account with which the payment is associated.
Caution: BRM uses the XML in this file to overwrite the existing
/config/business_params object for the ar instance. If you delete or
modify any other parameters in the file, these changes affect the
associated aspects of BRM’s billing configuration.
4. Use the following command to load the change into the /config/business_params
object:
pin_bus_params bus_params_AR.xml
See "Using testnap" in BRM Developer's Guide for general instructions on using
testnap. See "Reading Objects by Using Object Browser" in BRM Developer's Guide
for information on how to use Object Browser.
6. Stop and restart the Connection Manager (CM). For more information, see
"Starting and Stopping the BRM System" in BRM System Administrator's Guide.
7. (Multischema systems only) Run the pin_multidb script with the -R CONFIG
parameter. For more information, see "pin_multidb" in the BRM System
Administrator's Guide.
You use Payment Tool to process batches of payment reversals. For more information
on how BRM reverses payments, see "How BRM Reverses Payments".
Note:
■ To reverse failed unconfirmed payments, create a failed payment
batch.
■ The reversals discussed in this section are referred to as direct
reversals. They differ from indirect reversals that occur due to
payment recycling during suspended payment processing. For
information on reversals and how they relate to payment
recycling, see "Understanding Payment Recycling".
■ To reverse account-level payment made to an account having
multiple bill units, you pass the original payment’s transaction ID
to Payment Tool. When you submit a reversal batch, the reversal
batch reverses all the sub-payments created during the
account-level payment allocation to multiple bill units.
Note: Payment Tool does not support batches of credit card refunds.
BRM-initiated refunds are handled by the pin_refund utility.
■ Transfers amounts from the /billinfo or /bill object to any open debit items.
Each transfer from the new refund item to debit items decreases the value of the
new refund item.
■ Creates the /item/refund object, which contains the total credit amount.
■ Closes these credit and debit items.
■ Returns the refundable amount in the /item/refund object.
If you use a custom program to perform refunds, you can put the program name in the
input flist optional field PIN_FLD_PROGRAM_NAME. If this field is used to contain
the name of the program refunding a customer’s account, the program name is
recorded in the events associated with an item refund. If the program name is not
specified, the default value, Refund Opcode, is used.
Note:
■ You cannot refund suspended payments. For more information,
see "How Direct Reversals and Refunds Relate to Suspense".
■ You cannot reverse a refund. If you refund a customer account by
mistake, adjust the account for the refunded amount. See
"Performing Adjustments with Your Custom Application" in BRM
Managing Accounts Receivable.
batch, including the lockbox number, date, number of checks, and total payment
amount. If a payment is missing information, the batch data is used.
You can have the bank deliver the file electronically, and you can use Payment Tool to
import data directly from the file. See "Importing Batch Data into Payment Tool".
Note:
■ You might need to create a utility to retrieve the file.
■ If the bank creates the file with the EBCDIC character set, you
must create a utility to convert it to ASCII.
■ Payment Tool does not support the EDI 823 format.
■ When you import data, you must specify how the data is separated in columns
(for example, with spaces or tabs). Open a file containing your data to see how it is
formatted.
■ Your data can include information that is not formatted in columns (for example, a
document heading). This information can be imported as the batch header and
batch footer.
■ For payment data and refund data, there are two required columns:
– The amount paid
– Either the account number or the bill number
■ For payment reversal data, the only required column is the payment ID.
A typical input file looks like this:
Account Number,Payment Amount,Date,Check Number
0.0.0.1-887,19.95,5/11/99,1243
0.0.0.1-425,19.95,5/11/99,1543
0.0.0.1-776,19.95,5/11/99,1273
0.0.0.1-143,19.95,5/11/99,1254
Figure 11–3 shows how an input file, such as the one shown above, appears in the
Batch Import Wizard. The data is organized in columns, as defined by the delimiter
character (in this case, a comma).
To this:
ALLOWACCOUNTDUP=1
You do not need to exit Payment Tool; the change takes effect the next time you
validate a payment.
This can cause problems if your batches contain a large number of payments, because
other processes cannot access the accounts during payment processing.
You can configure Payment Tool to lock only the account that it is currently processing
rather than the entire batch.
When processing payments in a batch, Payment Tool initiates the transaction for the
entire batch and any errors that are encountered while processing any payment entry
in the batch is ignored. However, when you configure Payment Tool to lock only the
account it is currently processing, the payment item and payment event is recorded in
the BRM database only when the payment entry is processed successfully. The
payment is not recorded if any errors are encountered while processing the payment
entry.
To find out which payments failed or were successful after a CM or DM failure, you
must either check the logs or check in the database for failed
/event/billing/payment/pay_type events with the correct batch ID. Then, you must
batch only the failed payments and submit it to Payment Tool for processing.
To configure Payment Tool to lock at the account level when processing a batch of
payments:
1. Open the CM configuration file (BRM_Home/sys/cm/pin.conf) in a text editor.
2. Edit the payment_batch_lock entry:
- fm_pymt payment_batch_lock 0
Use 0 to lock at the account level or 1 to lock at the batch level.
3. Save and close the file.
4. Stop and restart the CM. For more information, see "Starting and Stopping the
BRM System" in BRM System Administrator's Guide.
TYPE = /config/paymenttool
FIELDS =
array PIN_FLD_PAY_TYPES ( type = PIN_FLDT_ARRAY, perms = ORW,);
field * PIN_FLD_NAME ( type = PIN_FLDT_STR(255), perms = MRW,);
array * PIN_FLD_PAYMENTTOOL_FIELDS( type = PIN_FLDT_ARRAY, perms = ORW,);
field * * PIN_FLD_FIELD_NAME ( type = PIN_FLDT_STR(255), perms = MRW,);
field * * PIN_FLD_COLUMN_NAME ( type = PIN_FLDT_STR(255), perms = MRW,);
field * * PIN_FLD_PURPOSE ( type = PIN_FLDT_INT, perms = MRW,);
field * * PIN_FLD_BATCH_TYPE(
type = PIN_FLDT_INTINT,
perms = MRW,
);
You can also use the PCM_OP_WRITE_FLDS opcode to set the locale.
Note: The country name you specify should exactly be the same as
the country name in the language parameter for that particular locale.
PIN_FLD_NAME indicates that the array has been allocated 5 items and 3 have been
used. This line is at the same level as the following PIN_FLD_PAYMENTTOOL_
FIELDS items.
1 PIN_FLD_NAME ARRAY [10003] allocated 5, used 3
To change the order of the columns in Payment Tool, you must change the order of
each array. In the following example, the columns are in the order:
■ Credit Card No.
■ Reason Code
■ Chargeback Date
0 PIN_FLD_PAY_TYPES ARRAY [10003] allocated 5, used 5
1 PIN_FLD_NAME STR [0] "Credit Card"
1 PIN_FLD_PAYMENTTOOL_FIELDS ARRAY [0] allocated 3, used 3
2 PIN_FLD_BATCH_TYPE INT [0] 1
2 PIN_FLD_COLUMN_NAME STR [0] "Credit Card No."
2 PIN_FLD_FIELD_NAME STR [0] "PIN_FLD_DEBIT_NUM"
2 PIN_FLD_PURPOSE INT [0] 1
1 PIN_FLD_PAYMENTTOOL_FIELDS ARRAY [1] allocated 3, used 3
2 PIN_FLD_BATCH_TYPE INT [0] 1
2 PIN_FLD_COLUMN_NAME STR [0] "Reason Code"
2 PIN_FLD_FIELD_NAME STR [0] "PIN_FLD_REASON_CODE"
2 PIN_FLD_PURPOSE INT [0] 0
1 PIN_FLD_PAYMENTTOOL_FIELDS ARRAY [2] allocated 3, used 3
2 PIN_FLD_BATCH_TYPE INT [0] 1
2 PIN_FLD_COLUMN_NAME STR [0] "Chargeback Date"
2 PIN_FLD_FIELD_NAME STR [0] "PIN_FLD_EFFECTIVE_T"
2 PIN_FLD_PURPOSE INT [0] 0
2. Stop and restart the CM. See "Starting and Stopping the BRM System" in BRM
System Administrator's Guide.
For example:
DefaultDateFormat=dd/MM/yyyy
If no date format is specified, Payment Tool uses the default format of the system
locale.
You do not need to exit Payment Tool after updating the INI file; the change takes
effect the next time you create or import a payment batch.
■ If you choose Account Number or Bill Number, both columns are enabled. If you
enter information in only one of the columns, you must tab through the other
column before you can enter the amount in the Allocate column.
Note: You can change the allocation method on a per-row basis; your
entire distribution list does not have to use the same method.
If you apply a payment to specific bills or items in an account, BRM retrieves all open
bills and all open bill items. The results are displayed in the allocation window so you
can assign an amount to each account, bill, or item. If you perform an item-level
allocation after having entered a bill number for the payment, the item list will only
contain open items for that bill. If you perform an item-level allocation with the
account number entered only, the item list will contain all open items for that account.
■ Modify the total amount that was allocated in each distributed payment.
■ Add an account to the payment distribution list, and allocate the remaining
amount to that account.
■ Leave the remaining amount in the suspended payment.
For more information on allocating payments, see the Payment Center Help.
2. In the directory in which Storable Class Editor created the Java source files,
compile the source files:
javac -d . *.java
3. Package the new class files into a JAR file. For example:
jar cvf customfields.jar *.class
paymentsearch.stepsize=100
Transactions
This chapter describes how to resolve failed credit card and direct debit transactions in
Oracle Communications Billing and Revenue Management (BRM) for Paymentech.
For information about the utilities used for resolving BRM-initiated payment
transactions, see "pin_clean" and "pin_recover".
BRM includes two utilities that you use to resolve failed BRM-initiated payment
transactions, "pin_recover" and "pin_clean". To resolve a failed BRM-initiated payment
transaction, you first run the pin_clean utility to see if there are any errors. If there are,
the method you use for resolving the error depends on the type of transaction. For
example, you follow a different procedure for resolving a failed verification than you
do for resolving a failed authorization. See " Types of Failed Credit Card Transactions".
Tip: The pin_clean utility writes output to stdout, so you can write a
script to run the pin_clean utility daily and write the output to a file.
The following procedure shows how to run the pin_clean utility manually.
1. Run the pin_clean utility with the summary option:
pin_clean -summary
2. Review the results. The following example contains six failures: 1 verification
failure, 3 authorization failures, and 2 refund failures.
CheckPoint Log Summary:
PIN_CHARGE_CMD_VERIFY 1
PIN_CHARGE_CMD_AUTH_ONLY 3
PIN_CHARGE_CMD_CONDITION 0
PIN_CHARGE_CMD_DEPOSIT 0
PIN_CHARGE_CMD_REFUND 2
Note: You should delete records with a value greater than 999 when
you want to recharge an account by using pin_collect. (The pin_clean
utility only processes payments with checkpoint records = 999.) This
deletes the /event/billing/charge object and the appropriate rows in
the EVENT_T, EVENT_BILLING_CHARGE_T, and EVENT_
BILLING_CHARGE_CC_T tables.
4. To quit, press 3.
Resolving Authorizations
To resolve failed authorizations, you can delete all transactions, but you must find out
which transactions must be resubmitted. For example, if a customer service
representative (CSR) issues a debit in Customer Center, and that transaction fails, you
must reissue the debit after deleting the checkpoint record.
1. Run the "pin_clean" utility without the summary option to display unresolved
transaction records:
pin_clean
■ The amount:
0 PIN_FLD_AMOUNT NUM [0] 100.000000
Make a note of the amount and the account number so that you can repeat the
transaction later.
6. To delete the checkpoint, press 1.
7. Continue displaying and deleting checkpoints until all authorization checkpoints
are deleted.
8. To return to the summary screen, press 2.
9. To quit, press 3.
10. Repeat the transactions that you recorded.
Resolving Refunds
To resolve failed refunds, you can delete all transactions, but you must find out which
transactions must be resubmitted.
If there is a checkpoint, there is no original refund. You can resubmit the refund.
1. Run the "pin_clean" utility without the summary option to display unresolved
transaction records:
pin_clean
■ The amount:
0 PIN_FLD_AMOUNT NUM [0] 10.000000
Make a note of the amount, date, and the account number so that you can repeat
the action, if necessary.
6. To delete the checkpoint, press 1.
7. Continue displaying and deleting checkpoints until all refund checkpoints are
deleted.
8. To return to the summary screen, press 2.
9. To quit, press 3.
10. Find out if the refund was made. Use the Event Browser to search for the refund.
11. If the refund was made, you’re finished. If the refund was not made, issue the
refund again.
Important: You cannot use the rfr option if the transaction was an
online transaction such as a charge or refund made by using Customer
Center. See "Resolving Authorizations" and "Resolving Refunds".
1. Request an RFR file from the Paymentech customer support service. If there is no
RFR file, you cannot complete this procedure. See "Resubmitting Transactions".
Note: When you request an RFR file, Paymentech does not send you
the file. Instead, it posts it so that the "pin_recover" utility can access it
at Paymentech.
4. Run the pin_clean utility in summary mode again. If you still find transaction
errors, refer to "Resubmitting Transactions".
Resubmitting Transactions
Caution: If you use a payment processor other than Paymentech,
ensure that it uses duplicate transaction detection. If not, using the
"pin_recover" utility with the resubmit option can cause customers to
be billed twice. The duplicate transaction detection offered by
Paymentech eliminates this problem.
If running the pin_recover utility with the rfr option does not resolve all transactions,
run the pin_recover utility with the resubmit option to resubmit the same batch and
process the transactions that didn’t go through.
1. To run the "pin_recover" utility with the resubmit option, you must find the batch
ID for the batch you are resubmitting. To do so, run the "pin_clean" utility in
summary mode again:
pin_clean -summary
For example:
pin_recover -resubmit T,2f
6. Run the pin_clean utility in summary mode again. If you still find transaction
errors, refer to "Deleting Transactions".
Resolving Payments
In rare cases, a credit card charge is made and the checkpoint record is cleared, but the
/event/billing/payment object is not recorded in the BRM database. This might
happen because of a network or hardware failure.
To find charge events in your database that have no matching payment events, use the
testnap utility. See "Testing Your Applications and Custom Modules" in BRM
Developer's Guide.
If you are missing payment events, use the "pin_recover" utility with the recover_
payment option. Because the charge has been made, this option has no effect on the
customer’s credit card.
pin_recover -recover_payment
This creates the payment item (if necessary) and payment event objects.
Note: To create the objects, rows are inserted into the EVENT_T and
EVENT_BILLING_PAYMENT_T database tables. If the payment item
does not exist for the bill, a row is also inserted into the ITEM_T
database table. If possible, the money is allocated to open items;
however, you may need to manually allocate the payment.
When a payment recovery was successful, the Event Browser displays the message,
“Payment - Thank you” and the EVENT_BILLING_PAYMENT_CC_T value = 0.
Deleting Transactions
Important: Deleting transactions is typically only used for failed
verification and authorization transactions. Always use the "pin_
recover" utility first to resolve transactions submitted by the "pin_
collect" and "pin_deposit" utilities. Only delete and resubmit pin_
collect and pin_deposit transactions as a last resort.
1. Run the "pin_clean" utility without the summary option to display any remaining
unresolved transaction records:
pin_clean
3. Make a note of the batch IDs that you must delete. You will need them when you
resubmit the batches.
4. Press the key that corresponds to the command you want to perform; for example,
press 2 to delete all transaction records.
When there is more than one record per transaction type, you can display each
record and delete it, or you can delete all records of that type without displaying
them.
5. When you have deleted all of the transactions that must be resubmitted, quit the
utility.
6. Use the pin_recover utility to resubmit the batch.
pin_recover -resubmit T,2a
If resubmitting the batch does not clear the checkpoints, do the following:
1. Delete the transactions.
2. Run the pin_recover utility with the resubmit option.
3. Run the pin_clean utility with the summary option to select and delete batches. Be
sure to note the batch ID.
4. Run the pin_ecover utility with the -resubmit option and provide the batch ID.
Note: The pin_clean utility does not show charges that have
checkpoint values greater than 999.
Important: You should only use this option when a credit card
number is reported as charged in both BRM and Paymentech, but it
has not been recorded as paid in BRM. This is an uncommon scenario
that can occur when the network connection is dropped after
Paymentech responds and before BRM allocates the payment.
This creates the payment item (if necessary) and payment event objects.
Note: To create the objects, rows are inserted into the EVENT_T and
EVENT_BILLING_PAYMENT_T database tables. If the payment item
does not exist for the bill, a row is also inserted into the ITEM_T
database table. If possible, the money is allocated to open items;
however, you may need to manually allocate the payment.
When a payment recovery was successful, the Event Browser displays the message,
“Payment - Thank you” and the EVENT_BILLING_PAYMENT_CC_T value = 0.
Paymentech does not have an RFR file and never received the payment batch
If you requested an RFR file from Paymentech and one does not exist, run the pin_
recover utility with the -resubmit option and provide the batch ID. See "Resubmitting
Transactions" for more information.
If Paymentech confirms they received the batch but checkpoints still exist, request an
RFR file and run the pin_recover utility with the rfr option.
Sessions
This chapter describes the Oracle Communications Billing and Revenue Management
(BRM) Resource Reservation Manager and explains how to use its components to
reserve resources.
Before using Resource Reservation Manager, you should be familiar with the
following:
■ BRM concepts and architecture. See "Introducing BRM" and "BRM System
Architecture" in BRM Concepts.
■ Modifying policy opcodes. See "Adding and Modifying Policy Facilities Modules"
in BRM Developer's Guide.
When a session ends, BRM deletes or releases the /reservation object, decrements the
RESERVED_AMOUNT field in the /balance_group object, and returns any unused
resources back to the account.
In the above example, revenue is also lost if the customer does not use service2 and
the reserved resource for service2 is returned to the account balance: Resource
Reservation Manager debits the account $4.00 for service1, because that’s all that is
available, resulting in a loss of $4.00. When the account is credited for unused service2
resources, the lost $4.00 is not recovered, even though there is now enough resource to
cover that amount.
To help prevent revenue loss, you can extend the resource reservation expiration time.
See "About Extending a Resource Reservation Expiration Time" for more information.
where:
■ -d creates a log file for debugging purposes.
■ -v displays information about successful or failed processing as the utility
runs
■ load_config_reservation_aaa_prefs_XXX is the specific reservation configuration
file.
For example:
load_config_reservation_aaa_prefs -d -v pin_config_reservation_aaa_prefs_gsm_
data
Tip: Using the cron command is a good way to run your script. For
details, see your UNIX documentation.
Creating Reservations
Use the PCM_OP_RESERVE_CREATE opcode to create a /reservation or
/reservation/active object.
Note: The /reservation object is not created for zero balance impact
events or free events.
Finding a Reservation
Use the PCM_OP_RESERVE_FIND_OBJ opcode to find one or more /reservation or
/reservation/active objects.
This opcode takes as input:
■ A routing POID from PIN_FLD_POID indicating the database to search.
■ The reservation number from PIN_FLD_RESERVATION_NO.
■ One or more of the following:
– The account object POID
– The session POID
– The service object POID
– The balance group POID
■ An optional reservation status field, PIN_FLD_RESERVATION_STATUS. If this
field is included, PCM_OP_RESERVE_FIND_OBJ will search reservation objects
with the status specified. If this field is not included, PCM_OP_RESERVE_FIND_
OBJ searches reservation objects with a status of PIN_RESERVATION_RESERVED.
When PCM_OP_RESERVE_FIND_OBJ finds an object successfully, it returns the POID
of the matching /reservation or /reservation/active object.
When the PCM_OPFLG_READ_RESULT flag is included in the call to PCM_OP_
RESERVE_FIND_OBJ, PCM_OP_RESERVE_FIND_OBJ also returns the following
details about the object:
■ Quantity (single-RUM) or quantities (multi-RUM) reserved
■ POID of the account, service, balance group, and session objects
■ Expiration time
■ Status
■ Reservation number
■ All amounts that have been reserved for this reservation object
If not successful, check the flist spec to determine the error.
Releasing Reservations
Use the PCM_OP_RESERVE_RELEASE opcode to release one or more reservations.
This opcode returns unused resources to the account so they can be used later.
System Requirements
Resource Reservation Manager is available for the HP-UX IA64, Linux, Solaris, and
AIX operating systems. For information on disk space requirements for these
operating systems, see Disk space requirements.
Software Requirements
This section describes the software that must be installed before you install Resource
Reservation Manager.
Before installing Resource Reservation Manager you must install:
■ Third-Party software, which includes the PERL libraries and JRE required for
installing BRM components. See "Installing the Third-Party Software" in BRM
Upgrade Guide.
■ BRM. For information, see "Putting Together Your BRM System" in BRM
Installation Guide.
■ Oracle 10g or Oracle 11g.
Note: If you have already installed the product, features that are
already installed cannot be reinstalled without uninstalling them first.
To reinstall a feature, uninstall it and then install it again.
Important:
■ If you download to a Windows workstation, use FTP to copy the
.bin file to a temporary directory on your UNIX server.
■ You must increase the heap size used by the Java Virtual Machine
(JVM) before running the installation program to avoid “Out of
Memory” error messages in the log file. For information, see
"Increasing Heap Size to Avoid “Out of Memory” Error Messages"
in BRM Installation Guide.
2. Go to the directory where you installed the Third-Party package and source the
source.me file.
Bash shell:
source source.me.sh
C shell:
source source.me.csh
Note: You can use the -console parameter to run the installation in
command-line mode. To enable a graphical user interface (GUI)
installation, install a GUI application such as X Windows and set the
DISPLAY environment variable before you install the software.
Note: The installation program does not prompt you for the
installation directory if BRM or Resource Reservation Manager is
already installed on the machine and automatically installs the
package at the BRM_Home location.
C shell:
source source.me.csh
This chapter provides reference information for Oracle Communications Billing and
Revenue Management (BRM) payment utilities.
load_pin_ach
Use this utility to load the merchant information for all credit card processor and
automated clearing house (ACH) vendors into the /config/ach object in the BRM
database. You define the payment processor and merchant information in the BRM_
Home/sys/data/pricing/example/pin_ach file.
For information about configuring merchants and payment processors, see "Setting Up
Merchants and Payment Processors".
Note: You cannot load separate /config/ach objects for each brand.
All brands use the same object.
Location
15
BRM_Home/bin
Syntax
15
Parameters15
-d
Creates a log file for debugging purposes. Use this parameter for debugging when the
utility appears to have run with no errors, but the ACH merchant data has not been
loaded into the database.
-v
Displays information about successful or failed processing as the utility runs.
-t
Runs a test to check the input to the utility. It verifies that the input file exists and
validates the information contained in the input file.
pin_ach_file
The name and location of the file that defines payment processor merchants. The
default pin_ach file is in BRM_Home/sys/data/pricing/example.
If you copy the pin_ach file to the same directory from which you run the load_pin_
ach utility, you do not have to specify either the path or the file name.
If you run the command in a different directory from where the pin_ach file is located,
you must include the entire path for the file.
Results
15
The load_pin_ach utility notifies you when it successfully creates the /config/ach
storable object.
If the load_pin_ach utility does not notify you that it was successful, look in the utility
log file (default.pinlog) to find any errors. The log file is either in the directory from
which the utility was started, or in a directory specified in the configuration file.
pin_balance_transfer
Use this utility to perform all automatic sponsored top-ups that are scheduled to occur
within the time range specified in the utility’s command line parameters.
For information about automatic sponsored top-ups, see the following topics:
■ About Sponsored Top-Ups
■ Performing Automatic Sponsored Top-Ups
Location
15
BRM_Home/bin
Syntax
15
Parameters15
-verbose
Displays information about successful or failed processing as the utility runs.
-test
Tests the utility, but does not affect accounts. Use this parameter to see which accounts
will receive automatic sponsored top-ups without actually transferring funds from
group owner accounts to member accounts.
Results
15
This utility notifies you only if it encounters errors. Look in the default.pinlog file for
errors. This file is either in the directory from which the utility was started or in a
directory specified in the utility configuration file.
pin_clean
Use this utility to find all unresolved credit card and direct debit payments recorded in
the BRM database.
For more information about unresolved payment transactions, see "Resolving Failed
BRM-Initiated Payment Transactions".
Location
15
BRM_Home/bin
Syntax
15
Parameters15
-summary
Displays the total number of each type of unresolved credit card transactions. In this
example, there are three verification errors, three authorization errors, and two refund
errors. For more information about these errors, see Table 13–1, " Types of Failed
Credit Card Transactions".
CheckPoint Log Summary:
PIN_CHARGE_CMD_VERIFY 3
PIN_CHARGE_CMD_AUTH_ONLY 3
PIN_CHARGE_CMD_CONDITION 0
PIN_CHARGE_CMD_DEPOSIT 0
PIN_CHARGE_CMD_REFUND 2
Without the summary option, the log summary is displayed and a menu if there are
checkpoints to resolve.
-search_count_limit n
Specifies the number of records to return.
-auth_pending
Specifies the number of records with the auth pending status. This is only applicable to
nontransactional payments.
-verbose
Displays information about successful or failed processing as the utility runs.
-help
Displays syntax and parameters for this utility.
Results
15
If the pin_clean utility does not notify you that it was successful, look in the utility log
file (default.pinlog) to find any errors. The log file is either in the directory from which
the utility was started, or in a directory specified in the configuration file.
pin_collect
Use this utility to collect the balance due for accounts that use credit card and direct
debit payment methods.
This process does not collect against any bills that have been corrected. After a
corrective bill has been finalized, BRM collects all subsequent payments against the
due amount on the bill items of the corrective bill.
For corrective bills, the payment collection is triggered based on the payment
collection date. You can configure the payment collection date to be the bill finalization
date, the due date or a specific number of days before the due date (as with regular
bills).
This utility does not any process payments against original bills after a corrective bill
has been issued. It processes payments against the corrective bill depending on the
configuration of the RejectPaymentsForPreviousBill business parameter. If there are
multiple corrective bills, any payment against any past bill for the same period is
applied to the latest corrective bill.
When you use multiple payment processors, you run this utility for each one. See
"Using More Than One Payment Processor" for more information.
By default, this utility collects payments for bills whose payment collection date is on
the day the utility is run and on the day before the utility is run. For example, if you
run pin_collect on 01/01/06, payments are collected from 00:00:00 a.m. on 12/31/05
to 00:00:00 a.m. on 01/02/06.
To collect BRM-initiated payments for bills whose payment collection date is on a day
other than the days listed above, use this utility’s start and end parameters. See
"Specifying Start and End Times" in BRM Configuring and Running Billing.
For more information on collecting BRM-initiated payments, see the following topics:
■ About Collecting BRM-Initiated Payments
■ Configuring Payment Collection Dates for Automatic Payments
Location
15
BRM_Home/bin
Syntax
15
Parameters
15
-pay_type payment_method
Specifies the payment method. There are two possible values:
■ 10003 for credit card
■ 10005 for direct debit
Payment methods are defined in BRM_Home/include/pin_pymt.h.
-vendor payment_processor_name
Specifies the credit card processor or automated clearing house (ACH) to use for
validating credit cards, debit cards, and direct debit transactions. This parameter is
used to get the payment processor information from the /config/ach storable object.
For information on configuring payment processor information, see "Setting Up
Merchants and Payment Processors" for more information.
-test
Runs a test to find out how many accounts meet the criteria without performing the
collection. The test has no effect on the accounts. This is most useful when run with the
-verbose and -report options.
-verbose
Displays information about successful or failed processing as the utility runs.
-report
Displays more information than the verbose parameter. Requires the verbose option.
Returns a list of the accounts being charged and the amount of each charge. This is an
important verification tool when used with the -test and -verbose options: you can
check the list of accounts and charges before charging them. See "Running Billing
Utilities Manually" in BRM Configuring and Running Billing.
-rebill
Collects any outstanding bills for a given account status. See "Running Weekly Billing"
and "Running Monthly Billing" in BRM Configuring and Running Billing.
-help
Displays syntax and parameters for this utility.
Results
15
If the pin_collect utility doesn't notify you that it was successful, look in the utility log
file (default.pinlog) to find any errors. The log file is either in the directory from which
the utility was started, or in a directory specified in the configuration file.
When it is called internally by the pin_bill_day script, the pin_collect utility logs error
information in the pin_mta.pinlog file.
pin_deposit
Use this utility to deposit all pre-authorized credit card and direct debit transactions
made within the past 30 days (from yesterday).
When you use multiple payment processors, you run this utility for each one. See
"Setting Up Merchants and Payment Processors" for more information.
Location
15
BRM_Home/bin
Syntax
15
Parameters15
-pay_type payment_method
Specifies the payment method. There are two possible values:
■ 10003 for credit card
■ 10005 for direct debit
Payment methods are defined in BRM_Home/include/pin_pymt.h.
-vendor payment_processor_name
Specifies the credit card processor or automated clearing house (ACH) to use for
validating credit cards, debit cards, and direct debit transactions. This parameter is
used to get the payment processor information from the /config/ach storable object.
See "Setting Up Merchants and Payment Processors" for more information on
configuring payment processor information.
-test
Runs a test to find out how many accounts meet the criteria without performing the
deposit. The test has no effect on the accounts.
-verbose
Displays information about successful or failed processing as the utility runs.
-help
Displays syntax and parameters for this utility.
Results
15
If the pin_deposit utility doesn't notify you that it was successful, look in the utility
log file (default.pinlog) to find any errors. The log file is either in the directory from
which the utility was started, or in a directory specified in the configuration file.
When it is called internally by the pin_bill_day script, the pin_deposit utility logs
error information in the pin_billd.pinlog file.
pin_recover
Use this utility to resolve failed credit card and direct debit transactions.
See "Resolving Failed BRM-Initiated Payment Transactions" for more information
about resolving failed credit card and direct debit transactions.
Location
15
BRM_Home/bin
Syntax
15
Parameters15
-pay_type payment_method
Specifies the payment method. There are two possible values:
■ 10003 for credit card
■ 10005 for direct debit
Payment methods are defined in BRM_Home/include/pin_pymt.h.
-vendor payment_processor_name
Specifies the credit card processor or automated clearing house (ACH) to use for
validating credit cards, debit cards, and direct debit transactions. This parameter is
used to get the payment processor information from the /config/ach storable object.
See "Setting Up Merchants and Payment Processors" for more information on
configuring payment processor information.
-rfr
Uses the Paymentech request for response (RFR) file to retrieve and reprocess an
incomplete batch. See "Resolving Transactions by Using a Request for Response (RFR)
File" for more information.
-resubmit batch_ID
Resends the original batch with the same batch ID to avoid double authorization. To
find the batch ID, run the pin_clean utility. See "Resubmitting Transactions" for more
information.
-recover_payment
Creates payment events for payments that have been successfully charged, but not
recorded. See "Resolving Payments" for more information.
-verbose
Displays information about successful or failed processing as the utility runs.
-test
Runs a test to find out how many accounts meet the criteria without performing the
recovery. The test has no effect on the accounts.
-help
Displays syntax and parameters for this utility.
Results
15
If the pin_recover utility doesn't notify you that it was successful, look in the utility
log file (default.pinlog) to find any errors. The log file is either in the directory from
which the utility was started, or in a directory specified in the configuration file.