As of 7.1.1, credit card numbers are no longer stored in Personify360. Instead, tokens are assigned by payments handlers as a reference to the credit card. Currently, PayPal assigns tokens that are good for two years, and CyberSource and Vantiv (new as of 7.6.0) assign tokens that are good for the life of the credit card.
Organizations
must have their credit card payment gateway defined to allow reference
transactions.
In the following situations, the organization must retokenize their customer’s credit cards (only if they use PayPal as their payment processor) if they have not been retokenized within a year of when the organization will charge the credit card:
· If an organization has members or subscribers who want to have their memberships or subscriptions automatically renewed each year to a credit card.
· Donors making credit card pledge payments or recurring gift payments that occur a year or more apart.
· Customers making credit card payments based on a payment schedule.
· If the organization allows customers to store credit-cards-of-record for use in future payments.
Credit
cards used for scheduled payments made more frequently than once a year
will not need to be selected for this process.
When this batch process is run, the process creates reference transactions to generate new tokens for customers. The new token reference number and the date CCP650 was run will be updated to the Cus_Credit_Card_Profile table for each customer credit card processed successfully, and the Profile Reference Type Code will be set to “UPDATE-CUSTOMER-PROFILE.” Credit cards that could not be retokenized will be listed on the CCP650 error report.
CCP650 includes multiple setup options similar to ORD650. The following table describes the defaults for each setup (all other parameters are user-selectable):
Setup |
Defaults |
---|---|
CCP650_A – Retokenize all CC Tokens |
Org, Org Unit, and Payment Handler parameters default based on the logged-in user. They are read-only. · The following parameters are set to “Y”: Retokenize All Tokens, Include All CCs of Record, Include Renewing Members, Include Renewing Subscribers, Include Fundraising, Include Sched Pymt Customers |
CCP650_B – Retokenize CC of Record Only |
Retokenize All Tokens is set to “N” · Include All CCs of Record is set to “Y” · The following parameters are set to “N”: Include Renewing Members, Include Renewing Subscribers, Include Fundraising, Include Sched Pymt Customers |
CCP650_C – Retokenize Renewing Memberships Only |
Org, Org Unit, and Payment Handler parameters default based on the logged-in user. They are read-only. · Include Renewing Members is set to “Y” · The following parameters are set to “N”: Retokenize All Tokens, Include All CCs of Record, Include Renewing Subscribers, Include Fundraising, Include Sched Pymt Customers |
CCP650_D – Retokenize Renewing Subscribers Only |
Org, Org Unit, and Payment Handler parameters default based on the logged-in user. They are read-only. · Include Renewing Subscribers is set to “Y” · The following parameters are set to “N”: Retokenize All Tokens, Include All CCs of Record, Include Renewing Members, Include Fundraising, Include Sched Pymt Customers |
CCP650_E – Retokenize Fundraising Only |
Org, Org Unit, and Payment Handler parameters default based on the logged-in user. They are read-only. · Include Fundraising is set to “Y” · The following parameters are set to “N”: Retokenize All Tokens, Include All CCs of Record, Include Renewing Members, Include Renewing Subscribers, Include Sched Pymt Customers |
CCP650_F – Retokenize Scheduled Payment Customers Only |
Org, Org Unit, and Payment Handler parameters default based on the logged-in user. They are read-only. · Include Sched Pymt Customers is set to “Y” · The following parameters are set to “N”: Retokenize All Tokens, Include All CCs of Record, Include Renewing Members, Include Renewing Subscribers, Include Fundraising |
CCP650_G – Retokenize Select Multiple Options |
Org, Org Unit, and Payment Handler parameters default based on the logged-in user. They are read-only. |
These setup options include common selections of parameters to help you expedite the setup process. The following table provides an at-a-glance view of the outcomes when certain parameters are set to “Y”:
Retokenize All Tokens |
Include All CCs of Record |
Include Renewing Members |
Include Renewing Subscribers |
Include Fundraising |
Include Scheduled Payment Customers |
Result |
---|---|---|---|---|---|---|
Y |
Y |
Y |
Y |
Y |
Y |
All tokens due to expire before the specified date (minus one year) are retokenized. |
|
Y |
Y |
Y |
|
|
All credit cards of record with tokens that will expire by the specified date (minus one year) will be retokenized. |
Y |
|
|
|
|
|
All of the Include parameters are automatically set to “Y” so that all tokens due to expire before the specified date (minus one year) are retokenized. |
|
Y |
|
|
|
|
Anyone with a credit card whose credit card token is due to expire by the specified date (minus one year) will be retokenized. |
|
|
Y |
|
|
|
Members due for renewal who are paying by credit card with a token due to expire by the specified date (minus one year) will be retokenized. |
|
|
|
Y |
|
|
Subscribers due for renewal who are paying by credit card with a token due to expire by the specified date (minus one year) will be retokenized. |
|
|
|
|
Y |
|
Donors with pledges or recurring gifts with a payment due by a credit card with a token due to expire by the specified date (minus one year) will be retokenized. |
|
|
|
|
|
Y |
Customers with an upcoming scheduled payment for non-fundraising payments (such as exhibitions) due by the specified date will be retokenized. |
The ORD650 Renewals batch process should be run to generate the renewals before CCP650 is run. Once the renewals are generated and the scheduled payments have been generated for all renewal orders to be automatically renewed to a credit card, CCP650 should be run to retokenize any credit cards associated with scheduled payments for the automatic renewals that have a token expiration date on or before the renewal processing date. Once CCP650 is run to retokenize the credit cards, FAR680 can be run to collect the credit card payments.
This
process does not attempt to retokenize credit cards for which a deferred
credit card receipt is pending when an INV order line has been backordered
for almost a year. It is not recommended best practices to maintain a
backordered order line for this long.
Retokenization involves creating a $1.00 transaction and a voided negative $1.00 transaction. Since organizations are charged a fee to retokenize credit cards, the CCP650 process gives you several options so you only retokenize the necessary credit cards.
This process identifies records with tokens that will expire before the “Token Expires On or Before” date. When CCP650 is run in PROD mode, the process returns a new token for each selected credit card using the same processing logic as CCP610, and updates the token and token date for each selected credit (token information is stored in Cus_Credit_Card_Profile.PROFILE_REFERENCE, PROFILE_DATE, and PROFILE_REFERENCE_TYPE).
Parameter |
Description |
Required? |
---|---|---|
Organization |
The Organization ID of the logged-in user. The CCP650 process retokenizes the credit cards for this organization only. |
Read-only |
Organization Unit |
The Organization Unit ID of the logged-in user. The CCP650 process retokenizes the credit cards for this organization unit only. |
Read-only |
Payment Handler |
Payment Handler for which you want to run the process to retokenize customer credit cards. This is a read-only parameter, as only PayPal credit cards must be retokenized. |
Read-only |
Merchant ID |
The Personify Merchant ID number for which you want to run the process to retokenize customer credit cards. The available options include the merchant information defined in the application interface definition. |
Yes |
Run Mode |
Mode in which the report runs: · EDIT – generates the report. This does not process through the test server. · PROD – updates the database tables and retokenizes the credit cards. |
Yes |
Token Expires On or Before |
This is the date that the organization expects to authorize credit cards for renewals or scheduled payments. This process will process credit card profile records with a profile date between 1 year and 2 years before the “Token Expires by Date” parameter. For example, if the current date is 7/31/2013 and a date of 8/1/2013 (August 1, 2013) is entered for this parameter, the process will select credit card profile records with a profile date of between August 1, 2011 and August 1, 2012. (In this example, credit cards with a profile date of greater than August 1, 2012 would still have valid tokens and therefore could be used.) |
Yes |
Retokenize all Tokens |
When set to “Y,” all of the Include parameters below are automatically set to “Y” (and cannot be edited) so that all tokens due to expire before the specified date (minus one year) are retokenized. When set to “N,” you can specify the specific types of renewals, such as renewing members, renewing subscribers, fundraising, and scheduled payment customers. |
Yes |
Include All CCs of Record |
When set to “Y,” anyone with a credit card whose credit card token is due to expire by the specified date (minus one year) will be retokenized. When this is set to “Y” and the Retokenize All Tokens field is set to “Y,” then the Include Renewing Members and Include Renewing Subscribers fields are also set to “Y” and cannot be edited.
When set to “N,” anyone with a credit card whose credit card token is due to expire by the specified date is excluded from the retokenization process. |
Yes |
Include Renewing Members |
When set to “Y,” members due for renewal who are paying by credit card with a token due to expire by the specified date (minus one year) will be retokenized. When set to “N,” members due for renewal who are paying by credit card with a token due to expire by the specified date are excluded from the retokenization process.
If this parameter is set to “Y” and the Retokenize All Tokens parameter is set to “N”, then the process selects the bill-to customer for membership orders defined to automatically renew by credit card that have “CC” as the auto-pay method, as long as: · The membership order line status is “A” · The membership order line fulfill status is not in T, X. D, S · The membership order line has a cycle begin date less than the Token Expires On or Before date and has a cycle end date greater than the Token Expires On or Before date |
Yes |
Include Renewing Subscribers |
When set to “Y,” subscribers due for renewal who are paying by credit card with a token due to expire by the specified date (minus one year) will be retokenized. When set to “N,” subscribers due for renewal who are paying by credit card with a token due to expire by the specified date are excluded from the retokenization process.
If this parameter is set to “Y” and the Retokenize All Tokens parameter is set to “N”, then the process selects the bill-to customer for subscription orders defined to automatically renew by credit card that have “CC” as the auto-pay method, as long as: · The subscription order line status is “A” · The subscription order line fulfill status is not in T, X. D, S · The subscription order line has a cycle begin date less than the Token Expires On or Before date and has a cycle end date greater than the Token Expires On or Before date |
Yes |
Include Fundraising |
When set to “Y,” donors with pledges or recurring gifts with a payment due by a credit card with a token due to expire by the specified date (minus one year) will be retokenized. When set to “N,” donors with pledges or recurring gifts with a payment due by a credit card with a token due to expire by the specified date are excluded from the retokenization process. Typically payments for pledges or recurring gifts are made more frequently than once a year, so it is rare when these will need to be retokenized.
If this parameter is set to “Y” and the Retokenize All Tokens parameter is set to “N”: · For pledges, the system selects the bill-to customer for active, fundraising order lines where product type = PLEDGE that have “CC” as the auto-pay method and that have: § Payment schedule with a payment status of “Pending” § Due Date less than the Token Expires On or Before date · For recurring gifts, the system selects the bill-to customer for recurring gift order lines where: § Line Status Code = C § Recurring Gift Flag = Y § Recurring Gift Status ACTIVE or REJECTED § Next Gift Date is less than the Token Expires On or Before date |
Yes |
Include Scheduled Payment Customers |
When set to “Y,” customers with an upcoming scheduled payment for non-fundraising payments (such as exhibitions) due by the specified date will be retokenized. When set to “N,” customers with an upcoming scheduled payment due by the specified date are excluded from the retokenization process.
If this parameter is set to “Y” and the Retokenize All Tokens parameter is set to “N”, then the system selects the bill-to customer for active, non-fundraising order lines that have “CC” as the auto-pay method, as long as: · The scheduled payment has a Payment Status of “Pending” · The Due Date is less than the Token Expires On or Before date |
Yes |
Ignore CC Expiration Date |
When set to “Y,” the retokenization process will ignore the credit card expiration date and retokenize credit cards before the specified expiration date. This option is available since some banks reauthorize credit cards if the bank assigned a new expiration date for the card. When set to “N,” the retokenization process takes the specified expiration date into account. When set to “NP,” the system does not retokenize the expiring credit cards, but instead generates a report that lists the customers with renewals or payments linked to an expired/expiring credit card. |
Yes |
Report Mode |
Set to “D” to generate the Detail report only. Set to “S” to generate the Summary report only. Set to “B” to generate both the Detail and Summary reports. |
Yes |
Table |
Joins To |
Joins Type |
On |
---|---|---|---|
Cus_Credit_Card_Profile |
Cus_Credit_Card |
Equal |
Cus_Credit_Card_Profile. MASTER_CUSTOMER_ID = Cus_Credit_Card.MASTER_CUSTOMER_ID and Cus_Credit_Card_Profile. SUB_CUSTOMER_ID = Cus_Credit_Card.SUB_CUSTOMER_ID and Cus_Credit_Card_Profile. CC_REFERENCE = Cus_Credit_Card.CC_REFERENCE and Cus_Credit_Card.ORG_ID = [ORG_ID of user running the batch process] and Cus_Credit_Card.ORG_UNIT_ID = [ORG_UNIT_ID of user running the batch process] |
Cus_Credit_Card_Profile |
Order_Detail_CC_Info |
Equal |
Cus_Credit_Card_Profile. CUS_CREDIT_CARD_PROFILE_ID = Order_Detail_CC_Info. CUS_CREDIT_CARD_PROFILE_ID |
Order_Detail_CC_Info |
Order_Detail |
Equal |
Order_Detail_CC_Info.ORDER_NO = Order_Detail.ORDER_NO |
Order_Detail |
Order_Payment_Schedule |
Equal |
Order_Detail.ORDER_NO = Order_Payment_Schedule.ORDER_NO and Order_Detail.ORDER_LINE_NO = Order_Payment_Schedule.ORDER_LINE_NO |
Order_Detail |
Order_Fnd_Detail |
Equal |
Order_Fnd_Detail.ORDER_NO = Order_Detail.ORDER_NO |
Order_Detail |
Customer as Ship_Customer |
Equal |
Order_Detail.SHIP_MASTER_CUSTOMER_ID =
Ship_Customer.MASTER_CUSTOMER_ID |
Order_Detail |
Order_Master |
Equal |
Order_Detail.ORDER_NO = Order_Master.ORDER_NO |
Order_Master |
Customer as Bill_Customer |
Equal |
Order_Master.BILL_MASTER_CUSTOMER_ID = Bill_Customer.MASTER_CUSTOMER_ID and Order_Master.BILL_SUB_CUSTOMER_ID = Bill_Customer.SUB_CUSTOMER_ID |
If Include All CCs of Record = “Y” and Retokenize All Tokens = “N”
If Include All CC Tokens = “Y”
Select Cus_Credit_Card_Profile.MASTER_CUSTOMER_ID,
Cus_Credit_Card_Profile.SUB_CUSTOMER_ID,
From Cus_Credit_Card_Profile
Where Cus_Credit_Card_Profile.PROFILE_DATE <= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus one year
And Cus_Credit_Card_Profile.PROFILE_DATE >= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus 2 year
And Case
If [CCP650 Parameter]IGNORE_CC_EXPIRATION_DATE is “No”
then Cus_Credt_Card_Profile.CC_EXPIRATION_DATE
> [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
End Case
If “Include All CC Tokens” = “Y”, then it is not necessary to execute any of the additional selection logic.
If Include Renewing Members = “Y” and Retokenize All Tokens = “N”
Select [Fields needed from Cus_Credit_Card_Profile]
From Order_Detail,
Order_Master,
Order_Detail_CC_Info,
Cus_Credit_Card_Profile
[See chart for joins]
Where Order_Detail.SUBSYSTEM = ‘MBR’
And Order_Detail.AUTO_PAY_METHOD_CODE = ‘CC’
And Order_Detail.RENEW_TO_CC_FLAG = ‘Y’
And Order_Detail.LINE_STATUS_CODE = ‘A’
And Order_Detail.FULFILL_STATUS_CODE not in (‘X’,’T’,’D’,’S’)
And Order_Detail.CYCLE_END_DATE > [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
And Order_Detail.CYCLE_BEGIN_DATE < [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
And Order_Detail.RENEWAL_CREATED_FLAG = ‘N’
And Order_Detail.ORG_ID = [CCP650 Parameter]ORG_ID
And Order_Detail.ORG_UNIT _ID = [CCP650 Parameter]ORG_UNIT_ID
And Cus_Credit_Card_Profile.PROFILE_DATE <= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus one year
And Cus_Credit_Card_Profile.PROFILE_DATE >= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus 2 year
And Case
If [CCP650 Parameter]IGNORE_CC_EXPIRATION_DATE is “No”
then Cus_Credt_Card_Profile.CC_EXPIRATION_DATE
> [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
End Case
If Include Renewing Subscribers = “Y” and Retokenize All Tokens = “N”
Select [Fields needed from Cus_Credit_Card_Profile]
From Order_Detail,
Order_Master,
Order_Detail_CC_Info,
Cus_Credit_Card_Profile
[See chart for joins]
Where Order_Detail.SUBSYSTEM = ‘SUB’
And Order_Detail.AUTO_PAY_METHOD_CODE = ‘CC’
And Order_Detail.RENEW_TO_CC_FLAG = ‘Y’
And Order_Detail.LINE_STATUS_CODE = ‘A’
And Order_Detail.FULFILL_STATUS_CODE not in (‘X’,’T’,’D’,’S’)
And Order_Detail.CYCLE_END_DATE > [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
And Order_Detail.CYCLE_BEGIN_DATE < [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
And Order_Detail.RENEWAL_CREATED_FLAG = ‘N’
And Order_Detail.ORG_ID = [CCP650 Parameter]ORG_ID
And Order_Detail.ORG_UNIT _ID = [CCP650 Parameter]ORG_UNIT_ID
And Cus_Credit_Card_Profile.PROFILE_DATE <= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus one year
And Case
If [CCP650 Parameter]IGNORE_CC_EXPIRATION_DATE is “No”
then Cus_Credt_Card_Profile.CC_EXPIRATION_DATE
> [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
End Case
If Include Fundraising = “Y” and Retokenize All Tokens = “N”
Selection Logic for Pledge Payments
Select [Fields needed from Cus_Credit_Card_Profile]
From Order_Detail,
Order_Master,
Order_Payment_Schedule,
Order_Detail_CC_Info,
Cus_Credit_Card_Profile
[See chart for joins]
Where Order_Detail.AUTO_PAY_METHOD_CODE = ‘CC’
And Order_Detail.LINE_STATUS_CODE = ‘A’
And Order_Detail.SUBSYSTEM = ‘FND’
And Order_Detail.PRODUCT_TYPE_CODE = ‘PLEDGE’
And Order_Payment_Schedule.PAYMENT_STATUS_CODE = ‘PENDING’
And Order_Payment_Schedule.DUE_DATE <= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
And Order_Detail.ORG_ID = [CCP650 Parameter]ORG_ID
And Order_Detail.ORG_UNIT_ID = [CCP650 Parameter]ORG_UNIT_ID
And Cus_Credit_Card_Profile.PROFILE_DATE <= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus one year
And Cus_Credit_Card_Profile.PROFILE_DATE >= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus 2 year
And Case
If [CCP650 Parameter]IGNORE_CC_EXPIRATION_DATE is “No”
then Cus_Credt_Card_Profile.CC_EXPIRATION_DATE
> [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
End Case
Selection Logic for Recurring Gifts
Select [Fields needed from Cus_Credit_Card_Profile]
From Order_Detail,
Order_Master,
Order_Fnd_Detail,
Order_Detail_CC_Info,
Cus_Credit_Card_Profile
[See chart for joins]
Where Order_Detail.AUTO_PAY_METHOD_CODE = ‘CC’
And Order_Detail.LINE_STATUS_CODE <> ‘C’
And Order_Detail.SUBSYSTEM = ‘FND’
And Order_Fnd_Detail.RECURRING_GIFT_FLAG = ‘Y’
And Order_Fnd_Detail.RECURRING_GIFT_STATUS_CODE in (‘ACTIVE’,’REJECTED’)
And Order_Fnd_Detail. NEXT_RECURRING_GIFT_DATE <= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
And Order_Detail.ORG_ID = [CCP650 Parameter]ORG_ID
And Order_Detail.ORG_UNIT_ID = [CCP650 Parameter]ORG_UNIT_ID
And Cus_Credit_Card_Profile.PROFILE_DATE <= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus one year
And Cus_Credit_Card_Profile.PROFILE_DATE >= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus 2 year
And Case
If [CCP650 Parameter]IGNORE_CC_EXPIRATION_DATE is “No”
then Cus_Credt_Card_Profile.CC_EXPIRATION_DATE
> [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
End Case
If Include Scheduled Payment Customers = “Y” and Retokenize All Tokens = “N”
Select [Fields needed from Cus_Credit_Card_Profile]
From Order_Detail,
Order_Master,
Order_Payment_Schedule,
Order_Detail_CC_Info,
Cus_Credit_Card_Profile
[See chart for joins]
Where Order_Detail.AUTO_PAY_METHOD_CODE = ‘CC’
And Order_Detail.LINE_STATUS_CODE = ‘A’
And Order_Detail.SUBSYSTEM <> ‘FND’
And Order_Payment_Schedule.PAYMENT_STATUS_CODE = ‘PENDING’
And Order_Payment_Schedule.DUE_DATE <= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
And Order_Detail.ORG_ID = [CCP650 Parameter]ORG_ID
And Order_Detail.ORG_UNIT_ID = [CCP650 Parameter]ORG_UNIT_ID
And Cus_Credit_Card_Profile.PROFILE_DATE <= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus one year
And Cus_Credit_Card_Profile.PROFILE_DATE >= [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE minus 2 year
And Case
If [CCP650 Parameter]IGNORE_CC_EXPIRATION_DATE is “No”
then Cus_Credt_Card_Profile.CC_EXPIRATION_DATE
> [CCP650 Parameter]TOKEN_EXPIRES_BY_DATE
End Case
Update Logic
When the new credit card tokens are received, the system does the following updates:
Update Cus_Credit_Card_Profile
Set Cus_Credit_Card_Profile.PROFILE_REFERENCE = [token returned by CCP650],
Cus_Credit_Card_Profile.PROFILE_DATE = getdate(),
Cus_Credit_Card_Profile.PROFILE_REFERENCE_TYPE = ‘UPDATE-CUSTOMER-PROFILE’
From Cus_Credit_Card_Profile,
Where Cus_Credit_Card_Profile.PROFILE_REFERENCE = [old PROFILE_REFERENCE]
The following reports are outputs of the CCP650 process, similar to those generated by the CCP610 process:
· Credit
Card Retokenization Summary (CCP650_RETOKENIZED_SUMMARY) – Displays
the total number of records processed, successfully and errors.
· Retokenized
Credit Cards (CCP650_RETOKENIZED_DETAIL) – Lists customers and credit
card reference numbers that were retokenized.
· Expiring/Expired
Credit Cards (CCP650_EXPIRED_EXPIRING_CC) – Lists customers with renewals
or scheduled payments coming due that are linked to credit cards that
will be expired.
· Credit Card Retokenization Errors (CCP650_RETOKENIZATION_ERROR) – Lists customers with contact information for credit cards that were not able to be retokenized
Currently
the reports do not include order information.