Testing Recurring Engine Transactions

Use the following Certification tests to verify transactions associated with the Recurring Engine functionality. For testing purposes, the Certification environment will process the first recurring transaction within 2 hours. The system cancels subsequent recurring transactions in the payment stream. For example, if you submitted an Authorization at 9:00 AM that set-up a subscription for twelve monthly payments, the Cert Recurring Engine would process the first payment by 11:00 AM and cancel the remaining eleven payments.

The test data supplied does not necessarily account for all data fields/XML elements in a particular request. Where test data is not supplied, you should provide appropriate information. You should never override your own system to enter supplied data. If you are unable to enter the supplied data without overriding your system, please consult your Implementation Consultant concerning the test and how to proceed.

To test the Recurring Engine functionality using the data supplied in TABLE 2-27  Recurring Engine Test Data:

  1. Submit createPlan transactions for Order Ids R1.1, R1.2, R1.3, R1.4, R1.5, and R1.6. These transactions establish Plans used in the remaining tests, as well as verify your cnpAPI messages used to create Plans. You can use whatever values you wish for the <planCode> and <name> elements. Verify that each transaction receives an approval code in the response message.

  2. Submit createPlan transactions for Order Id R1.7 using the same <planCode> value you used in R1.3. This transaction is declined, because the Plan Code already exists. Verify that the transaction receives a response code of 487 - Plan code already exists.

  3. Submit a sale transaction for Order Id R2.1. This transaction creates a subscription using the plan established in Order R1.1. The amount in the sale transaction represents a set-up fee and not the initial payment. Verify that the transaction receives an approval code in the response message.

  4. Submit an authorization transaction for Order Id R2.2. This transaction creates a subscription using the plan established in Order R1.1. Because the Authorization did not specify a start date, the Recurring Engine schedules the first payment for the current date. Verify that the transaction receives an approval code in the response message.

The transaction specified in Order 2.2 is a $0 Auth. If you include an amount when using an Auth to establish a subscription, you should plan on reversing the Auth to avoid a Misuse of Auth fee. The Recurring Engine obtains its own Auth for the first payment.

  1. Submit an updateSubscription transaction for Order Id R2.3. This transaction updates the subscription initiated with Order Id 2.1, changing the Plan to the plan you created in R1.2.

  2. Submit a sale transaction for Order Id R3.1. This transaction utilizes a Sale transaction to initialize a subscription based upon the plan created in R1.3, but overrides both the number of payments and the amount specified in the Plan. Verify that the transaction receives an approval code in the response message.

  3. Submit an authorization transaction for Order Id R3.2. This transaction utilizes an Authorization transaction to initialize a subscription based upon the plan created in R1.3, but overrides both the number of payments and the amount specified in the Plan. Verify that the transaction receives an approval code in the response message.

  4. Submit an updateSubscription transaction for Order Id R3.3. This transaction updates an existing subscription, changing the billing date.

  5. Submit an authorization transaction for Order Id R4.1. This transaction utilizes an Authorization transaction to initialize a subscription that overrides the default amount in the Plan and has a trial period. Verify that the transaction receives an approval code in the response message.

  6. Submit an updateSubscription transaction for Order Id R4.2. This transaction updates an existing subscription with a new credit card number.

  7. Submit an authorization transaction for Order Id R5.1. This transaction utilizes an Authorization transaction to initialize a subscription based upon the SEMIANNUAL_PLAN, but overrides the number of payments. Verify that the transaction receives an approval code in the response message.

  8. Submit an updateSubscription transaction for Order Id R5.2. This transaction updates an existing subscription with new billing information.

  9. Submit an updateSubscription transaction for Order Id R5.3. Since the transaction does not include any updated information, the Declined Transaction report will contain a response code of 484- Insufficient data to update subscription. Verify the response code by accessing the Declined Transaction report in Worldpay eComm iQ.

  10. Submit an updateSubscription transaction for Order Id R5.4. Since the transaction specifies a new billing date in the past, the Declined Transaction report will contain a response code of 485 - Invalid billing date. Verify the response code by accessing the Declined Transaction report in Worldpay eComm iQ.

  11. Submit an authorization transaction for Order Id R6.1. The system declines this transaction, since it uses an invalid Plan Code. Verify that the transaction receives a response code of 472 - Invalid plan code.

  12. Submit an updateSubscription transaction for Order Id R6.2. Since this order uses an invalid subscription Id, The system declines this transaction, the Declined Transaction report will contain a response code of 482 - Invalid start date. Verify the response code by accessing the Declined Transaction report in Worldpay eComm iQ.

  13. Submit an authorization transaction for Order Id R6.3. The system declines this transaction, since it uses a start date in the past. Verify that the transaction receives a response code of 475 - Invalid Subscription Id.

  14. Submit an authorization transaction for Order Id R7.1. This transaction utilizes an Authorization transaction to initialize a subscription based upon the PLAN_WITH_PROMOTIONS Plan with an add On and a Discount applied. Verify that the transaction receives an approval code in the response message.

  15. Submit an updateSubscription transaction for Order Id R7.2. This transaction attempts to update an existing subscription with a new Add On, but is declined because the Add On already exists. Verify that the Declined Transaction report contains a response code of 476 - Add On already exists.

  16. Submit an updateSubscription transaction for Order Id R7.3. This transaction attempts to update an Add On for an existing subscription, but is declined because the specified Add On is not associated with the Subscription. Verify that the Declined Transaction report contains a response code of 478 - No matching Add On code for the subscription.

  17. Submit an updateSubscription transaction for Order Id R7.4. This transaction attempts to update an Add On for an existing subscription, but is declined because the specified Add On is not associated with the Subscription. Verify that the Declined Transaction report contains a response code of 478 - No matching Add On code for the subscription.

  18. Submit an updateSubscription transaction for Order Id R7.5. This transaction attempts to update a Discount for an existing subscription, but is declined because the specified Discount is not associated with the Subscription. Verify that the Declined Transaction report contains a response code of 480 - No matching Discount code for the subscription.

  19. Submit an authorization transaction for Order Id R8.1. This transaction utilizes an Authorization transaction to initialize a subscription, but includes duplicate Add Ons. Verify that the transaction receives a response code of 477 - Duplicate add-on codes in request.

  20. Submit an authorization transaction for Order Id R8.2. This transaction utilizes an Authorization transaction to initialize a subscription, but includes duplicate Discounts. Verify that the transaction receives a response code of 481 - Duplicate discount codes in request.

  21. Submit an authorization transaction for Order Id R9.1. In this case the parent Authorization transaction is declined with a response code of 301 - Invalid Account Number. The response code associated with the recurring request is 471 - Parent transaction declined - Recurring subscription not created.PREMIUM_MONTHLY

  22. Submit an cancelSubscription transaction for Order Id R10.1. Verify that the transaction receives an approval code in the response message.

  23. Submit an updatePlan transaction for Order Id R11.1. This transaction changes the Plan to an inactive state. Verify that the transaction receives an approval code in the response message.

TABLE 2-27  Recurring Engine Test Data

orderId

Supplied Data Elements

Key Response Elements

 

Element

Value

Element

Value

R1.1

 

 

 

 

 

 

<createPlan>

<planCode>

<name>

<description>

<intervalType>

<amount>

<numberOfPayments>

(parent element)

Your Value

Your Value

Basic monthly plan

MONTHLY

5000

12

<response>

<message>

<planCode>

 

 

 

 

000

Approved

Your Value

 

 

 

 

R1.2

 

 

 

 

 

 

 

<createPlan>

<planCode>

<name>

<description>

 

<intervalType>

<amount>

<numberOfPayments>

(parent element)

Your Value

Your Value

Premium monthly

plan

MONTHLY

7000

12

<response>

<message>

<planCode>

 

 

 

 

 

000

Approved

Your Value

 

 

 

 

 

R1.3

<createPlan>

<planCode>

<name>

<description>

<intervalType>

<amount>

(parent element)

Your Value

Your Value

An annual plan

ANNUAL

14000

<response>

<message>

<planCode>

 

 

 

000

Approved

Your Value

 

 

 

R1.4

 

 

 

 

 

 

 

 

<createPlan>

<planCode>

<name>

<description>

 

<intervalType>

<amount>

<trialIntervalType>

<trialNumberOfIntervals>

(parent element)

Your Value

Your Value

A monthly plan with

trial period

MONTHLY

5000

MONTH

2

<response>

<message>

<planCode>

 

 

 

 

 

 

000

Approved

Your Value

 

 

 

 

 

 

R1.5

 

 

 

 

 

<createPlan>

<planCode>

<name>

<description>

<intervalType>

<amount>

(parent element)

Your Value

Your Value

A semi-annual plan

SEMIANNUAL

7000

<response>

<message>

<planCode>

 

 

 

000

Approved

Your Value

 

 

 

R1.6

 

 

 

 

 

<createPlan>

<planCode>

<name>

<description>

<intervalType>

<amount>

(parent element)

Your Value

Your Value

A plan with Add Ons and Discounts

MONTHLY

5000

<response>

<message>

<planCode>

 

 

 

000

Approved

Your Value

 

 

 

R1.7

 

 

 

 

 

<createPlan>

<planCode>

<name>

<description>

<intervalType>

<amount>

(parent element)

Value from R1.3

Value from R1.3

An annual plan

ANNUAL

5000

<response>

<message>

<planCode>

 

 

 

487

Plan code already exists

Value from R1.3

 

 

 

R2.1

 

 

 

 

 

<sale>

<amount>

<recurringRequest>

<subscription>

<planCode>

<startDate>

(parent element)

1000

(parent element)

(parent element)

Value from R1.1

Use any date

<recurringResponse>

<responseCode>

<responseMessage>

 

 

 

(parent element)

470

Approved - Recurring

subscription created

 

 

R2.2

 

 

 

 

<authorization>

<amount>

<recurringRequest>

<subscription>

<planCode>

(parent element)

000

(parent element)

(parent element)

Value from R1.1

<recurringResponse>

<responseCode>

<responseMessage>

 

 

(parent element)

470

Approved - Recurring subscription created

 

R2.3

<updateSubscription>

<subscriptionId>

<planCode>

(parent element)

Value returned in R2.1 response

Value from R1.2

<subscriptionId>

<response>

<message>

(parent element)

000

Approved

R3.1

 

 

 

 

 

 

<sale>

<recurringRequest>

<subscription>

<planCode>

<startDate>

<numberOfPayments>

<amount>

(parent element)

(parent element)

(parent element)

Value from R1.3

Use any valid date in the future.

6

4000

<recurringResponse>

<responseCode>

<responseMessage>

 

 

 

 

(parent element)

470

Approved - Recurring subscription created

 

 

 

R3.2

 

 

 

 

 

 

<authorization>

<recurringRequest>

<subscription>

<planCode>

<startDate

<numberOfPayments>

<amount>

(parent element)

(parent element)

(parent element)

Value from R1.3

Use any valid date in the future.

6

4000

<recurringResponse>

<responseCode>

<responseMessage>

 

 

 

 

(parent element)

470

Approved - Recurring

subscription created

 

 

 

R3.3

 

 

 

 

 

 

<updateSubscription>

<subscriptionId>

 

<billingDate>

 

 

 

(parent element)

Value returned in

R3.1 response

Use any valid date in

the future and

different from date

used in R3.1.

<response>

<message>

 

 

 

 

 

000

Approved

 

 

 

 

 

R4.1

 

 

 

 

 

 

<authorization>

<recurringRequest>

<subscription>

<planCode>

<startDate>

 

<amount>

(parent element)

(parent element)

(parent element)

Value from R1.4

Use any valid date in

the future.

4000

<recurringResponse>

<responseCode>

<responseMessage>

 

 

 

 

(parent element)

470

Approved - Recurring

subscription created

 

 

 

R4.2

 

 

 

 

 

<updateSubscription>

<subscriptionId>

<card>

<type>

<number>

<expDate>

(parent element)

Value returned in R4.1 response

(parent element)

VI

4457010000000009

1221

<response>

<message>

 

 

 

 

000

Approved

 

 

 

 

R5.1

 

 

 

 

 

<authorization>

<recurringRequest>

<subscription>

<planCode>

<startDate>

<numberOfPayments>

(parent element)

(parent element)

(parent element)

Value from R1.5

Use any valid date in the future.

6

<recurringResponse>

<responseCode>

<responseMessage>

 

 

 

(parent element)

470

Approved - Recurring

subscription created

 

 

R5.2

 

 

 

 

 

 

 

 

 

 

<updateSubscription>

<subscriptionId>

<billToAddress>

<name>

<addressLine1>

<city>

<state>

<zip>

<country>

<email>

<phone>

(parent element)

Value returned in R5.1 response

(parent element)

John

900 Chelmsford St.

Lowell

MA

01781

US

john@gmail.com

8559658965

<subscriptionId>

 

<response>

<message>

 

 

 

 

 

 

 

Value returned in R5.1 response

000

Approved

 

 

 

 

 

 

 

R5.3

 

 

 

 

<updateSubscription>

<subscriptionId>

 

 

 

(parent element)

Value returned in R5.1 response

 

 

 

<response>

<message>

 

Declined Transaction report result = 484 - Insufficient data to update subscription

000

Approved

 

 

 

R5.4

 

 

 

<updateSubscription>

<subscriptionId>

 

<billingDate>

(parent element)

Value returned in R5.1 response

 

2000-10-01

<response>

<message>

 

Declined Transaction report result = 485 - Invalid billing date

000

Approved

 

 

R6.1

 

 

 

<authorization>

<recurringRequest>

<subscription>

<planCode>

(parent element)

(parent element)

(parent element)

INVALID_PLAN

<responseCode>

<responseMessage>

 

 

472

Invalid plan code

 

 

R6.2

 

 

 

 

 

 

 

 

 

 

<updateSubscription>

<subscriptionId>

<billToAddress>

<name>

<addressLine1>

<city>

<state>

<zip>

<country>

<email>

<phone>

(parent element)

1111111111

(parent element)

John

900 Chelmsford St.

Lowell

MA

01781

US

john@gmail.com

8559658965

<response>

<message>

 

Declined Transaction report result = 475 - Invalid Subscription Id

 

 

 

 

 

 

 

000

Approved

 

 

 

 

 

 

 

 

 

R6.3

<authorization>

<recurringRequest>

<subscription>

<planCode>

<startDate>

(parent element)

(parent element)

(parent element)

Value from R1.1

2000-04-04

<recurringResponse>

<responseCode>

<responseMessage>

 

 

(parent element)

482

Invalid start date

 

 

R7.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<authorization>

<recurringRequest>

<subscription>

<planCode>

<createAddOn>

<addOnCode>

<name>

<amount>

<startDate>

<endDate>

<createDiscount>

<discountCode>

<name>

<amount>

<startDate>

<endDate>

(parent element)

(parent element)

(parent element)

Value from R1.6

(parent element)

SSL_ADDON

Additional Service

1000

2013-08-30

2050-08-30

(parent element)

PROMO_DISCOUNT

Special Offer

1000

2013-08-30

2050-08-30

<recurringResponse>

<responseCode>

<responseMessage>

 

 

 

 

 

 

 

 

 

 

 

 

 

(parent element)

470

Approved - Recurring

Subscription Created

 

 

 

 

 

 

 

 

 

 

 

 

R7.2

 

 

 

 

 

 

 

<updateSubscription>

<subscriptionId>

<createAddOn>

<addOnCode>

<name>

<amount>

<startDate>

<endDate>

(parent element)

Value returned in R7.1 response

(parent element)

SSL_ADDON

Additional Service

1000

2013-08-30

2050-08-30

<recurringResponse>

<response>

<message>

 

 

 

 

Declined Transaction report result = 476 - Add-on code already exists

(parent element)

000

Approved

 

 

 

 

 

R7.3

 

 

 

 

 

 

 

<updateSubscription>

<subscriptionId>

<createDiscount>

<discountCode>

<name>

<amount>

<startDate>

<endDate>

(parent element)

Value returned in R7.1 response

(parent element)

PROMO_DISCOUNT

Special Offer

1000

2013-08-30

2050-08-30

<response>

<message>

 

 

 

 

Declined Transaction report result = 486 - Discount code already exists

000

Approved

 

 

 

 

 

 

R7.4

 

 

 

 

 

<updateSubscription>

<subscriptionId>

<updateAddOn>

<addOnCode>

<name>

<amount>

(parent element)

Value returned in R7.1 response

(parent element)

INVALID_ADDON_CODE

Extra Features

1000

<response>

<message>

 

 

Declined Transaction report result = 478 - No matching Add-on code for the subscription

478

No matching Add-on code for the

subscription

 

 

 

R7.5

 

 

 

 

 

 

 

<updateSubscription>

<subscriptionId>

<updateDiscount>

<discountCode>

<name>

<amount>

<startDate>

<endDate>

(parent element)

Value returned in R7.1 response

(parent element)

INVALID_DISCOUNT_CODE

Special Offer

1000

2013-08-30

2050-08-30

<response>

<message>

 

 

 

 

Declined Transaction report result = 480 - No matching Discount code for the subscription

480

No matching Discount code for the

subscription

 

 

 

 

 

R8.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<authorization>

<recurringRequest>

<subscription>

<planCode>

<createAddOn>

<addOnCode>

<name>

<amount>

<startDate>

<endDate>

<createAddOn>

<addOnCode>

<name>

<amount>

<startDate>

<endDate>

(parent element)

(parent element)

(parent element)

Value from R1.6

(parent element)

SSL_ADDON

Additional Service

1000

2013-08-30

2050-08-30

(parent element)

SSL_ADDON

Additional Service

1000

2013-08-30

2050-08-30

<recurringResponse>

<response>

<message>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(parent element)

477

Duplicate Add-on codes in request

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R8.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<authorization>

<recurringRequest>

<subscription>

<planCode>

<createDiscount>

<discountCode>

<name>

<amount>

<startDate>

<endDate>

<createDiscount>

<discountCode>

<name>

<amount>

<startDate>

<endDate>

(parent element)

(parent element)

(parent element)

Value from R1.6

(parent element)

PROMO_DISCOUNT

Discount

1000

2013-08-30

2050-08-30

(parent element)

PROMO_DISCOUNT

Discount

1000

2013-08-30

2050-08-30

<recurringResponse>

<responseCode>

<responseMessage>

 

 

 

 

 

 

 

 

 

 

 

 

 

(parent element)

481

Duplicate discount codes in request

 

 

 

 

 

 

 

 

 

 

 

 

 

R9.1

 

 

 

 

 

 

<authorization>

<card>

<type>

<number>

<expDate>

<recurringRequest>

<subscription>

<planCode>

(parent element)

(parent element)

MC

5112010100000002

0721

(parent element)

(parent element)

Value from R1.6

<recurringResponse>

<responseCode>

<responseMessage>

 

 

 

 

 

(parent element)

471

Parent transaction declined - Recurring subscription not created

 

 

 

 

R10.1

 

 

 

<cancelSubscription>

<subscriptionId>

 

 

(parent element)

Value returned in R7.1 response

 

 

<recurringResponse>

<subscriptionId>

<response>

<message>

(parent element)

Submitted value

000

Approved

R11.1

 

 

<updatePlan>

<planCode>

<active>

(parent element)

Value from R1.2

false

<response>

<message>

 

000

Approved