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:
-
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. -
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. -
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. -
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.
-
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. -
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. -
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. -
Submit an
updateSubscription
transaction for Order Id R3.3. This transaction updates an existing subscription, changing the billing date. -
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. -
Submit an
updateSubscription
transaction for Order Id R4.2. This transaction updates an existing subscription with a new credit card number. -
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. -
Submit an
updateSubscription
transaction for Order Id R5.2. This transaction updates an existing subscription with new billing information. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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. -
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 -
Submit an
cancelSubscription
transaction for Order Id R10.1. Verify that the transaction receives an approval code in the response message. -
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 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 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
|