Worldpay Ecomm cnpAPI Reference Guide APIV12.13 V2.18
Worldpay Ecomm cnpAPI Reference Guide APIV12.13 V2.18
May 2020
API Release: 12.13
Worldpay, the logo and any associated brand names are trademarks or registered trademarks of FIS and/or its affiliates in the US, UK or other
countries. All other trademarks are the property of their respective owners and all parties herein have consented to their trademarks appearing in
this manual. Any use by you of the trademarks included herein must have express written permission of the respective owner.
Copyright © 2003-2020, FIS and/or its affiliates - ALL RIGHTS RESERVED.
CONTENTS
About This Guide
Intended Audience .................................................................................................................... xxiii
Revision History ........................................................................................................................ xxiii
Document Structure .................................................................................................................xxviii
Documentation Set ..................................................................................................................xxviii
Typographical Conventions ....................................................................................................... xxx
Contact Information................................................................................................................... xxxi
Chapter 1 Introduction
The cnpAPI Data Format .............................................................................................................. 2
Communications Protocols ..................................................................................................... 2
General XML Coding Requirements ....................................................................................... 3
Other XML Resources ............................................................................................................ 4
Batch Transaction Processing ...................................................................................................... 5
Recommended Session File Size ........................................................................................... 5
Multiple Daily Delivery............................................................................................................. 5
Payment Integration Platform (cnpAPI SDKs) .............................................................................. 7
Duplicate Transaction Detection ................................................................................................... 8
Batch Duplicate Checking....................................................................................................... 8
Batch Dupe Checking for Dynamic Payout Funding Instructions...................................... 9
Online Duplicate Checking...................................................................................................... 9
Coding for Report Groups........................................................................................................... 10
Additional/Alternate Methods of Tagging Transactions ....................................................... 11
Recovery..................................................................................................................................... 12
Authorization/Sale Recycling ................................................................................................ 12
Recycling Engine ........................................................................................................... 12
Account Updater Service ..................................................................................................... 14
Match Back ..................................................................................................................... 15
Merchant Requirements.................................................................................................. 16
Account Updater Features .............................................................................................. 17
Recurring Engine ....................................................................................................................... 18
Payment Plans...................................................................................................................... 18
Subscriptions ........................................................................................................................ 19
Add Ons and Discounts .................................................................................................. 21
Recurring Reports................................................................................................................. 21
Transaction Types and Uses ................................................................................................ 22
Issuer Insights............................................................................................................................. 24
Issuer Insights Secure Scheduled Report............................................................................. 24
This manual serves as a reference to the cnpAPI transaction formats used for payment processing with
FIS. It also explains how to perform unattended transaction testing and attended certification testing with
Worldpay.
Intended Audience
This document is intended for technical personnel who set-up and maintaining payment processing using
the cnpAPI format.
Revision History
The revision history of this document is as follows:
Doc.
Version Description Location(s)
2.17 Changed the location attribute to an element and added it to all Chapters 3 and 4
transaction type response messages.
Removed the "Not generally available..." Note from the Chapter 4
lodgingInfo element and 12 child elements.
Changed Same Day Funding daily limit from $25,000 to $100, 000. Appendix D
2.16 Removed 001 response code from Auth Reversal example Chapter 3
Doc.
Version Description Location(s)
2.15 Added Response Codes 980 and 651 through 670. Appendix A
Clarified note in test 43. Chapter 2
Removed test 60. Chapter 2
2.14 Added info about the new location attribute for Online responses. Chapters 3 and 4
Added a Table for subsequent transactions in a Stored Credentials Chapter 4
stream to multiple element pages.
Added Note about stripping/padding to accNum and routingNum. Chapter 4
Added Note about Mastercard 3DS Result Codes. Also, added info Appendix A
about Response Codes 945 and 046.
2.12 Modified results for tests 100 and 100 to reflect Chapter 2
extentedCardResponse element inclusion.
2.11 Corrected comments about supported card brands for CoF. Chapters 1 and 4
Added info about multiple daily deliveries of settlement transactions. Chapters 1 and 3
Added note about 20K character limit for Online request submitted by Chapter 3 and Appendix A
merchants using Open Access (i.e., Transact).
The duration element has a maxLength of 2 for Visa transactions. Chapter 4
Added info about the accountUpdateSource and Chapter 4
skipRealtimeAU elements.
Added response codes returned in the extendedCardResponse. Chapter 4
Added a new response codes: 507 related to account updates and Chapter 4 and Appendix A
740 related to the Visa duration limit noted above.
Corrected Visa card number in Table D-3. Appendix D
Doc.
Version Description Location(s)
2.8 Added certification test that returns the accountRangeId element. Chapter 2
Removed Notes from Dynamic Payout transactions stating that you Chapter 4
could not use both Online and Batch transactions.
Added Response Code 564. Appendix A
Added information about Dynamic Payout by direct merchants, Chapter 4 and Appendix D
including new transaction types and examples.
2.6 Removed Partial Approval bullet from Healthcare Card section. Chapter 1
Changed test card number in Table 2-10 (orderId Sale111111). Chapter 2
2.4 Added Amazon Pay info and Cert tests. Chapters 1 and 2
Doc.
Version Description Location(s)
2.0 Applied new Worldpay template and other related updates. All
Fixed broken link to Pre-live self-provisioning site. Chapter 2
Removed "not GA" Note about Online Funding Instructions. Appendix D
Corrected definition of advancedFraudResults, which stated all child Chapter 4
elements are required, but should be all optional.
NOTE: The schema changed from V12.5 to V12.6, but we did not None
introduce any new elements. The change involved one item moving
between schema files without impacting any features.
1.7 Updated info about using stored credentials for Apple Pay and Chapter 1
Google Pay.
Added info about expanded capability of the Sandbox. Chapter 2
Corrected results for test Net_Id3. Chapter 2
Added note to totalHealthcareAmount. Chapter 4
Added new elements and cert tests for passing encrypted PAN and Chapters 2, 3 and 4
CVV in a Register Token Request.
Added new Response Code; 540 - Hard Decline - Decryption Failed. Appendix A
1.6 Added info about new standalone Fraud Check capabilities. Chapter 1
Removed tests 3DS17, 3DS18, and 3DS19 from the guide. Chapter 2
Added info about AmEx SafeKey (3DS) to element definitions. Chapter 4
Doc.
Version Description Location(s)
1.4 Added testing information for Visa Stored Credential scenarios. Chapter 2
Added new elements to support Preferred Debit Network. Chapters 3 and 4
Added info about new accountRangeId element. Chapters 3 and 4
Corrected allowed length of approvedAmount element. Chapter 4
Added webSessionId to advancedFraudChecks structure. Chapter 4
Added numTranslateToLowValueTokenRequests attribute to Chapter 4
batchRequest structure.
Changed deadline for Same Day Funding from 12:00 PM ET to Appendix D
11:00 AM ET.
1.3 Replace Android Pay info with Google Pay info Chapters 1 and 2
Updated the document for schema V12.2, including a new message Chapters 3 and 4
type for retrieving a low value token for a high value token, new
elements to support lodging transactions, and new elements for
standalone fraud checks. The lodging and token translate features
are not yet available for general use.
1.0 Initial release of cnpAPI Reference Guide for schema V12.0. This N/A
version eliminates "litle" from all element names, as well as removing
several unused/deprecated element.
Document Structure
This manual contains the following sections:
Chapter 1, "Introduction"
This chapter provides an introduction to transaction processing using cnpAPI.
Documentation Set
For additional information concerning the Worldpay application, see any of the following guides in the
documentation set:
• iQ Reporting and Analytics User Guide
• Worldpay eComm Chargeback API Reference Guide
• Worldpay eComm Chargeback Process Guide
• Worldpay eComm Partner Integration Overview Guide
• Worldpay eComm PayPal Integration Guide
• Worldpay eComm PayFac API Reference Guide
• Worldpay eComm PayFac Portal User Guide
• Worldpay eComm PayFac Integration Overview Guide
Typographical Conventions
Table 2 describes the conventions used in this guide.
Convention Meaning
Italicized text Italic type in text indicates the name of a referenced external
document.
blue text Blue text indicates either a hypertext link or an element name (in
xml examples).
Contact Information
This section provides contact information for organizations within Worldpay.
Chargebacks - For business-related issues and questions regarding financial transactions and
documentation associated with chargeback cases, contact the Chargebacks Department.
Telephone 1-844-843-6111
Technical Support - For technical issues such as file transmission errors, email Technical Support. A
Technical Support Representative will contact you within 15 minutes to resolve the problem.
E-mail [email protected]
E-mail [email protected]
E-mail [email protected]
Technical Publications - For questions or comments about this document, please address your feedback to
the Technical Publications Department. All comments are welcome.
E-mail [email protected]
The cnpAPI data format supports two types of transaction submission methods: Online and Batch. With
the Online method, you submit each transaction independently and receive a response in real-time.
Typically, merchants use the Online method for Authorization transactions, as well as transactions
available only via Online (for example, Void). The Batch method enables you to submit multiple
transactions simultaneously in a single Session file. Worldpay recommends the Batch method for all
transaction submissions except Authorizations and the transaction available only via Online.
This chapter provides an overview of the cnpAPI data format, including some basic XML coding
requirements. Also discussed are the advantages of using batch processing, duplicate transaction
detection, report groups, Value Added Services, and supported transaction types.
The topics discussed in this chapter are:
NOTE: Although the Worldpay eComm platform currently supports both TLS 1.1 and TLS 1.2,
Worldpay strongly recommends the use of TLS 1.2 to ensure the best encryption security.
Also, Worldpay eComm supports both HTTP/1.0 and HTTP/1.1, but recommends the use of
HTTP/1.1.
The Worldpay eComm platform supports the following ciphers for the TLS 1.2 encryption protocol:
Be sure to review data provided by customers for special character handling. For example, an
address of "4th & Main," must be rewritten as "4th & Main" (including quotes) before being
submitted via XML. Failure to quote this type of input causes rejection of XML submissions due to
syntax errors.
“ quotation "
‘ apostrophe '
Batch processing involves a group of transactions submitted in a single file. In the case of a cnpAPI
Batch, the parent or root element is the <cnpRequest> element. A single <cnpRequest>, referred to as
a Session, can contain many batches and each batch can contain multiple transactions. We recommend
that you use Batch processing for all transaction types except Authorizations and Voids (Online only).
Some of the advantages of using Batch processing are:
• Better Performance - We optimize batch processing by processing multiple transactions in the batch
simultaneously. This allows you to process thousands of transactions quickly without writing
complicated logic or managing complicated processes.
• Easier Reconciliation - When processing a batch, all transactions within that batch post on the same
day. In the case of Online transactions, you could submit two transactions at the same time and one
could post today and the other tomorrow. This can cause confusion in your accounting process.
• Easier Error Recovery - A batch processes as a single unit, thus if you experience any system or
communication issue while processing a batch, you can easily determine if the file was processed.
With Online transactions, determining which individual transactions were not processed can be more
difficult.
three-hour window, you must send a Credit transaction to make the cardholder whole. Similarly, you will
have three hours to request us to discard a full Batch file with deposits.
There are two possible cases:
Case 1: End of Merchant Fiscal Day (or merchant Cutoff) Void Window
The three-hour window for Voids does not apply to the end-of-day delivery. This is how the system works
now and will continue to work. If a your cutoff time is 11 p.m., you cannot void a transaction after 11 p.m.
So, if your cut-off time is 11:00 PM and you submit a settlement transaction any time after 8:00 PM, you
will have less than three hours to Void the transaction.
In order to facilitate integration to the platform, Worldpay provides several language specific SDKs
(Software Development Kits). The developers page on our website (http://www.vantiv.com/developers)
provides links to SDK libraries for several popular languages, including:
• PHP
• Java
• .NET
• Python
NOTE: We discontinued support for the Ruby SDK after version 12.3. Please consult your
Relationship Manager for additional information.
Extensions for:
• Magento
• Opencart
In addition to the SDKs and extensions, Worldpay provides examples of each supported transaction type,
as well as demonstration applications. Once you install the library appropriate to your language, the
Worldpay Sandbox, which functions as an emulator of our production environment, is available to validate
your transaction format.
In order to help you avoid transaction errors, Worldpay performs duplicate transaction checking for both
Online and Batch transaction submissions. While we use a robust duplicate checking methodology, we
cannot guarantee our system will catch all duplicates and bear no responsibility for correcting the impact
of erroneously submitted transactions. This section discusses the different checking methodologies used
depending upon the type of submission.
NOTE: For tokenized transactions, the token is used in place of the card numbers by the Duplicate
Transaction Detection process.
For PayPal transactions a combination of the PayPal Id + the (consumer’s) email is used by the
Duplicate Transaction Detection process.
For transactions submitted using other formats (e.g., PTI, Nabanco, etc.), the logic used to detect
duplicates for these supported, but foreign APIs, is less robust and may miss duplicates in certain
scenarios. Worldpay recommends, for better dupe checking, convert to the cnpAPI format, as soon
as possible.
NOTE: For information about duplicate checking of Dynamic Payout Funding Instructions see Batch
Dupe Checking for Dynamic Payout Funding Instructions on page 9.
For each of these transaction types, the application compares the transaction type, transaction amount,
the <orderId> element from the request, credit card number, and credit card expiration date against
transactions in other Batch processed within the previous five days. If the characteristics of the new
transaction match a previously processed transaction, the system marks it as a duplicate.
The system only performs duplicate detection against valid transactions from the previous five days. For
example, if an Authorization request matches a declined Authorization from the previous day, the system
would not count it as a duplicate, because the declined Authorization was not a valid Authorization.
Also, a Batch must be processed completely to be included in the previous five days of data. For
example, if multiple submitted Batches are processing simultaneously, the system will not compare the
transactions in one batch with the transactions in the other, because neither has completed processing.
For this same reason the system cannot detect duplicate transactions within the same Batch.
If the system detects ten consecutive duplicate transactions or if the number of duplicate transactions is
greater than or equal to 25% of the total transactions in the batch, the system flags the Batch as a
duplicate. When either threshold is met, Worldpay does not process the Batch. If neither threshold is met,
Worldpay continues processing the Batch, including any duplicate transactions.
Duplicate checking for funding instructions takes place at the Batch level. The system compares a
submitted Batch of instructions to other Batches submitted and accepted on the same day. If a submitted
Batch has the same totals and counts as a Batch accepted on the same day, the system rejects the new
Batch as a duplicate. If you resubmit a previously rejected Batch, it will not fail dupe checking, because
the initial submission was not accepted and is not included in dupe checking comparisons.
NOTE: If you believe we rejected a funding instruction Batch in error, please contact your Partner
Account Manager. If necessary, we can disable the dupe check feature for a particular Batch.
NOTE: While it is uncommon, under certain circumstances network latency may cause a duplicate
Sale transaction to go undetected. This can occur if you submit a second, duplicate Sale transaction
while the response from the network for the Authorization portion of the first transaction is sufficiently
delayed such that the first Sale has not been recorded as a valid transaction in the system.
If you elect to submit Online Sale transactions, Worldpay recommends a timeout setting of not less
than 60 seconds to reduce the chances of undetected duplicate Sale transactions.
If the system determines a transaction to be a duplicate, The duplicate transactions appears in the
Declined Transaction report with a Response Reason Code of 251 - Duplicate Transaction. You can
access this report in Worldpay eComm iQ or via the Worldpay eComm Secure Scheduled Reports. The
iQ version provides information in near real-time, while the SSR version runs daily, providing information
for the transaction submitted the previous day.
NOTE: If you do not receive a response for a submitted transaction, Worldpay recommends you
use the queryTransaction to determine the status of the original transaction (see Status Query
Transactions (Online Only) on page 286).
You use Report Groups (reportGroup attribute) to separate your transactions into different categories,
so you can view the financial reports by your specific report group names. If you are unsure what
groupings to use, your Relationship Manager can help you determine the best practice for your business.
CAUTION: Creation of an excessive number of Report Groups (in excess of 250) will impact the
amount of time require to compile various reports in the iQ. Report Groups are intended to allow you
to segregate transactions by logically grouping them into the different segments of your business.
Report Groups are not intended to track sales or marketing programs that exist for limited times. For
this type of tracking, Worldpay provides other transaction tagging methods detailed in
Additional/Alternate Methods of Tagging Transactions on page 11.
NOTE: The reportGroup attribute is case and space sensitive. A reportGroup = “Picture
Frame” is a different report group than a reportGroup = “pictureframe”.
The plus sign next to the Domestic Business report group signifies that there are child groups present.
When fully expanded (see Figure 1-2), the iQ shows a report group hierarchy with information for the
Domestic Business group further separated into Service A and Service B groups and Service A
containing two additional child groups. If you find it necessary to establish this type of nested hierarchy,
your Implementation Consultant will assist you.
NOTE: The transaction tagging elements described above appear in the exported Session and
NSS by Transaction reports. They are also visible within the iQ in the new Transaction Detail
reports.
1.6 Recovery
Recovery is a bundle of services that include both Account Updater and Recycling Engine. By combining
these two managed services into a single bundle, Worldpay simultaneously increases your approval
rates, optimizes customer lifetime value, and improves your cash flow, while reducing the cost of
implementing the individual features separately in terms of IT resources. For additional information about
the capabilities included in this bundle, please refer to Recycling Engine on page 12, and (AAU) Account
Updater Service on page 14.
The Recycling Engine is a managed service that automatically retries declined authorization attempts on
your behalf. It requires little or no IT investment on your part. Also, implementing the Worldpay service
removes the need to plan your own recycling strategy.
Recycling Engine has the following benefits:
• Increases approval rates
• Shortens time to approval, improving cash flow
• Reduces the number of authorization retries
• Lowers the risk of account/service cancellation
In order to determine the most effective recycle timing, Worldpay performs statistical analysis of past
recycling attempts across our entire merchant portfolio. This analysis examines many factors, including
method of payment, response codes, and transaction amount among others, to determine the optimum
intervals between attempts to obtain a successful authorization. When you receive a declined
Authorization, the system automatically queues the transaction for a retry at a designated time. Recycling
of the Auth continues until it is either successful or the algorithm determines that it is no longer
advantageous to retry.
NOTE: For Visa transactions, the Recycling Engine will retry declined Authorizations a maximum of
4 times within 16 days, per Visa regulations. For Mastercard, American Express, and Discover
transactions, we retry declined Authorizations a maximum of 7 times within 27 days.
Worldpay provides the results of the recycling efforts to you in a Batch posted daily to your Worldpay
sFTP account. This file contains transactions that either approved or exhausted the recycling pattern on
the previous day. If you submit an Authorization for a transaction in the recycling queue, Worldpay returns
the response from the last automatic recycling attempt. To halt recycling of a particular transaction,
submit either an Authorization reversal transaction, if the original transaction was an Auth, or a Void
transaction, if the original transaction was a Sale.
Response
Code Message Recycling Behavior
213 Pickup Card - Lost Card Only recycled if card repair information is
available.
214 Pickup Card - Stolen Card Only recycled if card repair information is
available.
301 Invalid account number Not recycled for Mastercard, unless updated
account information is available.
309 Restricted Card - Prepaid Card Filtering Only recycled if card repair information is
Service available.
312 Restricted Card - International Card Filtering Only recycled if card repair information is
Service available.
315 Restricted Card - Auth Fraud Velocity Only recycled if card repair information is
Filtering Service available.
318 Restricted Card - Auth Fraud Advice Only recycled if card repair information is
Filtering Service available.
319 Restricted Card - Fraud AVS Filtering Only recycled if card repair information is
Service available.
Response
Code Message Recycling Behavior
358 Restricted by due to security code mismatch Only recycled if card repair information is
available.
550 Restricted Device or IP - ThreatMetrix Fraud Only recycled if card repair information is
Score Below Threshold available.
Transaction Signature
The Recycling Engine analyzes each Authorization or Sale request message to determine if it is a new
request. The result of the analysis determines if the transaction should be added to the recycling pool
upon decline or if the system should intercept the transaction to prevent a duplicate transaction entering
the recycling pool. To perform the analysis, the system checks the transaction signature. Depending upon
your configuration, the transaction signature can be:
• Value of the <recycleId> element
• Value of the <orderId> element
• Values of the <orderId>, <number>, and <amount> elements
NOTE: If you submit a transaction with the identical signature, but containing new information (for
example, a new card number), the system updates the transaction in the recycling pool with the new
info and continues to recycle.
the update information, as well as delays in or lost revenue, higher Authorization expenses, and possibly
chargebacks when old account information is used.
The Account Updater service shifts the workload of obtaining and maintaining updated account
information to Worldpay. Utilizing configurable scheduling algorithms, we initiate account update requests
on your behalf and then store the updated card information for use in future transactions. You simply
submit billing transactions normally and, if necessary, Worldpay updates the transaction with the stored
card information before submitting it to the networks for authorization. This fully managed service requires
no code update on your systems.
Next Scheduled
AU Request
If you decide you wish to have the updated card information returned to you, Worldpay offers the Match
Back option. In this case, you can opt to receive updated information either in a Batch deposited to the
merchant sFTP account, or in the XML transaction response messages. Once you update your systems,
you can resubmit the failed transaction with the new card information. If, after receiving an update, you
submit a transaction with the old information, systems detect that you are using the old data and update
the transaction for you prior to submitting it to the networks for authorization.
Please consult your Relationship Manager for additional information and configuration options.
Next Scheduled
AU Request
(Next
Payment)
Submit Submit for Auth Auth
Transaction
w/New Info
In order to use the Account Updater service, you must first apply for membership to the following:
• Mastercard Automatic Billing Updater
• Visa Account Updater
• Discover Account Updater (not required by Discover for Worldpay acquired merchants)
Your Account Updater Welcome Kit includes the required application forms. If you have any questions
about these forms, contact your Relationship Manager, who can walk you through the application
process. Approval from Visa and Mastercard typically takes between 10-15 business days. Normally,
merchants are approved without issue; however, you can be declined for a variety of reasons. For
example, merchants on a risk mitigation program typically are not accepted.
NOTE: Visa does not allow merchants with SIC numbers 5962, 5966, 5967, or 7995 to participate
in their Account Updater service. Mastercard has no restrictions against any specific MCC numbers.
The Account Updater service can include the following features depending upon the implementation
option you select:
• Worldpay initiates requests for updated account information to card networks based upon your billing
cycle.
• Worldpay initiates requests for updated account information following certain failed Authorization
attempts.
• All updated card information stored (per merchant) in our secure database.
• Automatic repair/replacement of outdated information with updated information in new
Authorization/Sale transaction submissions.
• Return of the updated account information in the cnpAPI response message when auto-repair occurs.
• Maintenance of card information history, so that the system can repair a card even if multiple updates
have occurred during the card's billing lifecycle.
• All linked (to an Authorization) transactions will use the updated account information from the repaired
parent transaction, including Captures, Refunds, and Reversals. If a re-Auth is needed on an
attempted capture due to an expired authorization, the system uses the updated account information.
• Integration with Vault for merchants utilizing Worldpay’s tokenization solution.
• Return of Extended Response Codes in the cnpAPI response messages.
The Recurring Engine is a managed service that relieves the burden of developing an in-house billing
solution for merchant engaged in installment or recurring transactions. This powerful, but flexible service
allows you to create virtually any payment Plan required by your business model, whether it is part of a
predetermined campaign or a marketing test, and then apply the Plan to customers as part of the
standard Authorization or Sale transaction.
The Recurring Engine provides the following benefits:
• Reduced Infrastructure Costs - since you do not need to program your own solution, you save the
up-front development cost, as well as ongoing maintenance expenses.
• Reduced Labor - once you create a Subscription in the Recurring Engine via a standard
Authorization or Sale transaction, no further action is required for the life of the Subscription.
• Integration with other Worldpay Value Added Services - if you include the Recovery Services
(Account Updater and Recycling Engine) as part of your implementation, you eliminate any concerns
(and reduce expenses) associated with issues such as account number changes and recycling of
declined payments.
• Flexible Plans - You can define the billing interval (weekly, monthly, quarterly, etc.), number of
payments (including open ended schedules), amount of payments, as well as trial periods within a
Plan. To add flexibility you can override several of these settings and set a specific start date at the
individual Subscription level.
• Flexible Creation of Discounts - if you wish to offer a discount to selected customers, simply include
the information at the time of the Subscription creation, or add it anytime afterward by updating the
Subscription.
• Flexible Creation of Add Ons - similar to a discount, you can apply changes for additional services
at the time of the Subscription, or anytime afterward.
• Integrated Reporting - in addition to the normal revenue reconciliation information available in the iQ
Reporting and Analytics platform, there are a number of recurring specific reports that allow you to
better analyze your revenue stream associated with recurring payment plans and strategies.
As part of the Plan, you can also specify trial period. You want to have longer trials for longer Plans, so for
either 1-year Plan, there is a 1 week trial, for either 2-year Plan there is a 2 week trial, and for the 3-year
Plans, a 1 month trial. Below is a cnpAPI example transaction to create the 3_Year_Monthly Plan.
1.7.2 Subscriptions
Subscriptions marry a customer order to a particular payment Plan and initiate the Recurring Engine to
manage your future billing. You create a Subscription using either an Authorization or a Sale transaction.
In the Auth/Sale you simply include a <recurringRequest> element to initialize the Subscription using
a named Plan and set the start date for the first recurring bill. If you do not include a start date, the
Recurring Engine uses the current date for the first payment.
If the recurring bill had an associated set-up or one-time fee use a Sale transaction. The amount of the
Sale transaction would represent that fee, whereas the amount of future recurring payments are defined
in the Plan. If you use an Authorization to create the Subscription, the transaction would normally be a $0
Auth (or small amount followed by a reversal) and would include the billing information for Address
Verification.
As part of the Subscription creation, you can also override both the number of payments and the amount,
as well as include Add Ons and Discounts (discussed in the next section). The overrides give you a
granular control to modify a standard payments Plan for a particular consumer without creating additional
Plans. For example, if you offered a 1-year Plan with monthly payments as shown in the previous section,
you could allow a consumer to complete their payments in 10 months instead of a year. In this case you
would override the number of payments defined in the Plan (12) with 10 payments, while increasing the
amount of each payment from $50 to $60.
Occasionally, you might wish to modify a Subscription with either a Discount or an Add On without
creating a new Plan that has limited use. A Discount reduces the recurring amount for one or more
payments, while an Add On increases the payments in return for an added service or item. You can apply
either of these payment modifications at the time you initialize the Subscription or anytime afterward by
updating the Subscription. In both cases you define the start date, end date, and amount of the
Discount/Add On.
For example, suppose as part of your standard offering, your customers received 2GB of cloud-based
storage. You also offer additional storage in 2GB blocks for $10 each. One of your customers wants an
additional 4GB of storage for the 8 months remaining on his contract and you are discounting the first
month at 50%, or $10. The example below show the updateSubscription transaction with the Add On
and Discount.
<subscription>
Create Add On <createAddOn>
Or
<updateSubscription>
<createAddOn>
<updateSubscription> Used to modify one or more of the
Update Add On parameters associated with the Add On.
<updateAddOn>
<updateSubscription> Used to delete an Add On charge from
Delete Add On the associated Subscription.
<deleteAddOn>
<subscription>
<createDiscount>
Create Discount
Or
<updateSubscription>
<createDiscount>
Issuer Insights provides you additional card/transaction, performance descriptive data, allowing you to
understand the differences among Issuers and card products, and identify trends that may impact future
transactions. Currently, Worldpay bundles four feature sets into Issuer Insights: the Issuer Insights Secure
Scheduled Report, Real Time Indicators (i.e., Prepaid Indicator, Affluence Indicator, Issuer Country
Indicator, Card Type Indicator), Network Response Data, and the Insights Analytics Dashboard.
Studies show that branded prepaid cards are growing in popularity with consumers. These cards are
available in the form of non-reloadable Gift cards, Consumer Rebate/Incentive cards, and Teen cards
among others. The Prepaid Indicator feature acts to determine if the submitted card is a prepaid card. If
so, the system returns the type element with a value of Prepaid and the availableBalance element
stating the outstanding balance remaining on the card (if available).
Knowing that the card is prepaid at the time of sale, as well as if it is reloadable and the available balance,
is especially useful for merchants engaged in recurring payment, installment payment, or deferred billing
scenarios. Merchants in these situations can use the information made available by this feature to make
intelligent decisions concerning the profitable management of prepaid card usage by avoiding several
factors that may contribute to lost revenue, while taking advantage of other opportunities that may add to
revenue and enhance the customer experience.
For example, one possible situation merchant can avoid is fraudulent deferred/installment payment
purchases made with a prepaid card that does not have enough available balance to cover the
subsequent payments. With the available balance known, merchants can determine if the card can meet
the required payment structure. If the card’s balance does not meet the required threshold, the merchant
can request another payment method, which may result in eliminating fraudsters, while retaining
legitimate customers. If the card is non-reloadable, it is advisable to not accept the card at all for recurring
payments regardless of the available balance.
Another more common situation occurs when the consumer is unaware of the card balance. If the
transaction is rejected due to inadequate balance, perhaps repeatedly, it could result in an unsatisfied
customer and an abandoned purchase. Alternately, the card could have slightly more that the required
balance, which the consumer would spend, if they had the knowledge. If the available balance is
insufficient for the purchase, the merchant can obtain a second or alternate payment method. If the
balance is higher than required for the purchase, the merchant may be able to encourage additional
purchases.
In addition to indicating if the submitted card is a prepaid card and the available balance, this feature
includes information about whether the card is reloadable and the specific type of prepaid card (e.g.,
TEEN, GIFT, PAYROLL, etc.). You can use this information to further refine your sales and marketing
strategies.
Visa, Mastercard, and Discover provide enhanced credit card products for consumers with high
disposable incomes and high card spending. These cards encourage usage by offering the cardholders
additional benefits usually including reward incentives, no pre-set spending limit, higher authorization
approval rates, faster access to a customer service representatives, and dedicated chargeback resolution
support.
Worldpay analysis of payments data indicates that consumers using these cards types typically spend
more per order than consumers using traditional credit and debit cards. The Affluence Indicator feature
provides the ability for merchants to segment their consumers based on the affluence level as determined
by the issuer. Within the cnpAPI Authorization response, consumers using these enhanced card products
are classified either as Mass Affluent or Affluent. Based upon the specific card type, high income
consumers are classified as Mass Affluent, while high income-high spending consumers are classified as
Affluent.
Having this information at the time of authorization, allows merchants the opportunity to adjust their sales
approach to the needs and spending patterns of the consumer, potentially generating additional sales.
Having this information on file for later analysis also may provide the opportunity for targeted marketing
campaigns and future sales.
Knowing the country of the Issuing bank helps you in two respects. From a sales and marketing
standpoint, this knowledge allows you to better analyze the purchasing patterns of your customers based
upon their country of origin. Knowing these customer demographics can allow you to tailor marketing
campaigns to take advantage of this geographic information. Likewise, you can use this information to
analyze the successfulness of tailored campaigns.
The second advantage to having this information readily available is that you can use it to help determine
possible patterns of fraud. With this knowledge in hand, you can use the International Card Filtering
feature to limit your exposure to international fraud originating in particular geographic locations.
The Card Holder Type indicator is an additional data point Worldpay provides as part of Issuer Insights.
This indicator returns an element specifying whether the submitted card is a commercial or consumer
card, providing you with additional data useful when analyzing sales patterns and/or planning marketing
campaigns, such as offering different products/services to a corporate customer as opposed to a regular
consumer.
NOTE: To receive the Extended Network Data elements you must code to Version V11.0 or above.
Data
Element Field Name Type Notes
4 Transaction Amount n 12
15 Settlement Date n4 MMDD format
38 Authorization Identification an 6
Response
39 Response Code an 2
44 Additional Response Data an..25
48 Private Use Additional Data an...999
50 Settlement Currency Code n3 Defines the currency of the settlement
51 Cardholder Billing Currency n3
Code
54 Additional Amounts an...120
63 Reserved Private an...999
104 Transaction Description an...100
116 Reserved for National Use an...999
123 Reserved for Private Use an...999
Just because a credit card network/company returns a valid authorization for a purchase does not always
mean that completing the transaction is in your best interest. There are multiple reasons you may wish to
decline a sale on a particular card at a particular time. In many cases there are indicators that the
transaction could be or likely is fraudulent. Acting to stop these transactions at submission prevents loss,
as well as reducing the number fraud related chargebacks in the future. Worldpay offers a robust fraud
solution, the Fraud Toolkit, to assist you in reducing the number of possibly fraudulent transactions
inflicted upon you by bad actors.
The Fraud Toolkit has three tiers or levels of implementation, each providing more rigorous examination
of transaction properties and data points, as well as valuable information and guidance. The table below
provide an overview of the tool provided at each level. The items highlighted in blue require the inclusion
of a small snippet of code on your checkout page.
AVS Filter X X X
IP Velocity Filter X X X
NOTE: Technically, you can make use of the IP Velocity filter without integrating the code snippet
on your checkout page. Instead you can simply include the originating IP Address that you detect in
your transaction by submitting it as a customAttribute. Please note that this method will likely be
less effective than making use of the ThreatMetrix functionality, which includes IP piercing to
determine the true IP of the consumer’s device.
Many merchants engaged in recurring payment, installment payment, or deferred billing experience some
loss due to fraud schemes that make use of prepaid cards. Consider the case of a consumer using a
prepaid card with a balance of $100 to make a purchase that involves an initial charge of $50 followed by
three installments of $50 each. The authorization would be approved for the initial transaction, and the
card might have adequate balance for an additional charge, but if the consumer was attempting to
defraud the merchant or simply used the card for other purchases, the card may not have sufficient
balance for any additional payments. While the Prepaid Indicator feature provides you with the
information necessary to make a decision at the time of the sale, and to request a secondary or different
payment method, instead you may wish to have Worldpay filter these transactions automatically when
you send the Authorization transaction.
If you elect to use the Prepaid Card Filtering Service, you can select one of two methods of
implementation. Using the first filtering method, our system declines all Authorization and Sale
transactions when the consumer uses a prepaid card. Upon a decline, the system returns a Response
Reason Code of 309 - Restricted Card - Prepaid Card Filtering Service. This method also allows you
to disable the filtering logic on a transactional basis by including the <prepaid> element set to a value of
false, allowing you to accept any prepaid card for these transactions.
The second method of implementing the Prepaid Card Filtering Service is per transaction. To enable the
filter on a particular transaction, set the <prepaid> element to a value of true. This method is useful to a
merchant who offers products with both one-time payments and installment payments. For products
involving a single payment, you may want to allow the use of prepaid cards, while for the product with
multiple payments you may want to filter prepaid cards.
NOTE: Within either implementation method, you can elect to filter all prepaid cards, or only
non-reloadable prepaid cards. Please speak to your Implementation Consultant for additional
information about setting these global parameters.
An examination of your historical fraud data may show a high percentage of fraudulent transactions
originating with certain international cards. You can limit your exposure to this type of fraud by taking
advantage of the International Card Filtering Service. This feature allows you to filter Mastercard and Visa
cards originating in either all foreign countries or selected foreign countries based upon the country of the
card issuer.
If you elect to use this feature, when you submit an Authorization/Sale transaction, the system determines
the country of origin of the card. If the card originates outside the United States and you have elected to
filter all international cards, the system declines the transaction. Likewise, if you have elected to filter a
specific country or countries and the card originates from a designated country, the system declines the
transaction. Upon a decline, the system returns a Response Reason Code of 312 - Restricted Card -
International Card Filtering Service.
You can override your settings on a transactional basis by including the <international> element set
to false when you submit the Authorization/Sale transaction. In this case, the system ignores the filtering
service and processes the transaction normally.
If you elect to use the Chargeback Filter Service, there are two configuration options. You can elect to
filter all transactions using a card for which you received a chargeback, or you can elect to filter only the
subset of transactions for which you received a fraud related chargeback (determine by the associated
chargeback reason code). In both cases, the system checks your historical data to see if you received an
applicable chargeback from the same account within the last 90 days. Upon a decline, the system returns
a Response Reason Code of 308 - Restricted Card - Chargeback.
The Card brands added the 3- or 4-digit security code to act as a verification that the person ordering your
product in a card-not-present environment has physical possession of the card. While this validation can
be a useful anti-fraud tool, typically, many issuing banks do not decline the transaction based upon a
failure to match the security code. Declining the transaction is left to the discretion of the merchant.
NOTE: Since American Express declines the transaction when the security code does not match,
the Security Code No-Match filter does not apply to American Express transactions. Transactions
declined by American Express for a failure to match the security code use the Response Reason
Code of 352 - Decline CVV2/CID Fail.
Similarly, if Visa, Mastercard, or Discover decline a transaction based upon the security code
results, Worldpay does not apply the filter and the transaction response contains the 352 Reason
Code.
If you elect to use the Security Code No-Match Filter Service, the system takes action only if the issuer
approves the submitted authorization/sale transaction, but includes a no-match code for the
CVV2/CVC2/CID card validation check. In this case, the Worldpay declines the transaction with a
Response Reason Code of 358 - Restricted by due to security code mismatch. The system also
issues an Auth Reversal transaction on your behalf to remove the funds hold on the account.
Often, when a person attempts to use a stolen credit card successfully, they will follow the initial purchase
with a number of additional purchases within a short period of time. If you elect to use the Fraud Velocity
Filter, the system filters the transaction based upon the number of previously approved Auth/Sale
transactions plus the number of Auth/Sale transactions declined by another filter, for the same account
within a designated time period. Both the total number of transactions and the time period are configured
in the Worldpay Merchant Profile.
Upon a decline, the system returns a Response Reason Code of 315 - Restricted Card - Auth Fraud
Velocity Filtering Service.
Worldpay maintains a database of Fraud Advice information received from the Visa and Mastercard
networks for transactions you processed in the last 200 days. If you use the Prior Fraud Advice Filter, the
system compares the account information from the new transaction against the database of accounts with
prior Fraud Advice and filters the transaction if there is a match.
Upon a decline, the system returns a Response Reason Code of 318 - Restricted Card - Auth Fraud
Advice Filtering Service.
One of the fraud prevention tools provided by all card networks is an Address Verification System. By
submitting the customer’s address information in the billToAddress section of the cnpAPI message,
you can verify that the address/zip code supplied by the consumer matches the issuer’s records. The card
networks, however, do not decline transactions based upon the failure to match the address or zip code.
Using the AVS Filter, you can filter potentially fraudulent transactions based upon failure to match any of
the following:
• the address
• the zip/postal code
• the address + zip/postal code (ANDed)
• the address or zip/postal code (ORed).
Upon a decline, the system returns a Response Reason Code of 319 - Restricted Card - Fraud AVS
Filtering Service.
Often, card testers or other bad actors submit a number of transaction using multiple cards, but with a
common email address. The only requirement to make use of this filter is that you collect and include the
consumer’s email address with each transaction. We communicate the email address to our fraud
partner, ThreatMetrix, who tracks and analyzes the information. If the filter detects the same email used in
the configured number of transactions within the configured period of time, the system declines new
transactions (using the same email) on your behalf and returns Response Code 550 - Restricted Device
or IP - ThreatMetrix Fraud Score Below Threshold.
Similar to email, card testers or other bad actors often submit a number of transaction using multiple
cards, but with a common phone number. The only requirement to make use of this filter is that you
collect and include the consumer’s phone number with each transaction. We communicate the phone
number to our fraud partner, ThreatMetrix, who tracks and analyzes the information. If the filter detects
the same phone number used in the configured number of transactions within the configured period of
time, the system declines new transactions (using the same email) on your behalf and returns Response
Code 550 - Restricted Device or IP - ThreatMetrix Fraud Score Below Threshold.
The IP Velocity filter is one of the two filter in the Essential tier that requires (see note below) the addition
of a code snippet to your checkout page. This snippet, which you also need to implement for the higher
tiers of Fraud Toolkit, allows our partner, ThreatMetrix, to perform IP interrogation/piercing t determine the
true IP Address of the device originating the order. As with the other velocity filters, if the filter detects the
same IP Address used in the configured number of transactions within the configured period of time, the
system declines new transactions from the same IP Address on your behalf and returns Response Code
550 - Restricted Device or IP - ThreatMetrix Fraud Score Below Threshold.
NOTE: Technically, you can make use of the IP Velocity filter without integrating the code snippet
on your checkout page. Instead you can simply include the originating IP Address that you detect in
your transaction. Please note that this method will likely be less effective than making use of the
ThreatMetrix functionality, which includes IP piercing to determine the true IP of the consumer’s
device.
The Device Velocity filter is the second Essential tier filter in the that requires the addition of a code
snippet to your checkout page. In this case, the snippet allows ThreatMetrix to construct a device
fingerprint of the system originating the order. As with the other velocity filters, if the filter detects the
same device used in the configured number of transactions within the configured period of time, the
system declines new transactions from the same device on your behalf and returns Response Code 550 -
Restricted Device or IP - ThreatMetrix Fraud Score Below Threshold.
NOTE: Filter Rules are defined as part of your Merchant Profile. Please consult with your
Relationship Manager and/or your Implementation Consultant concerning the provisioning of Filter
Rules.
While you can have all submitted transactions flow through the Fraud toolkit, you likely want to exercise a
finer control over the application of the filters based upon a particular product, service or other criteria.
The system provides you the flexibility of restricting which transactions are submitted to the filtering
service and which filters the system applies to which groups. This is accomplished by defining Filtering
Rules.
For each Filtering Rule you first define a subgroup of transactions by selecting one of the following Flow
Selectors: Report Group, Billing Descriptor, orderSource, or MID (for Payment Facilitators, flow control by
MID or order source only). Only one selector can be applied per rule. After selecting a particular Flow
Selector, you then select which filters to have applied to that subset of transactions. You can define the
Filter Rules so that filters are ORed (transaction filtered when any one of the filters conditions met), or
ANDed (transaction filtered when multiple filter conditions met). Table 1-9 defines five rules that a
merchant might define.
Table 1-9 defines five Filter Rules that a merchant might use. These rules would be applied as follows:
• Filters 1 and 2 apply to the subset of transactions that are members of Report Group XYZ and use
the Prepaid and International Filters. Since the Filter Rules are defined separately, the rules are
ORed. So, if a transaction uses either a Prepaid card or a card of International origin, the filtering
occurs.
• Filter 3 applies to the subset of transactions that have an orderSource value set to recurring. Filtering
occurs only if both the criteria for the Prepaid Filter AND the Prior Chargeback Filter are met.
• Filter 4 applies to the subset of transactions that have an orderSource value set to ecommerce.
Filtering occurs only if both the criteria for the Card Velocity Filter AND the Security Code No-Match
Filter are met.
• Filter 5 applies to the subset of transactions that have an Billing Descriptor value set to GoldMember.
Filtering occurs only if both the criteria for the Prepaid Filter AND the International Filter are met.
NOTE: Replace UNIQUE_SESSION_ID with a uniquely generated handle that includes the
Worldpay supplied prefix.
The value for ORG-ID is a Worldpay supplied value.
The pageid tag is not used at this time. The value for PAGE-ID defaults to 1.
For production, replace h.online-metrix.net with a local URL and configure your web server to
redirect to h.online-metrix.net.
To subject a transaction to the advanced fraud checks performed and retrieve the results, you simply
submit the <webSessionId> element as part of your cnpAPI Authorization (or Sale) transaction. This
session Id is the same unique value you assigned and sent to ThreatMetrix when your web page called
the application (designated as UNIQUE_SESSION_ID in the ThreatMetrix Profiling Tags example). When
we receive an Authorization/Sale that includes the <webSessionId>, our system automatically queries
the ThreatMetrix platform for the associated results. The cnpAPI response message includes the
<advancedFraudResults> element containing the score and status and information about any
triggered rules. The following two examples show a standard Authorization transaction, including a
<webSessionId> and a pass response.
<responseTime>2018-05-08T21:36:50</responseTime>
<postDate>2017-03-08</postDate>
<message>Approved</message>
<authCode>000003</authCode>
<fraudResult>
<avsResult>00</avsResult>
<advancedFraudResults>
<deviceReviewStatus>pass</deviceReviewStatus>
<deviceReputationScore>50</deviceReputationScore>
<triggeredRule>FlashImagesCookiesDisabled</triggeredRule>
</advancedFraudResults>
</fraudResult>
</authorizationResponse>
</cnpOnlineResponse>
NOTE: The other possible values for the <deviceReviewStatus> element are fail, review,
unavailable, and invalid_session.
The <deviceReputationScore> value can range from -100 to 100. The resulting pass, fail, or
review value depends upon your profile settings.
The <triggeredRule> element can occur multiple times, once for each rule triggered.
If you wish to retain full control of the decision to accept or decline transactions, Worldpay offers the
option of using the Advanced Fraud Tools in an Information Only mode. In this configuration, you receive
the same information in the response as you would with the full implementation; however, Worldpay will
not decline transactions with a failing score automatically.
If the authorization is declined by the network, you can choose to recycle the transaction or do nothing. If
an authorization with a failing score receives approval from the network, it would be up to you to reverse
the authorization should you decide not to proceed with the transaction. This is similar to the case of an
approved transaction that has a status of Review, but you decide not to proceed. Issuing an authorization
reversal allows you to avoid any misuse of Auth fees otherwise imposed by the card networks.
If you wish to retrieve the Advanced Fraud results without introducing a Authorization or Sale
transactions, use a Fraud Check transaction (see Fraud Check Transaction on page 274). The
standalone Fraud Check also allows you to check various types of account takeover and new account
creation fraud. By submitting the <eventType> element, with or without the <accountLogin>,
<accountPasshash>, and other information, you can check for the following scenarios:
Tokenization is the process by which a reference number, referred to as a token, replaces a credit card
number or Direct Debit account number. Unlike the card or account number, you can store the token on
your system without concern of a security breach exposing critical customer information. Instead,
Worldpay stores the information in a secure vault and accesses it only when you submit a transaction
using the supplied token.
NOTE: You must be enabled for card tokenization to use the Direct Debit tokenization feature.
In the case of credit cards, since you do not store the customer’s account information, the scope of PCI
requirements to which you must comply may be minimized. This may greatly reduce the cost of
compliance and may limit your liability in the event of a breach. You can reduce the requirements further,
as well as the possibility of exposure from a breach, through the use of the Worldpay eProtect. By
sending the card information from your checkout page directly to our systems you eliminate one more
facet of handling the card information.
NOTE: Worldpay recommends you consult your own PCI Compliance and Legal departments to
determine the specific advantages of tokenization for your company.
NOTE: Please refer to the Worldpay eComm eProtect Integration Guide for additional
information about the use of and integration to the Worldpay eProtect value added service.
In a tokenized environment transmission of customer data ideally occurs a single time and the merchant
never stores it locally, as shown in Figure 1-6 for card data. Once account number registration occurs,
using either a registerTokenRequest or by submitting the account number (or low value token, when
using eProtect) with any supported transaction, Worldpay returns a (high value) token. You store the
token locally and use it for all future transactions concerning that account. Worldpay takes responsibility
for storing and safeguarding the account information.
NOTE: The difference between card data flow and Direct Debit data flow is that the entities
upstream of Worldpay are different. The operation remains the same from a merchant standpoint.
NOTE: The use of eProtect allow the account information to come directly to Worldpay, so you only
handle the token.
TABLE 1-10 OmniToken Generation for Common PAN Across different Channels and Merchants
Merchant A - POS 4418 3789 1620 3675 4418 3711 2222 3675
Merchant A - Online 4418 3789 1620 3675 4418 3711 2222 3675
Merchant B - Online 4418 3789 1620 3675 4418 3724 9587 3675
NOTE: The OmniToken shown in the example above make use of the Informative token format,
which preserves the first-6 and last-4 digits.
Generated dynamically, Low-Value tokens have a unique value for each transaction, even if you submit
the same PAN for tokenization multiple times. Low-value tokens utilize additional compensating controls,
such that the token applies only to specific transactions and processing environments. The Worldpay
eProtect RegistrationID is an example of a Low-Value token used for initial data capture of payment card
data in ecommerce and mobile environments. Worldpay eProtect RegistrationID is a transaction-based
token value requested through a low-trust environment over the Internet. The token value is valid only for
24-hours, after which you can no longer use it for payment processing.
There are various attributes, including the length, format and character set, that define the structure of the
card numbers and the tokens that replaces them. For example, all PAN values regardless of length,
conform to the Luhn MOD10 algorithm. Worldpay supports several token format options to meet your
implementation needs. These token formats, while always using the same character set as PANs, range
from a completely random, fixed-length number to a format preserving token that reuses the first-6 and
last-four digits of the PAN. In addition, with the exception of the legacy eComm token version, each token
format is available in either a MOD10 or a MOD10+1 format. The MOD10+1 format allows you to more
easily distinguish a real PAN from a token.
NOTE: The Worldpay eComm Legacy token is only available in a MOD10+1 conforming format.
The table below provides information about the various OmniToken formats available for credit cards.
Since you cannot intermix token formats within a Token Group and your entire organization may be a
single Token Group, you should carefully select the format that best meets your needs. When selecting a
format, you should consider if you need access to the IIN (Issuer Identification Number; formerly known
as BIN), as well as whether you need the last-four digits of the PAN.
Format-Preserved Digits
Name MOD10 Option
First-Six
(IIN) Middle Last-Four
This section provides additional information about the various Worldpay OmniToken formats. In all
examples the randomly generated portion of the token is shown in green.
Tokenized Value 4418 3711 2222 3675 4418 3711 2222643 3675
NOTE: Only existing eComm merchants using the Vault tokenization service can use the Comm
Merchant A form. Other merchants requiring this format should use the Last 4 Preserved 1 token
format.
eProtect Registration ID
The eProtect RegistrationID is a Low-Value token that are merchant specific, dynamically generated, and
unique to each transaction. Each token is 19 digits (numeric) long, MOD10+1 compliant, with no format
preservation, and a lifespan of 24 hours. The eProtect RegistrationID can work in conjunction with any
OmniToken format.
Example: Registration ID
eProtect Checkout Id
The eProtect Checkout ID is a Low-Value token dynamically generated, and uniquely assigned to each
capture of the Card Security Code (CVC, CVV2) for eCommerce customer verification use cases such as
card on file where the merchant has in possession of a Worldpay High-Value token. Each token is 18
digits (numeric) long, MOD10+1 compliant, with no format preservation, and a lifespan of 24 hours. The
eProtect Checkout ID can work in conjunction with any OmniToken format.
Example: Checkout ID
NOTE: You must be token enabled and certified prior to using the feature. Please consult your
Relationship Manager concerning the requirements and details of this process.
There are three ways for you to obtain tokens for account numbers. First, you can submit an existing card
number/Direct Debit account information (account number and routing number) using a Register Token
request. When Worldpay receives this transaction type, we generate a token and return it to you via a
Register Token response (see Register Token Transactions on page 292.) Although you can use this
method to tokenize an account number at any time, it is most useful when initially tokenizing your
customer database. Worldpay recommends that you collect all distinct credit card numbers in your
database and submit the information in one or more large Batch files. When you receive the response file,
parse the returned token information to your database, replacing the card numbers.
The second method involves submitting a supported transaction with the card information. If you are a
tokenized merchant, Worldpay automatically converts the card number to a token and returns the token in
the response message. Typically, you would use this method when taking and submitting a transaction
during the normal course of business. When you receive the response, you store the token instead of the
card information.
NOTE: Once we convert a card number to a token for a particular merchant, subsequent
submissions of the same card number return the same token.
The third method of obtaining a token applies only to merchants using the Worldpay eProtect feature. In
this case, upon submission of an account number via the eProtect API, Worldpay issues a low value
token called a Registration Id. You then submit the Registration Id in an Authorization or Sale transaction
and receive the token in the response message.
If you are new to Worldpay, and have utilized tokens with a previous processor, Worldpay can perform a
bulk token registration on all the card numbers that were vaulted with your previous processor. The
following is an example of the process:
1. During your implementation with Worldpay, you contact your previous processor and request an
encrypted mapping file containing the card and token numbers for your customers. A Implementation
Consultant will work with you and your previous processor to facilitate the secure transfer of this file
without impacting your PCI compliance. The file can be comma-delimited, tab-delimited, or any other
common format.
2. Worldpay performs a bulk token registration of all of the card numbers contained in the file.
3. Worldpay returns a mapping file to your organization containing the old tokens and the new
Worldpay-issued tokens, so that you can update your order processing system.
Note that Worldpay supports token-extractor formats of all major token service providers. Contact your
Implementation Consultant for more information or to initiate this process.
A Direct Debit is an alternative payment method that directly debits a consumer's account via the
Automatic Clearing House (ACH) network in the US or the Electronic Funds Transfer (EFT) service in
Canada. From a merchant’s standpoint offering Direct Debit as a payment method has several
advantages, including a large consumer base in excess of 130 million accounts in the United States and
no interchange fees.
This section provides information about several Worldpay Direct Debit processing features. Please
consult with your Relationship Manager for additional information.
NOTE: Worldpay also supports Direct Debit processing for our merchants doing business in
Canada. We support all Direct Debit transaction types, except Verification and Prenotification
transaction. Please consult your Relationship Manager for additional information.
NOTE: Worldpay makes use of a third party service, Certegy Check Services Inc., for all verification
operations.
The verification service is not supported for Canadian Direct Debits.
The verification service is not available for Payment Facilitators.
You can also initiate an account verification operation as part of an eCheck Sale transaction by setting the
<verify> element to true. In this case, the eCheck Sale transaction is conditional upon the verification
passing. If the verification fails, the sale is not processed.
In the event you elect to perform verification on a transaction and also elect not to proceed with the
transaction based upon a verification failure, you must provide your customer with the following Decline
Notice. You can provide the notice orally, electronically, via e-mail, and/or via U.S Mail, depending upon
the type of transaction. The notice must be substantially as the notice set forth below that contains the
disclosures required under the Fair Credit Reporting Act and instructs your customer how to contact
Certegy directly.
NOTE: If the required language of the Decline Notice changes, Worldpay notifies you of the
change. You must enact the changes within 10 days.
the information and forward the corrected transaction to the ACH network. The cnpAPI response
message to you also contains the updated information for your use in correcting your database.
NOTE: While we always make the NoC information available to you, Worldpay does not support
automatic updating of account information for Payment Facilitators.
NOTE: You track the current state of your transactions, returns, and resubmissions via the iQ User
Interface. Please refer to the iQ Reporting and Analytics User Guide for additional information.
For example, you submitted an eCheck Sale transaction on 29 January that declines for Return Reason
Code R01 - Insufficient Funds. The return occurs on 1 February. With the Auto Redeposit feature enabled
and a preset period of 5 days for the first redeposit, the system automatically generate a resubmission of
the deposit on 6 February. If this transaction also declines for the same reason code on 7 February and
you have a preset time period for the second redeposit of 7 days, the system generates the second
redeposit on 14 February.
NOTE: Prenotification transactions are only supported in cnpAPI V9.1 or above and only in Batch
submissions. Prenotification transactions are not supported for Payment Facilitators or for Canadian
Direct Debits.
When you submit either of the Prenotification transaction types, the system sends an acknowledgment in
the Batch response file. This response file does not provide the results of the prenotification check, but
rather a verification that we received the transaction and it was properly formatted. You receive the results
to the check in the SSR eCheck Notification of Change report. This report is run daily and you can expect
to see the results for submitted prenotification checks by the second or third business day after the
settlement day. The settlement day for a Prenotification transaction is defined as the next business day
after submission to the ACH network. Remember, if the account you are attempting to verify is open and
the account information is correct, the report will not contain an entry for that transaction. The report only
contains NOCs (update information).
Per NACHA regulations, you can submit the eCheck Sale or eCheck Credit transaction on the third
business day after the settlement day; however, there might still be a forthcoming NOC on that day. Due
to the timing of the responses from NACHA, the generation of the reports, and the movement of the
transactions, you should wait until the fourth day after the settlement day to submit the live transaction
unless you receive a NOC earlier. This timing is illustrated in the example below.
1. You submit a Prenotification transaction on Monday prior to your cut-off time.
2. Our system forwards the transaction to NACHA on Tuesday. Note, this makes Wednesday the
settlement day.
3. NACHA responds with a NOC/return, if any, by Thursday night.
4. On Friday, the information from NACHA is processed by our systems.
5. On Saturday morning, the SSR NOC report containing the information is available to you.
6. You can submit the eCheck Sale or eCheck Credit transaction before your cut-off time on Saturday
night. This is the fourth day after settlement, the fifth day after submission.
Worldpay supports Apple Pay for in-app and in-store purchases initiated on compatible versions of
iPhone and iPad, as well as purchases from your desktop or mobile website initiated from compatible
versions of iPhone, iPad, Apple Watch, MacBook and iMac (Apple Pay on the Web).
For in-store transactions, a consumer can use the Near Field Communications (NFC) chip in their device
to make a purchase by simply touching the device to an NFC-compliant terminal. Identity verification is
provided by Touch ID, a fingerprint reading application built into the device. If you wish to allow Apple Pay
transactions from your native iOS mobile application, you must build the capability to make secure
purchases using Apple Pay into your mobile application.
If you wish to allow Apple Pay payments on your desktop or mobile website, your website must be
configured to work with Apple to request authorization from the consumers iPhone or iPad via Touch ID.
See Table 1-14, "Apple Pay on the Web Compatible Devices" for more information.
This section provides an overview of the operation of Apple Pay and Apple Pay on the web, along with
the several methods you can use to submit Apple Pay purchases to the Worldpay eCommerce platform.
The topics discussed are:
• Overview of Apple Pay Operation
• Worldpay Decryption of Apple Pay PKPaymentToken
• Merchant Decryption of Apple Pay PKPaymentToken
• Recurring Payments with Apple Pay
PKPaymentToken. If you have already implemented eProtect in a mobile application, you should use
eProtect for Apple Pay. A second, similar method, which still allows you to submit the PKPaymentToken
without decryption, involves you sending the Authorization/Sale transaction with the PKPaymentToken
key values in a new cnpAPI element structure (see applepay), typically from your server. This method can
be used even if you are not tokenized with Worldpay.
In all of these implementations, your Worldpay Implementation Consultant will provide a CSR (Certificate
Signing Request) you use in your registration process with Apple Pay. The CSR provides Apple Pay with
the public key used for encryption, while Worldpay retains the private key used for decryption.
1.12.2.1 Using the Browser JavaScript API for Apple Pay on the Web
In this scenario, the Worldpay eProtect Customer Browser JavaScript API controls the fields on your
checkout page that hold sensitive card data. When the cardholder clicks the Apple Pay button,
communication is exchanged with Apple Pay via the JavaScript API to obtain the PKPaymentToken.
From this point forward, your handling of the transaction is identical to any other eProtect transaction. The
eProtect server returns a Registration ID (low-value token) and your server constructs the cnpAPI
transaction using that ID. See the Worldpay eComm eProtect Integration Guide for JavaScript and HTML
page examples and more information on using the browser JavaScript API.
Step 1, Step 2, and Step 3 are the same as those outlined in Overview of Apple Pay Operation on page
51. The process after Step 3 is detailed below (and shown in Figure 1-7):
4. Your website sends the PKPaymentToken to our secure server via the JavaScript Browser API and
eProtect returns a Registration ID.
5. Your website forwards the transaction data along with the Registration ID to your order processing
server, as it would with any eProtect transaction.
6. Your server constructs/submits a standard cnpAPI Authorization/Sale transaction using the
Registration ID, setting the <orderSource> element to applepay.
7. Using the private key, Worldpay decrypts the PKPaymentToken associated with the Registration ID
and submits the transaction with the appropriate information to the card networks for approval.
8. Worldpay sends the Approval/Decline message back to your system. This message is the standard
format for an Authorization or Sale response and includes the Worldpay token.
9. You return the Approval/Decline message to your website.
Table 1-14 lists the requirements for your customers’ Apple devices when making purchases via Apple
Pay on the Web.
NOTE: Table 1-14 represents data available at the time of publication of this document, and is
subject to change. See the latest Apple documentation for current information.
FIGURE 1-7 Data/Transaction Flow using Browser JavaScript API for Apple Pay on the Web
In this scenario, your native iOS application performs an HTTPS POST of the Apple Pay
PKPaymentToken using the Worldpay Mobile API for Apple Pay. From this point forward, your handling of
the transaction is identical to any other PayPage transaction. The PayPage server returns a PayPage
Registration ID and your Mobile App (or server) constructs the cnpAPI transaction using that ID.
Step 1, Step 2, and Step 3 are the same as those outlined in Overview of Apple Pay Operation on page
51. The process after Step 3 is detailed below and in Figure 1-8.
4. Your native iOS application sends the PKPaymentToken to our secure server via an HTTPS POST
and eProtect returns a Registration ID. Please refer to the Worldpay eComm eProtect Integration
Guide for additional information.
5. Your native iOS application forwards the transaction data along with the Registration ID to your order
processing server, as it would with any eProtect transaction.
6. Your server constructs/submits a standard cnpAPI Authorization/Sale transaction using the
Registration ID, setting the <orderSource> element to applepay.
7. Using the private key, Worldpay decrypts the PKPaymentToken associated with the Registration ID
and submits the transaction with the appropriate information to the card networks for approval.
8. Worldpay sends the Approval/Decline message back to your system. This message is the standard
format for an Authorization or Sale response and includes the Worldpay token.
FIGURE 1-8 Data/Transaction Flow using the Worldpay Mobile API for Apple Pay
In this scenario, you submit the Apple Pay PKPaymentToken to the Worldpay eCommerce platform using
a new cnpAPI structure (see applepay), typically from your server. As with the previous scenario,
Worldpay decrypts the PKPaymentToken from Apple Pay using the private key.
Step 1, Step 2, and Step 3 are the same as those outlined in Overview of Apple Pay Operation on page
51. The process after Step 3 is detailed below and in Figure 1-9.
4. Your mobile application forwards the PKPaymentToken from Apple Pay, along with other normal
information from the transaction (such as Bill To and Ship To Address), to your order processing
server.
5. You do not decrypt the PKPaymentToken, but rather forward the data to Worldpay in the
Authorization/Sale transaction using the cnpAPI <applepay> element structure instead of <card>
(Server-side API submit) and setting the <orderSource> element to applepay.
6. Using the private key retained by Worldpay, we decrypt the PKPaymentToken and submit the
transaction with the appropriate information to the card networks for approval.
7. Worldpay sends the Approval/Decline message back to your system. This message is the standard
format for an Authorization or Sale response.
8. You return the Approval/Decline message to you mobile application.
FIGURE 1-9 Data/Transaction Flow with Direct Submission of PKPaymentToken via cnpAPI
6. Worldpay detects that this is an Apple Pay transaction and submits the transaction with the
appropriate information to the card networks for approval.
7. Worldpay sends the Approval/Decline message back to your system. This message is the standard
format for an Authorization or Sale response.
8. You return the Approval/Decline message to your mobile application.
FIGURE 1-10 Data/Transaction Flow with Merchant Decryption of Apple Pay PKPaymentToken
Google® makes hundreds of products used by billions of people across the globe, from YouTube and
Chrome to Google Pay and, of course, Google Search. Hundreds of millions of them add payment cards
to their Google Accounts, which they can use to check out from any Google product - without needing to
re-enter their payment info.
With the new Google Pay API, you can enable the same effortless checkout experience for your own
products and services. The new API is an on-line payment method that lets your customers use the cards
they've saved to their Google Account to pay quickly and easily in your apps. and on your websites. By
clicking the Google Pay button, customers can choose a payment method saved in their Google Account
and finish checkout in a few, simple steps.
You can use the Google Pay API to simplify payments for customers who make purchases in Android
applications or on Chrome with a mobile device.
Worldpay supports two methods for merchants to submit Google Pay transactions from Mobile
applications to the eCommerce platform. The preferred method involves you sending certain
Worldpay-specific parameters to Google. The response from Google includes a Worldpay
paypageRegistrationId, which you use normally in your payment transaction submission to Worldpay.
With the alternate method, you receive encrypted information from Google, decrypt it on your servers, and
submit the information to Worldpay in a payment transaction.
This document provides an overview of both methods and includes the following sections:
• Branding Requirements
• Google Pay using eProtect
• Merchant Decryption Method
• Recurring Payments with Google Pay
NOTE: This process assumes you have integrated with Google using the method that returns the
Worldpay low-value token (paypageRegistrationId) from Google following the Full Wallet
request.
1. When the consumer clicks the Google Pay button in your application, the action triggers a
PaymentDataRequest to Google. In the PaymentDataRequest, you must set a new object
IMPORTANT: Use the same orderId value on all calls (i.e., Google, Register Token,
Authorization, Sale, etc.). By using the same orderId, customers can track their orders when using
a Google-provided app.
2. Upon confirmation of the order by the consumer your application initiates a FullWalletRequest to
Google.
3. After receiving the FullWalletRequest from your application, Google submits the card information
to Worldpay eProtect. The eProtect servers return a low-value token (paypageRegistrationId).
4. Google returns the low-value token to your application along with the Full Wallet information.
5. Your applications sends the transaction information to your servers along with the low-value token.
Your servers submit the Auth/Sale transaction to the Worldpay eComm platform. You must set the
orderSource to androidpay in the transaction.
NOTE: Instead of submitting a Auth/Sale transaction, you can submit a Register Token transaction
to convert the low-value token to a Worldpay high-value token. You would then use the high-value
token in subsequent transactions submitted to the eComm platform.
6. Worldpay processes your transaction normally and returns the results along with a high-value token.
FIGURE 1-11 High Level Message Flow for Google Pay using eProtect
3
4
NOTE: The process assumes you have integrated with Google using the method that returns the
encrypted payload from Google following the Full Wallet request.
1. When the consumer clicks the Google Pay button in your application, the action triggers a
PaymentDataRequest to Google. The information returned by Google in the
PaymentDataRequest object may include a masked card number (last-four digits exposed) and
shipping information. The consumer has the option of changing this information. If any info changes,
Google Pay returns an updated PaymentDataRequest object.
2. Upon confirmation of the order by the consumer your application initiates a FullWalletRequest to
Google. Google also returns the encrypted payload. The encrypted payload is a UTF-8 encoded
serialized JSON dictionary with the following keys:
• encryptedMessage (string base64) - an encrypted message containing the payment credentials
• ephemeralPublicKey (string base64) - the ephemeral public key associated with the private key
to encrypt the message
• tag (string base64) - MAC of encryptedMessage
3. Your application sends the encrypted payload along with the transaction information to your server.
4. Your server decrypts the encrypted payload extracting the payment, which is a UTF-8 encoded,
serialized JSON dictionary with the following keys:
• dpan (string (digits only)) - the device-specific personal account number (i.e., device token)
• expirationMonth (number) - the expiration month of the DPAN (1 = January, 2 = February, etc.)
• expirationYear (number) - The four-digit expiration year of the DPAN (e.g., 2015)
• authMethod (string) - the constant 3DS (may change in future releases).
• 3dsCryptogram (string) - the 3DSecure cryptogram
• 3dsEciIndicator ((optional) string) - ECI indicator per 3DSecure specification
FIGURE 1-12 High Level Message Flow for Google Pay using Merchant Decryption
retain the value returned for use in future transactions. When you submit the next and all subsequent
transactions in the recurring/installment stream, set the <orderSource> to recurring or installment as
appropriate, and include the networkTransactionId value in the
<originalNetworkTransactionId> element. For a CoF transaction, set the <orderSource> to
ecommerce and the <processingType> element to either merchantInitiatedCOF, or
cardholderInitiatedCOF (Card on File), as applicable.
Amazon Pay provides consumers a secure, trusted, and convenient method of using their Amazon
account/credentials to make purchases on merchant sites. To do this, Amazon embeds a widget into your
checkout flow that allows the consumer to sign into their Amazon account and select one of their payment
methods, without leaving your site. You receive an token from Amazon Pay, which you submit to
Worldpay in an authorization or Sale transaction. Figure 1-13 provides an overview of the Amazon
Pay/Worldpay message flow.
1. After the consumer signs in and consents to the charge using Amazon Pay, your system
communicates with Amazon Pay receiving a permission ID. The consumer then selects one of the
payment methods saved in the Amazon Pay profile. Your systems again communicates with Amazon
Pay receiving an Amazon Pay token and payment information in return.
2. Your system submits an Authorization or Sale transaction to Worldpay (see Authorization example
below), using the Amazon Pay token (cnpToken element).
3. Worldpay communicates with Amazon Pay to retrieve the PAN information associated with the
Amazon Pay token. We then send the transactional information to the card brands for approval.
4. Worldpay sends the sends the Approval/Decline back to your system.
Today, there are several types of Healthcare accounts that allow participants to use pre-tax money for the
purchase of IRS approved healthcare products and services, such as prescription medications and office
visit payments/co-pays. The most common of these accounts are Flexible Spending Accounts (FSAs),
Health Reimbursement Arrangements (HRAs), and Health Savings Accounts (HSAs). In order to provide
consumers with a more convenient method of making use of these accounts, certain issuers provide
signature based, Mastercard or Visa branded, healthcare payment debit cards.
To facilitate the processing of transactions related to these cards, Worldpay augmented the cnpAPI with
elements specific to Healthcare card purchases. We added the healthcareIIAS element to the
Authorization and (Conditional) Sale transaction types. You use this element and its children to detail the
costs associated with Healthcare related, IIAS approved items purchased by the consumer. The example
below shows an Authorization transaction with IIAS items.
NOTE: The example below includes the dentalAmount element to show all available amount
classifications. Since this is an optional element and has a value of 0 in the example, you can omit it.
Also, note that the visionAmount is not included in the totalHealthcareAmount, since this is a
Visa transaction.
</card>
<cardholderAuthentication>
<authenticationValue>BwABBJQ1gJDUCAAAAAAA=</authenticationValue>
<authenticationTransactionId>gMV75TmjAgk=</authenticationTransactionId>
</cardholderAuthentication>
<allowPartialAuth>true</allowPartialAuth>
<healthcareIIAS>
<healthcareAmounts>
<totalHealthcareAmount>5500</totalHealthcareAmount>
<RxAmount>4000</RxAmount>
<visionAmount>5000</visionAmount>
<clinicOtherAmount>1500</clinicOtherAmount>
<dentalAmount>0</dentalAmount>
</healthcareAmounts>
<IIASFlag>Y</IIASFlag>
</healthcareIIAS>
</authorization>
</cnpOnlineRequest>
NOTE: The information below is not intended as an exhaustive list of the requirements for the
acceptance of Healthcare cards by merchants. While Worldpay may be able to provide some
information, merchants are responsible for the awareness of and adherence to all applicable
regulatory requirements imposed by the Internal Revenue Service, other government agencies, and
other interested parties (for example, Visa, Mastercard, SIGIS, etc.)
• You must become a member of the Special Interest Group for IIAS Standards (SIGIS)
• You must obtain and maintain SIGIS certification
• Merchants, except those with healthcare related MCCs, must have an Inventory Information Approval
System (IIAS) used to identify eligible healthcare purchases as defined and required by the Internal
Revenue Code.
• You must obtain special account numbers from Visa and Mastercard to process these transactions
• You must support data retention and retrieval of line item details for eligible healthcare products
included in Healthcare Card transactions
• You must complete Worldpay Certification Testing for the use of this feature, as well as the Partial
Auth feature.
• For Visa transaction, do not include the visionAmount in the totalHealthcareAmount.
• Transactions must include the IIASFlag element set to Y.
cnpAPI Batch processing supports all transaction types except Voids, eCheck Voids and Private Label
Gift Card reversal transactions, which are handled as Online transactions only. Online processing handles
all transaction types. This section provides a description of each transaction type, information concerning
its use, and any special considerations.
NOTE: For information about Dynamic Payout Funding Instructions please refer to Appendix D,
"PayFac Dynamic Payout".
NOTE: To obtain better interchange rates, you should always perform an AVS check either as a
standalone transaction, or as part of the Authorization/Sale transaction.
If you settle in a currency other than US or Canada, you cannot use partial Authorizations.
While most merchants perform Authorizations as Online transactions, there is no requirement to do
so.
The lifespan of an Authorization depends upon the payment method. Table 1-15 provides information
concerning Authorization lifespans for various card types and alternate payment methods.
Mastercard 7 days
Visa 7 days
Discover 10 days
As long as the authorization has not expired, or the amount exhausted, you can use it repeatedly to fulfill
an order. This would be the case if the Authorization covered multiple items with staggered deliveries. In
this scenario, you would issue a Partial Capture transaction as each item shipped until the order was
completely fulfilled.
NOTE: If you obtain an Authorization through approved vendors for voice and terminal
authorizations, you would use a Capture Given Auth transaction to deposit the funds (see Capture
Given Auth Transaction on page 73).
An AVS Only transaction is a variation of an Authorization transaction that uses the Address Verification
System to enable you to verify that a customer supplied address matches the billing address associated
with the card. To submit an AVS Only transaction, submit an Authorization transaction with the <amount>
element set to 000 and the optional billToAddress element with appropriate child values.
NOTE: To obtain better interchange rates, you should always perform an AVS check either as a
standalone transaction, or as part of the Authorization/Sale transaction.
NOTE: For American Express transactions, the reversal amount must match the authorization
amount. American Express does not allow partial reversals and reversals against remaining
amounts after a partial capture. Attempts to perform these types of reversals result in a Response
Code of 336 - Reversal amount does not match Authorization amount.
For example, consider the following scenario. A customer with a $6,000 credit limit orders a $3,000 stereo
system, but the stereo is a discontinued item. The merchant notifies the customer, but does not perform
and Authorization Reversal. The customer attempts to submit a new order for a $3,001 stereo.
• If the customer uses the same credit card for both orders, the second order could be denied, since
the account’s remaining credit limit is only $3,000.
• If the customer had used the same debit card for both orders, the second order places the customer’s
bank account in an overdraft situation (assuming a starting balance of $6,000).
Either of these situations can result in the merchant losing a sale, as well as receiving a call from an
angry customer.
Another advantage of Authorization Reversal transactions occurs on Visa and Mastercard transactions. In
order for you to qualify for the best possible interchange rates from Visa/Mastercard, the amount of the
Capture must match the amount of the associated Authorization. In order to take advantage of this
situation for you, if the Capture amount is less than the associated Authorization amount, Worldpay
automatically performs a partial Authorization Reversal for the unused amount (also see Capture Request
on page 220).
This section provides additional information concerning the requirements of and exceptions to the use of
Authorization Reversal transactions.
• Worldpay supports Authorization Reversal transactions for the following methods of payment: PayPal,
Mastercard, Visa, Discover, Diners Club, and JC and American Express, but American Express and
PayPal only support reversals of the entire Authorized amount (no partial reversals).
• All transactional data, including associated Authorizations, Captures, and Refunds, must use cnpAPI
format.
• Worldpay recommends that you send the Authorization Reversal transaction using the same
submission method (Batch or Online) as used for the Capture transaction. This is to eliminate a
possible race condition that may occur if you submit an Online Authorization Reversal prior to the
processing of a Batch containing the associate Capture transaction.
• For Batch transactions, send Authorization Reversal transactions in a session separate from the both
the associated Authorization and the associated Capture transactions.
• For Online transactions, when following an Authorization with an Auth Reversal, allow a minimum of
one minute between the transactions.
• For Visa and Mastercard transactions, Worldpay automatically performs a partial Authorization
Reversal, if the Capture amount is less than the associated Authorization amount.
• If you do not specify an amount (<amount> element) in the Authorization Reversal, Worldpay
reverses the total amount of the associated Authorization.
• Do not send an Authorization Reversal against an expired Authorization. This results in a 306 - Auth
expired, so amount does not need to be reversed error. When an Authorization expires, the hold
amount is automatically reversed.
• Do not send an Authorization Reversal against an Authorization that does not exist in our system. For
example, if you sends a reversal against an Authorization that failed or an Authorization that was
declined, the Authorization Reversal returns a 360 - No transaction found with specified transaction Id
error.
• Do not send an Authorization Reversal against a payment type that does not support Authorization
Reversals. This results in a 335 - This method of payment does not support reversals error.
• Do not send an Authorization Reversal for a fully depleted Authorization. This results in a 111 -
Authorization amount has already been depleted error.
• Do not use an Authorization Reversal to reverse an Authorization on a (Closed Loop) Gift Card. Use a
Gift Card Auth Reversal instead (see Gift Card Auth Reversal Transactions on page 276).
If you are using the Recycling Engine to optimize your authorizations and need to discontinue the
automatic recycling of the transaction, you use an Authorization Reversal transaction to halt the retries.
For example, if a customer cancels an order and the authorization for the order is being retried by the
Recycling Engine, you submit an Authorization Reversal transaction to halt the automatic recycling of the
authorization.
NOTE: If the initial transaction you submitted is a Sale (conditional deposit) rather than an
Authorization, you use a Void transaction to halt the recycling.
NOTE: If you settle in a currency other than US or Canada, you cannot use partial captures.
For a Visa or Mastercard transaction, if you submit a Capture for an amount less than the
Authorized amount, Worldpay automatically issues a partial Authorization Reversal for the balance
of the Authorized amount.
Do not use a Capture transaction to capture funds on a (Closed Loop) Gift Card transaction; use a Gift
Card Capture instead (see Gift Card Capture Transactions on page 278).
NOTE: In all cases, the Authorization amount must always be greater than or equal to the Capture
Given Auth amount.
• If necessary, the application further narrows the match candidates to the one with the most recent
response date.
NOTE: If Worldpay can match the Capture Given Auth to an Authorization and the following
conditions are met: the card type is Visa and the Capture Given Auth amount is less than the
Authorization amount, then Worldpay issues an Auth Reversal transaction for the balance of the
Authorization.
We do this to obtain the best possible interchange rates from Visa.
NOTE: If enabled for Auth for Refund, we automatically generate an Authorization before
processing the Credit. If the Issuing Bank declines the Authorization, you receive the decline
response code for the Authorization in the response message. If the Authorization passes, you
receive an Approved response code in the response message, but still must check the Declined
Transaction report to verify the Issuing Bank did not decline the Credit transaction.
• Capture Transaction
• Capture Given Auth Transaction
• Force Capture Transaction
• Sale Transaction
• External Sale or Capture
NOTE: Worldpay recommends you send all Credit transactions in a Batch separate from the
associated Capture or Sale transactions.
NOTE: Do not use this transaction type if you are enabled for the Auto Redeposit feature. If you are
enabled for the Auto Redeposit feature, the system will reject any echeckRedeposit transaction
you submit.
NOTE: Merchants must be authorized by Worldpay before processing this transaction. In some
instances, using a Force Capture transaction can lead to chargebacks and fines.
NOTE: If the authorization succeeds, the deposit will be processed automatically, regardless of the
AVS or CVV2 response.
To obtain better interchange rates, you should always perform an AVS check either as a standalone
transaction, or as part of the Authorization/Sale transaction.
NOTE: Use of this transaction type requires specific permissions. Please speak to your Worldpay
Implementation Consultant for additional information.
NOTE: Do not use Void transactions to void an Authorization. To remove an Authorization use an
Authorization reversal transaction (see Authorization Reversal Transactions on page 70.)
Do not use a Void on a Gift Card transaction. This results in a Response Code of 322 - Invalid
Transaction. Use the appropriate Reversal transaction for Gift Cards.
If you use Recovery or the Recycling Engine service and use Sale transactions (conditional deposits) to
authorize and capture the funds, you must use a Void transaction to discontinue the automatic recycling
of the transaction should the need arise. For example, if a customer cancels an order and the Sale
transaction is being retried by the Recycling Engine, you submit a Void transaction to halt the automatic
recycling of the transaction.
NOTE: If the initial transaction you submitted is an Authorization rather than an Sale, you use an
Authorization Reversal transaction to halt the recycling.
When using a Void transaction to halt recycling, there is a possibility that the recycling attempts already
resulted in an approved and captured transaction. If this condition occurs, depending upon your
configuration, the system takes one of the following actions:
• If you are not configured for the Automatic Refund option (default = disabled), the system declines the
Void transaction. You must issue the Credit transaction to refund the money to the consumer. The
daily Recycling file will include the approved/captured transaction.
• If you are configured for the Automatic Refund option and you submit the Void within 24 hours of the
Capture approval, the system issues a Credit transaction on your behalf. The system returns the
transaction Id for the Credit transaction in the Void response message (creditCnpTnxId element).
The daily Recycling file will include the approved/captured transaction only if the file was generated
prior to the system receiving the Void and issuing the automatic refund.
• If you are configured for the Automatic Refund option and you submit the Void outside of the 24 hour
window after the successful Capture, the Void fails and you must issue the Credit transaction
yourself. The Void response message will include one of the following response codes:
– If, in the Void, you referenced the cnpTxnId of the original, declined transaction, the
response/message is 322 - Invalid Transaction.
– If, in the Void, you referenced the cnpTxnId of the successfully captured transaction, the
response/message is 362 - Transaction not Voided - Already Settled.
• Vendor Debit - You use this transaction type to move funds from the Vendor Account to the PayFac
Settlement Account.
The information provided in this chapter enables you to test and verify that your submitted transaction
data conforms to the required cnpAPI schema. This chapter contains the following topics:
• Certification and Testing Environments
• Overview of Testing
• Transferring Files
• Performing the Required Certification Tests
• Performing the Optional Tests
IMPORTANT: Per PCI DSS Requirements and Security Assessment Procedure, Section 6.4.3,
"Production data (live PANs) are not used for testing or development."
NOTE: This chapter does not include Certification tests for the PayFac Instruction-Based Dynamic
Payout transaction types. Additional information about these transactions, as well as the
Certification tests are in Appendix D, "PayFac Dynamic Payout".
Worldpay eComm has two testing and certification platforms optimized for different uses. These
environments are called: Sandbox and Pre-Live. This section discusses these various environments, their
uses, and limitations. The certification and testing environments do not have the full capacity,
performance, or availability of the Worldpay eComm Production platform.
NOTE: At his time, the Sandbox does not support Batch transactions (Online transactions only).
Use of the Sandbox does not require a password. The environment is available on the public Internet (at
www.testvantivcnp.com/sandbox/communicator/online). Supporting documentation, including test case
documentation, is available at vantiv-ecommerce.github.io/sandbox.
When using the Pre-Live environment for testing, please keep in mind the following limitations and
maintenance schedules:
• The number of merchants configured per organization will be limited to the number necessary to
perform the required certification testing.
• Data retention is limited to a maximum of 30 days.
NOTE: Depending upon overall system capacity and/or system maintenance requirements, data
purges may occur frequently. Whenever possible, we will provide advanced notification.
• Merchant profile and data deleted after 7 consecutive days with no activity.
• Maintenance window - each Tuesday and Thursday from 4:00-8:00 AM ET.
• Maintenance window (Enterprise eProtect) - every other Thursday from 10:00 PM to 6:00 AM ET.
• Daily limit of 1000 Online transactions.
• Daily limit of 10000 Batch transactions.
NOTE: Due to the planned maintenance windows, you should not use this environment for
continuous regression testing.
The purpose of the testing and certification process is to verify that your order entry and supporting
systems construct and send XML messages that comply with the cnpAPI requirements. The testing
process involves submitting Worldpay supplied data for specific fields in a request, and receiving specific
data back in a response. The response returned by Worldpay allows you to verify that you parse the
cnpAPI response file correctly.
Various tables in this chapter provide the data you use while testing, including card numbers, expiration
dates, transaction amounts, and other values as required by the testing process. You use this data as
input to your systems resulting in structured requests that conform to the required cnpAPI schema.
IMPORTANT: 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.
Typically, Worldpay assigns an Implementation Consultant to work with you after the completion of
contract negotiations. Before you begin the testing phase, your assigned Implementation Consultant
establishes a test account and supplies you with instruction for accessing the account along with the
username and password. You must supply the IP address from which the data originates so we can grant
access.
NOTE: Until you complete all required testing, you will only have access to the test and certification
environment.
NOTE: For information about certification testing for eProtect, Chargeback API, and the PayFac
API, please refer to the following documents:
– Worldpay eComm eProtect Integration Guide
– Worldpay eComm Chargeback API Reference Guide
– Worldpay eComm PayFac API Reference Guide
As shown in Figure 2-1, the system displays an overall assessment of the system status in the top panel
and the results from each test set in the Test Execution History section (bottom panel). The center panel
has a list of all individual tests by Order Id (pull-down), which you can filter by clicking on or more of the
Search Tag buttons. Selecting one of the Order Ids from the list displays the XML request and response
for that test (see Figure 2-2). You can also display the XML request and response information by
selecting a test run from the Test Execution History and then selecting an individual test from the
expanded list.
NOTE: The search tags filter the Order Ids shown in the selection pull-down, but do so in an ORed
manner. For example, if you select the Visa Filter and the Prepaid Filter, the pull-down displays
Order Ids for tests that either use a Visa card OR a Prepaid card, rather than tests for a Prepaid
Visa card.
If one of your certification tests did not yield the expected results, you can use the System Doctor to
determine if the test is performing as expected in the environment and if there is a discrepancy between
your submitted XML and the XML message used in the automated test. If the test failed in the last
automated run, you will know that there is a system issue and can contact your Implementation
Consultant to determine when it will be resolved. If the test passed in the automated run, you can
compare the automated XML message to your submission to determine why you are not receiving the
expected results.
As discussed in Communications Protocols on page 2, there are several protocols you can use to submit
your transactions to Worldpay for processing. This section provides additional information concerning the
recommended methods for transferring your cnpAPI Batch and Online transaction files.
NOTE: Before you begin transferring files via FTP, Worldpay provides the FTP Host and a
username/password for the Worldpay test system.
CAUTION: When submitting a file via FTP/sFTP, verify that the file permission is set to 664.
Also, file naming conventions are crucial to the file submission process. Incorrect file names will
prevent the file from being processed or may stop processing due to an incomplete file transfer.
Do not append .asc to the end of the filename (Step 3). You must replace the .prg extension with
.asc. If .prg appears in the filename, the system will not process the file.
Also, limit the length of the filename to a maximum of 128 characters, including the extension.
1. On your local system, add the extension .prg (lowercase) to the name of the file you want to submit.
For example, you could name the file MerchantName_YYMMDD.prg. Keep in mind the following
rules:
• Spaces are not allowed in the file name
• The .prg extension must be lower case
2. Open your FTP connection to the Worldpay inbound directory and move your file to the Worldpay
directory.
3. After the FTP process completes, change the extension of the transmitted file (in the Worldpay
inbound directory) from .prg to .asc (lowercase). Also, change the file permission to 664. the The
system polls the directory for files with an .asc extension every thirty seconds. When the system
encounters files with the proper extension, it retrieves them for processing.
Depending on the size of your file, your response should be ready within a few minutes. Batches
containing large number of transactions take longer. For example, a batch of 10,000 transactions may
require as long as ten minutes to process.
NOTE: For Account Updater Batch files, the initial response is an acknowledgment file. The system
posts the Batch containing the Account Updater responses after five days.
NOTE:
NOTE: Worldpay removes response files from the outbound directory after 24 hours. Plan to
retrieve your files daily.
NOTE: Before you begin testing, Worldpay provides the test system URL, a username/password,
and any additional information required to test your XML transactions.
The following code is an example of a cnpAPI Authorization transaction submitted via HTTPS Post using
ASP.
Dim xml
Dim strXML
strXML = strXML & "<cnpOnlineRequest version=""12.0""
xmlns=""http://www.vantivcnp.com/schema"" merchantId=""MERCHANTID"">"
strXML = strXML & "<authentication>"
strXML = strXML & "<user>USERNAME</user>"
strXML = strXML & "<password>########</password>"
strXML = strXML & "</authentication>"
strXML = strXML & "<authorization id=""834262"" reportGroup=""123""
customerId=""038945"">"
While Worldpay optimizes our systems to ensure the return of Authorization responses as quickly as
possible, some portions of the process are beyond our control. The round-trip time of an Authorization
can be broken down into three parts, as follows:
1. Transmission time (across the Internet) to Worldpay and back to the merchant
2. Processing time by the card association or authorization provider
3. Processing time by Worldpay
Typically, the transmission time to and from Worldpay does not exceed 0.6 seconds and processing time
by Worldpay occurs in 0.1 seconds. The processing time by the card association or authorization provider
can take between 0.5 and 3 seconds, but some percentage of transactions may take significantly longer.
Because the total processing time can vary due to a number of factors, Worldpay recommends using a
timeout setting of 10 seconds minimum for card transactions and 30 seconds minimum for alternate
payment methods. These settings should ensure that you do not disconnect prior to receiving a valid
authorization, causing dropped orders and/or re-auths and duplicate auths.
NOTE: While it is uncommon, under certain circumstances network latency may cause a duplicate
Online Sale transaction to go undetected as a duplicate. This can occur if you submit a second,
duplicate Sale transaction while the response from the network for the Authorization portion of the
first transaction is sufficiently delayed such that the first Sale has not been recorded as a valid
transaction in the system.
If you elect to submit Online Sale transactions, Worldpay recommends a timeout setting of not less
than 60 seconds to reduce the chances of undetected duplicate Sale transactions.
In order to provide a highly scalable service that meets the needs of high-throughput merchants, while
reducing the number of idle connections that could result in some merchants exceeding their connection
limits, Worldpay systems allow for 10 seconds of idle time before closing a connection. We selected this
value because it is the midpoint between the Apache httpd 2.0 default value of 15 seconds and the
Apache 2.2 default value of 5 seconds. Also, HTTP/1.1, which most modern HTTP client libraries use,
employ persistent connections by default. When using a persistent connection, please keep the 10
second idle time limit in mind, when coding. If you do not use persistent connections, to avoid connection
limit issues, please validate that your default configuration closes connections after each request.
NOTE: Proper use of persistent connections is considerably faster than opening and closing
connections with each request.
The following web sites provide additional information, helpful hints, and examples of different
programming methods used in combination with HTTPS POST.
• http://p2p.wrox.com
• http://en.allexperts.com/q/Active-Server-Pages-1452/XML-ASP-Parser-2.htm
• http://www.java-samples.com/java/POST-toHTTPS-url-free-java-sample-program.htm
You are required to complete a number of certification tests prior to submitting real transactions to the
Worldpay production system. This testing process allows you to verify that your system not only submits
correctly formatted transaction data, but also correctly parses the data returned to you in the response
messages. To facilitate the certification process, Worldpay established a certification environment that
simulates the production environment.
IMPORTANT: To determine the final status and response Code of a declined or duplicate
transactions, please refer to the Declined Transaction Report in the Worldpay eComm iQ. Once in
the production environment, you can also obtain this daily report via Secure Scheduled Reports.
During certification testing, a Worldpay Implementation Consultant will guide you through each required
test scenario. For each transaction type specific data is supplied that you must use in your cnpAPI
transactions. Use of this data allows the validation of your transaction structure/syntax, as well as the
return of a response file containing known data.
NOTE: The test data supplied does not account for all data fields/XML elements in a particular
request. Where 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.
Never use the supplied test data in the production environment.
NOTE: To test your handling of 2-series (BIN) number for Mastercard, you can substitute a 2-series
test card number (see Appendix C, "Test Card Numbers") in any Auth/Sale test and you will receive
a 000 - Approved Response Code in the response message.
Table 2-1 provides 26 data sets you use to test your construction of Authorization, AVS Only, Sale and
Force Capture transactions, as well as your ability to parse the information contained in the XML
response messages. You also use some of the approved authorizations as the basis for testing Capture
and Credit transactions.
You do not necessarily have to perform all Authorization test. The tests you perform depend upon the
Worldpay features you have elected to use. The tests are divided as follows:
• Order Ids 1 through 9 - used to test standard Authorization requests and responses. Also used for
AVS Only test and Sale test. (Capture test use the cnpTxnId returned in the response messages.)
• Order Ids 10 through 13 - include if you plan to use Partial Authorization
• Order Ids 14 and 20 - include if you plan to use the Prepaid Indicator feature (see Prepaid Indicator
on page 24)
• Order Ids 21 through 24 - include if you plan to use the Affluence Indicator feature (see Affluence
Indicator on page 25)
• Order Id 25 - include if you plan to use the Issuer Country feature (see Issuer Country Indicator on
page 25)
To test Authorization transactions:
1. Verify that your Authorization XML template is coded correctly (refer to Authorization Transactions on
page 198.)
2. Submit authorization transactions using the data shown in the Supplied Data Elements of Order
Ids 1 through 9 of Table 2-1.
3. Verify that your response values match those shown in Key Response Elements for Order Ids 1
through 9 as shown in Table 2-1.
4. If you wish to test AVS only transactions, re-submit Order Ids 1 through 5, 7, 8, and 9 (skip order 6),
but substitute 000 for the amount. The AVS result returned will be the value shown in the Key
Response Elements section.
NOTE: Some Issuers do not return an Auth Code for $0 Authorizations. You should code your
systems to handle this possibility.
5. If you plan to use Partial Authorizations, submit authorization transactions using the data
shown in the Supplied Data Elements of Order Ids 10 through 13 of Table 2-1.
6. Verify that your response values match those shown in Key Response Elements for Order Ids 10
through 13 as shown in Table 2-1.
7. If you elected to receive Prepaid Indicators, submit authorization transactions using the data
shown in the Supplied Data Elements of Order Ids 14 through 20 of Table 2-1. Verify that your
response values match those shown in Key Response Elements for Order Ids 14 and 15 as shown in
Table 2-1.
8. If you elected to receive Affluence Indicators, submit authorization transactions using the data
shown in the Supplied Data Elements of Order Ids 21through 24 of Table 2-1. Verify that your
response values match those shown in Key Response Elements for Order Ids 16 through 19 as
shown in Table 2-1.
9. If you elected to receive Issuer Country information, submit an authorization transaction using
the data shown in the Supplied Data Elements of Order Id 25 of Table 2-1. Verify that your response
values match those shown in Key Response Elements for Order Id 25 as shown in Table 2-1.
10. If you elected to receive Issuer Insights data, submit an authorization transaction using the data
shown in the Supplied Data Elements of Order Id IssuerInsights of Table 2-1. Verify that your
response values match those shown in Key Response Elements for Order Id 25 as shown in
Table 2-1. This data includes the accountRangeId element in the response message.
11. If you plan to handle transactions using Healthcare (IIAS) cards, submit authorization
transactions using the data shown in the Supplied Data Elements of Order Ids 26 through 31A of
Table 2-1. Verify that your response values match those shown in Key Response Elements for Order
Ids 26 through 31 as shown in Table 2-1.
To Test Sale transactions:
1. Verify that your Sale XML template is coded correctly (refer to Sale Transactions on page 300.)
2. Submit sale transactions using the data shown in the Supplied Data Elements of Order Ids 1 through
9 of Table 2-1.
3. Verify that your response values match those shown in Key Response Elements for Order Ids 1
through 9 as shown in Table 2-1.
<country> US
<type> MC
<number> 5112010000000003
<expDate> 0221
<cardValidationNum> 261
<authenticationValue> BwABBJQ1AgAAA
AAgJDUCAAAAAA
A=
NOTE: The data sets for orderId 10 through 13 are designed to test Authorization transactions resulting in
partial authorizations. If you are not coding to use partial authorizations, you may skip these tests.
NOTE: The data sets for orderId 14 through 20 are designed to test Authorization transactions that return
Prepaid Indicator information in the response message. If you are not coding to use the optional Prepaid
Indicator feature of the Insights feature set, you may skip these tests.
NOTE: The data sets for orderId 21 through 24 are designed to test Authorization transactions that return
Affluence Indicator information in the response message. If you are not coding to use the optional Affluence
Indicator feature of the Insights feature set, you may skip these tests.
NOTE: The data set for orderId 25 is designed to test Authorization transactions that return Issuer Country
information in the response message. If you are not coding to use the optional Issuer Country feature of the
Insights feature set, you may skip these tests.
NOTE: The data set for orderId IssuerInsights is designed to test Authorization transactions that return an
Account Range Id in the response message.
NOTE: The data sets for orderId 26 through 31A are designed to test Authorization transactions involving
Healthcare Care (IIAS) transaction. If you are not coding to perform Healthcare Care (IIAS) transactions, you
may skip these tests.
1. Verify that your Authorization Reversal XML templates are coded correctly (refer to Authorization
Reversal Transactions on page 210).
2. Submit the Authorizations, Captures (if applicable), and Authorization Reversal Transactions using
the orders shown in Table 2-2.
3. Verify that your response values match those shown in Key Response Elements as shown in
Table 2-2.
NOTE: The eCheck Verification test is required only if you plan to perform eCheck Verifications.
NOTE: In addition to the test data provided in the table, you must also provide appropriate data for
other child elements of the billToAddress element, such as Address1 (2, 3), city, state,
phone, etc.
For Corporate accounts (Order ID 39 and 40) you must include the firstName, lastName, and
companyName in the echeckVerification request.
3. Verify that your response values match those shown in the Key Response Elements section of
Table 2-3.
4. After you complete this test, go to the next Direct Debit test.
NOTE: The eCheck Prenotification tests are required only if you plan to perform eCheck
Prenotification.
You can only submit eCheck Prenotification transactions in Batches.
1. Verify that your XML templates are coded correctly (refer to eCheck Prenotification Credit
Transactions (Batch Only) on page 254 and eCheck Prenotification Sale Transactions (Batch Only)
on page 256.)
2. Submit the eCheck Verification transactions using the data sets supplied in Table 2-4.
3. Verify that your response values match those shown in the Key Response Elements section of
Table 2-4.
4. After you complete this test, go to the next Direct Debit test.
NOTE: In addition to the test data provided in the table, you must also provide appropriate data for
other child elements of the billToAddress element, such as Address1 (2, 3), city, state,
phone, etc.
3. Verify that your response values match those shown in Table 2-5.
4. After you complete this test, go to the next test.
NOTE: In addition to the test data provided in the table, you must also provide appropriate data for
other child elements of the billToAddress element, such as Address1 (2, 3), city, state,
phone, etc.
2. Submit the echeckCredit transactions using the data in the Supplied Data Elements section of
Table 2-6.
3. Verify that your response values match those shown in the Key Response Elements section of
Table 2-6.
4. After you complete this test, go to the next test.
Declined Transaction
report result = 360 - No
transaction found with
specified cnpTxnId
NOTE: The test data does not include values for all elements. You should use appropriate values
for all elements as required to create a properly structured cnpAPI request.
To test the submission of card data in an tokenized environment using Authorization transactions, as well
as the submission of tokens in transactions, do the following:
1. Verify that your cnpAPI template is coded correctly for this transaction type (refer to Authorization
Transactions on page 198.)
2. Submit three authorization transactions using the Supplied Data Elements from Order Ids 55
through 57 from Table 2-8.
3. Verify that your authorizationResponse values match those shown in the Key Response
Elements section of Table 2-8 for Order Ids 55 through 57.
4. To verify that your cnpAPI template is coded correctly for the submission of tokens in
authorization transactions, submit authorization transactions using the Supplied Data
Elements from Order Ids 58 through 60 from Table 2-8.
To test the submission of Direct Debit data in an tokenized environment, as well as the submission of
tokens in Direct Debit transactions, do the following:
1. Verify that your cnpAPI template is coded correctly for these transaction types as applicable (refer to
eCheck Sale Transactions on page 261 and eCheck Credit Transactions on page 251).
2. Submit the four transactions, Order Ids 61 through 64, using the Supplied Data Elements from
Table 2-8.
3. Verify that your response values match those shown in the Key Response Elements section of
Table 2-8 for Order Ids 61 through 64.
NOTE: Order ID 64 returns accountUpdater information. This test allows you to test responses you
might receive when a NOC exists against the Direct Debit account, but you submit the old account
information. In this case, the system provides the old token information, but issues a new token
based upon the new account information and provides it as well.
NOTE: If you are enabled for the use of the queryTransaction, you will not be able to test for
response code 153 - Query Transaction not enabled.
NOTE: In the Pre-Live environment, the system may return all zeros for the
networkTransactionId.
2. Submit transactions Net_Id1a, Net_Id2a, Net_Id3a and Net_Id3b using the supplied data. Verify that
each transaction results in an approval.
NOTE: Each of the responses include a networkTransactionId value. You can either store this value
for future use in subsequent transactions or continue to use the original value returned in the initial
transactions.
NOTE: When you submit the duplicate transaction, make sure that all information, including the id
attribute, is identical.
1. Send any of the following Capture transactions more than once within a two day period: Order
numbers 1A, 2A, 3A, 4A, or 5A. The second submission will appear in the Declined Transaction
report with a response Reason Code of 251 - Duplicate Transaction. Note: You may have to submit
the corresponding Authorization transaction prior to submitting the Capture transaction.
2. Send any of the following Credit transactions more than once within a two day period: Order numbers
1B, 2B, 3B, 4B, or 5B. The second submission will appear in the Declined Transaction report with a
response Reason Code of 251 - Duplicate Transaction. Note: You may have to submit the
corresponding Capture transaction prior to submitting the Credit transaction.
3. Send any of the following Void transactions more than once within a two day period: Order numbers
1C, 2C, 3C, 4C, or 5C. The second submission will appear in the Declined Transaction report with a
response Reason Code of 251 - Duplicate Transaction. Note: You may have to submit the
corresponding Sale transaction prior to submitting the Void transaction.
4. Send either of the following eCheck Sale transactions more than once within a two day period: Order
numbers 42 or 43. The second submission will appear in the Declined Transaction report with a
response Reason Code of 251 - Duplicate Transaction.
5. Send any of the following eCheck Credit transactions more than once within a two day period: Order
numbers 46, 47, or 48. The second submission will appear in the Declined Transaction report with a
response Reason Code of 251 - Duplicate Transaction.
NOTE: In the Pre-Live environment, the system may return all zeros for the
networkTransactionId.
2. Submit a Credit transaction using the cnpTnxId returned in the Sale response. Verify that you handle
the declined response correctly.
This section describes data that you can use to test different response codes, messages, and AVS
response codes from the Worldpay, Inc. system for American Express, Visa, Mastercard, Discover, and
Diner’s Club cards. You can perform these tests after completing the certification testing.
This section contains the following topics:
• Testing AVS and Card Validation
• Testing Address Responses
• Testing Advanced AVS Response Codes
• Testing Response Reason Codes and Messages
• Testing 3DS Responses
• Testing the Prepaid Filtering Feature
• Testing the International Card Filter Feature
• Testing Security Code No-Match Filtering
• Testing Advanced Fraud Tools
• Testing Account Updater
• Testing Tax Billing
• Testing Convenience Fees
• Testing the Recycling Engine
• Testing Recurring Engine Transactions
• Testing Gift Card Transactions
• Testing MasterPass Transactions
• Testing Apple Pay Transaction Processing
• Testing Google Pay Transaction Processing
• Testing Amazon Pay
• Testing checkoutId
• Testing Encrypted Card and CVV in Register Token Requests
• Testing Transaction Volume Capacity
NOTE: For a list of all possible AVS response codes, see AVS Response Codes on page 859.
For a list of all possible card validation response codes, see Card Validation Response Codes on
page 863.
65 <type> VI <avsResult> 00
<number> 4457000300000007 <cardValidationResult> U
66 <type> VI <avsResult> 01
<number> 4457000100000009 <cardValidationResult> M
67 <type> VI <avsResult> 02
<number> 4457003100000003 <cardValidationResult> M
68 <type> VI <avsResult> 10
<number> 4457000400000006 <cardValidationResult> S
69 <type> VI <avsResult> 11
<number> 4457000200000008 <cardValidationResult> M
70 <type> MC <avsResult> 12
<number> 5112000100000003 <cardValidationResult> M
71 <type> MC <avsResult> 13
<number> 5112002100000009 <cardValidationResult> M
72 <type> MC <avsResult> 14
<number> 5112002200000008 <cardValidationResult> N
73 <type> MC <avsResult> 20
<number> 5112000200000002 <cardValidationResult> N
74 <type> MC <avsResult> 30
<number> 5112000300000001 <cardValidationResult> P
75 <type> MC <avsResult> 31
<number> 5112000400000000 <cardValidationResult> U
76 <type> MC <avsResult> 32
<number> 5112010400000009 <cardValidationResult> S
78 <type> MC <avsResult> 34
<number> 5112000600000008 <cardValidationResult> P
80 <type> AX <cardValidationResult> N
<number> 374313304211118 <response> 352
Note: American <message> Decline CVV2/CID
Express CID Fail
failures are declined
by American
Express.
NOTE: f you submit account numbers not specified in the tables, you will receive the following
response:
<response>000</response>
<message>Approved</message>
<authCode>123457</authCode>
<avsResult>00</avsResult>
NOTE: The messages listed are samples of messages that the system can return. Since the
messages are subject to change at any time, you should use them only for human readability
purposes and not for coding purposes. Always code to the response codes, since these do not
change.
• For a list of all possible response reason codes, see Payment Transaction Response Codes on
page 832.
• For a list of all possible AVS response codes, see AVS Response Codes on page 859.
NOTE: You can submit these tests as sale transactions using the supplied data, or as standalone
fraudCheck transactions using just the designated orderId and webSessionId. The results for
each test type will be as shown in the Key response elements section.
Also, please note that the third test, orderId = tmx_fail_order_id, has two possible results
depending upon whether you are configured for Info Only or Auto-Decline.
Result if Auto-decline:
<response> 550
<message> Restricted Device
or IP -
ThreatMetrix
Fraud Score
Below Threshold
<deviceReviewStatus> fail
<deviceReputationScore> -100
<triggeredRule> 5PaymentsOnExa
ctDevice
<triggeredRule> ProxyHasNegativ
eReputation
<triggeredRule> TrueIPProxyIPCit
yMismatch
NOTE: You can also perform the tests in this section using Sale transactions instead of
Authorization transactions.
If you are a tokenized merchant using the Account Updater service, you can test this service using the
card information provided in Table 2-20. In this case you will receive an original and new token in the
<accountUpdater> section of the Authorization response message (see accountUpdater Structure -
Credit Cards (tokenized Merchant) on page 335).
Scenario 1
To test your handling of the Recycling Results Session file:
1. Submit authorization (or sale) transactions using the values provided in the Supplied Data
Elements column of Table 2-24. Please use the same value for the orderId and if applicable, the
recycleId elements.
NOTE: If your configuration is set for Worldpay to recycle by default, you can omit the <recycleBy>
element.
2. Wait a minimum of 2 hours after submitting the last transaction. After 2 hours, retrieve the Results
Session file from the FTP site.
TABLE 2-24 Recycling Engine Test Data - Results Session File Pick-up
TABLE 2-24 Recycling Engine Test Data - Results Session File Pick-up
TABLE 2-24 Recycling Engine Test Data - Results Session File Pick-up
TABLE 2-24 Recycling Engine Test Data - Results Session File Pick-up
Scenario 2
To test your handling of the Intercept Response Codes/Messages, as well as the Recycling Results
Session file and Normal Batch/Online responses:
1. Submit authorization (or sale) transactions using the values provided in the Supplied Data
Elements column of Table 2-25. Please use the same value for the orderId and if applicable, the
recycleId elements.
NOTE: If your configuration is set for Worldpay to recycle by default, you can omit the <recycleBy>
element.
2. If you are using schema version V8.6 or above, resubmit any of the first four transactions within 36
hours to receive a response message containing the intercept Response Reason Code 372 - Soft
Decline - Auto Recycling In Progress. If you are using schema version 8.5 or below, you will receive a
response message with the same Response Reason Code as in the initial response message.
3. Wait a minimum of 36 hours after submitting the last of the initial transactions. After 36 hours, you can
retrieve the Results Session file from the FTP site and/or resubmit the transaction. The responses will
contain the data shown for the Final Response.
TABLE 2-25 Recycling Engine Test Data - Intercept and Online or Results Session File Pick-up
TABLE 2-25 Recycling Engine Test Data - Intercept and Online or Results Session File Pick-up
TABLE 2-25 Recycling Engine Test Data - Intercept and Online or Results Session File Pick-up
TABLE 2-25 Recycling Engine Test Data - Intercept and Online or Results Session File Pick-up
You use an authReversal transaction to halt the automatic recycling of an authorization. For a sale
transaction, use a void transaction to halt recycling.
NOTE: You can perform this test either after completing the Recycling Engine test or prior to
starting that test.
NOTE: If you submit the Void transaction (Step 2) within 2 hours of the initial transaction
submission, you will receive a voidResponse with a response code of 000 - Approved.
3. After receiving the decline messages, submit an authReversal transaction using the cnpTxnId
returned in the response message for Case1Order2a. This will halt the recycling of the order.
Declined
Transaction report
result = 362 -
Transaction Not
Voided - Already
Settled
authReversalResp
Submit
onse:
authReversal
using cnpTxnId <response> 000
from Initial <message> Approved
Response
IMPORTANT: 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:
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.
NOTE: 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.
5. 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.
6. 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.
7. 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.
8. Submit an updateSubscription transaction for Order Id R3.3. This transaction updates an
existing subscription, changing the billing date.
9. 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.
10. Submit an updateSubscription transaction for Order Id R4.2. This transaction updates an
existing subscription with a new credit card number.
11. 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.
12. Submit an updateSubscription transaction for Order Id R5.2. This transaction updates an
existing subscription with new billing information.
13. 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.
14. 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.
15. 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.
16. 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.
17. 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.
18. 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.
19. 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.
20. 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.
21. 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.
22. 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.
23. 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.
24. 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.
25. 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
26. Submit an cancelSubscription transaction for Order Id R10.1. Verify that the transaction receives
an approval code in the response message.
27. 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.
<numberOfPayments> 6
<amount> 4000
<numberOfPayments> 6
<amount> 4000
6
<numberOfPayments>
Declined Transaction
report result = 484 -
Insufficient data to
update subscription
<amount> 1000
<startDate> 2013-08-30
<endDate> 2050-08-30
NOTE: When processing gift cards, many transactions response messages include the refCode,
sequenceNumber, systemTraceId, and txnTime elements. You should always store these
values for possible use in subsequent transactions. For example, to perform the
giftCardCapture in test GC2A, you must include the values returned for these elements in the
associated authorization transaction, GC2.
1. Submit an activate transaction for Order Id GC1. Verify that the data in the response message
matches the Key Response Elements specified in the table.
2. Submit an activate transaction for Order Id GC1A. This transaction activates a Virtual Gift Card.
Verify that the data in the response message matches the Key Response Elements specified in the
table.
3. Submit an authorization transaction for Order Id GC2. Verify that the data in the response
message matches the Key Response Elements specified in the table.
4. Submit a giftCardCapture transaction for Order Id GC2A. Verify that the data in the response
message matches the Key Response Elements specified in the table.
5. Submit a giftCardCredit transaction for Order Id GC2B. Verify that the data in the response
message matches the Key Response Elements specified in the table.
6. Submit a deactivate transaction for Order Id GC3. Verify that the data in the response message
matches the Key Response Elements specified in the table.
7. Submit a load transaction for Order Id GC4. Verify that the data in the response message matches
the Key Response Elements specified in the table.
8. Submit a unload transaction for Order Id GC5. Verify that the data in the response message
matches the Key Response Elements specified in the table.
9. Submit a balanceInquiry transaction for Order Id GC6. Verify that the data in the response
message matches the Key Response Elements specified in the table.
10. Submit an activate transaction for Order Id GC7. Verify that the data in the response message
matches the Key Response Elements specified in the table.
11. Submit an activateReversal transaction for Order Id GC7A. Verify that the data in the response
message matches the Key Response Elements specified in the table.
12. Submit an activateReversal transaction for Order Id GC1A. Verify that the data in the response
message matches the Key Response Elements specified in the table.
13. Submit an authorization transaction for Order Id GC8. Verify that the data in the response
message matches the Key Response Elements specified in the table.
14. Submit an authorizationReversal transaction for Order Id GC8A. Verify that the data in the
response message matches the Key Response Elements specified in the table.
15. Submit a sale transaction for Order Id GC9. Verify that the data in the response message matches
the Key Response Elements specified in the table.
16. Submit a depositReversal transaction for Order Id GC9A. Verify that the data in the response
message matches the Key Response Elements specified in the table.
17. Submit a sale transaction for Order Id GC10. Verify that the data in the response message matches
the Key Response Elements specified in the table.
18. Submit a giftCardCredit transaction for Order Id GC10A. Verify that the data in the response
message matches the Key Response Elements specified in the table.
19. Submit a refundReversal transaction for Order Id GC10B. Verify that the data in the response
message matches the Key Response Elements specified in the table.
20. Submit a deactivate transaction for Order Id GC11. Verify that the data in the response message
matches the Key Response Elements specified in the table.
21. Submit a loadReversal transaction for Order Id GC12. Verify that the data in the response
message matches the Key Response Elements specified in the table.
22. Submit an unload transaction for Order Id GC13. Verify that the data in the response message
matches the Key Response Elements specified in the table.
23. Submit an unloadReversal transaction for Order Id GC13A. Verify that the data in the response
message matches the Key Response Elements specified in the table.
24. Submit an activate transaction for Order Id GC14. This transaction is declined with a response
code of 301 - Invalid Account Number. Verify that the data in the response message matches the Key
Response Elements specified in the table.
25. Submit an activate transaction for Order Id GC15. This transaction is declined with a response
code of 217 - Already active, because it attempts to activate the same card already activated in Order
Id GC1. Verify that the data in the response message matches the Key Response Elements specified
in the table.
26. Submit an authorization transaction for Order Id GC16. This transaction is declined with a
response code of 110 - Insufficient Funds. Verify that the data in the response message matches the
Key Response Elements specified in the table.
27. Submit an authorization transaction for Order Id GC17. This transaction is declined with a
response code of 281 - Card not active. Verify that the data in the response message matches the
Key Response Elements specified in the table.
28. Submit a sale transaction for Order Id GC19. Verify that the data in the response message matches
the Key Response Elements specified in the table.
29. Submit a giftCardCredit transaction for Order Id GC19A. For this transaction the Declined
Transaction report will contain response code of 304 - Lost/Stolen Card.
30. Submit a balanceInquiry transaction for Order Id GC20. This transaction is declined with a
response code of 352 - Invalid CVV2. Verify that the data in the response message matches the Key
Response Elements specified in the table.
1. Submit an Authorization transaction using the data supplied for Order Id MCWalletAuth. Verify that
the response data matches the values for the Key Response Elements for that orderId.
2. Submit a Sale transaction using the data supplied for Order Id MCWalletSale. Verify that the
response data matches the values for the Key Response Elements for that orderId.
NOTE: For information about testing the submission of the PKPaymentToken using the Mobile
eProtect, please refer to the Worldpay eComm eProtect Integration Guide.
To test the submission of an Apple Pay transaction in cnpAPI when you decrypt the PKPaymentToken,
you must include the information listed in the table below in an Authorization or Sale transaction.
Assuming you submit valid XML with appropriate values, the test environment will return an approved
response message.
When you receive a PKPaymentToken, you must parse (not decrypt) the component parts and use the
data to populate the cnpAPI <applepay> child elements. This test is designed to allow you to verify your
ability to parse the PKPaymentToken data and construct well formed cnpAPI messages. The test uses
the data from the example PKPaymentToken shown below (data element names in bold red type) to
construct an Authorization or Sale transaction (see applepay). The system returns a Response Code of
000 - Approved.
Example: PKPaymentToken
{"version":"EC_v1","data":"Ww9EI+10VVpyZrAb3nxu9c8PG4JEnIh4oTkDhZi4axj5QqC5WIir6TJcFmk/
3wkrNL/KaRXz3aan4WRO6cPL+cUTRpQUO9ECqTBItmQbJxGbN42713TyI+y97k3msl7bd5rJOMIOpkCtfp2ua+3
lnBhjGFnUzdCxq+/K6eoIEwYlAEfX9Sdpjm+plVfvSK7vj0BQCcXo1dXGkNUKwKWA4GYPUE3qwbuiQWcZwLxAEF
43274pACV4LBmdv0HYgYpcgCY0+U6/YSVKdpPrhHLDeLOlO7T4WwuimHojsKA/BknpPY1uJfP+YJxj1fYghaAOA
R0tA5cYJftlWLXaV9lZu113Ns1rxColh4PR8wsuw81CdOruvoURGNaNyX+hG1suQoHeE8ECzKIE6DlHEeVMcdxX
ySwFPY7hxEY1QKSSXw==","signature":"MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCA
BgkqhkiG9w0BBwEAAKCAMIICvzCCAmWgAwIBAgIIQpCV6UIIb4owCgYIKoZIzj0EAwIwejEuMCwGA1UEAwwlQXB
wbGUgQXBwbGljYXRpb24gSW50ZWdyYXRpb24gQ0EgLSBHMzEmMCQGA1UECwwdQXBwbGUgQ2VydGlmaWNhdGlvbi
BBdXRob3JpdHkxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMB4XDTE0MDUwODAxMjMzOVoXDTE5M
DUwNzAxMjMzOVowXzElMCMGA1UEAwwcZWNjLXNtcC1icm9rZXItc2lnbl9VQzQtUFJPRDEUMBIGA1UECwwLaU9T
IFN5c3RlbXMxEzARBgNVBAoMCkFwcGxlIEluYy4xCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQc
DQgAEwhV37evWx7Ihj2jdcJChIY3HsL1vLCg9hGCV2Ur0pUEbg0IO2BHzQH6DMx8cVMP36zIg1rrV1O/0komJPn
wPE6OB7zCB7DBFBggrBgEFBQcBAQQ5MDcwNQYIKwYBBQUHMAGGKWh0dHA6Ly9vY3NwLmFwcGxlLmNvbS9vY3NwM
DQtYXBwbGVhaWNhMzAxMB0GA1UdDgQWBBSUV9tv1XSBhomJdi9+V4UH55tYJDAMBgNVHRMBAf8EAjAAMB8GA1Ud
IwQYMBaAFCPyScRPk+TvJ+bE9ihsP6K7/S5LMDQGA1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwuYXBwbGUuY29
tL2FwcGxlYWljYTMuY3JsMA4GA1UdDwEB/wQEAwIHgDAPBgkqhkiG92NkBh0EAgUAMAoGCCqGSM49BAMCA0gAME
UCIQCFGdtAk+7wXrBV7jTwzCBLE+OcrVL15hjif0reLJiPGgIgXGHYYeXwrn02Zwcl5TT1W8rIqK0QuIvOnO1TH
CbkhVowggLuMIICdaADAgECAghJbS+/OpjalzAKBggqhkjOPQQDAjBnMRswGQYDVQQDDBJBcHBsZSBSb290IENB
IC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmM
uMQswCQYDVQQGEwJVUzAeFw0xNDA1MDYyMzQ2MzBaFw0yOTA1MDYyMzQ2MzBaMHoxLjAsBgNVBAMMJUFwcGxlIE
FwcGxpY2F0aW9uIEludGVncmF0aW9uIENBIC0gRzMxJjAkBgNVBAsMHUFwcGxlIENlcnRpZmljYXRpb24gQXV0a
G9yaXR5MRMwEQYDVQQKDApBcHBsZSBJbmMuMQswCQYDVQQGEwJVUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IA
BPAXEYQZ12SF1RpeJYEHduiAou/ee65N4I38S5PhM1bVZls1riLQl3YNIk57ugj9dhfOiMt2u2ZwvsjoKYT/VEW
jgfcwgfQwRgYIKwYBBQUHAQEEOjA4MDYGCCsGAQUFBzABhipodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDA0LW
FwcGxlcm9vdGNhZzMwHQYDVR0OBBYEFCPyScRPk+TvJ+bE9ihsP6K7/S5LMA8GA1UdEwEB/wQFMAMBAf8wHwYDV
R0jBBgwFoAUu7DeoVgziJqkipnevr3rr9rLJKswNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5hcHBsZS5j
b20vYXBwbGVyb290Y2FnMy5jcmwwDgYDVR0PAQH/BAQDAgEGMBAGCiqGSIb3Y2QGAg4EAgUAMAoGCCqGSM49BAM
CA2cAMGQCMDrPcoNRFpmxhvs1w1bKYr/0F+3ZD3VNoo6+8ZyBXkK3ifiY95tZn5jVQQ2PnenC/gIwMi3VRCGwow
V3bF3zODuQZ/0XfCwhbZZPxnJpghJvVPh6fRuZy5sJiSFhBpkPCZIdAAAxggFfMIIBWwIBATCBhjB6MS4wLAYDV
QQDDCVBcHBsZSBBcHBsaWNhdGlvbiBJbnRlZ3JhdGlvbiBDQSAtIEczMSYwJAYDVQQLDB1BcHBsZSBDZXJ0aWZp
Y2F0aW9uIEF1dGhvcml0eTETMBEGA1UECgwKQXBwbGUgSW5jLjELMAkGA1UEBhMCVVMCCEKQlelCCG+KMA0GCWC
GSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTQxMDAzMjE1Nj
QzWjAvBgkqhkiG9w0BCQQxIgQgg8i4X6yRAU7AXS1lamCf02UIQlpUvNPToXUaamsFUT8wCgYIKoZIzj0EAwIER
zBFAiBe17NGTuuk+W901k3Oac4Z90PoMhN1qRqnij9KNEb/XAIhALELZyDWw0fQM8t0pXO86gg9xXFz424rEMlJ
01TM1VxhAAAAAAAA","header":{"applicationData":"496461ea64b50527d2d792df7c38f301300085dd
463e347453ae72debf6f4d14","transactionId":"f9b0d3cfbb64cd155249c691aca3c521de0372572061
6b810d90341f97f347b7","ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEarp8xOh
LX9QliUPS9c54i3cqEfrJD37NG75ieNxncOeFLkjCk","publicKeyHash":"jAMRQqg4nffHrXvfwRfbaEc11b
k3QD3rv5K9xLqLgu0="}}
In this integration method, your application submits information to the Google test environment, receives a
low-value token, and then submits the low value token to Worldpay in a normal payment transaction.
The table below provides key data values you provide in the submitted transaction.
1. Perform an implicit token registration by submitting a Sale or Authorization transaction using the data
shown for the androidpay_1 (orderId) transaction in Table 1.
2. Verify the response message includes the key Response values shown.
3. Perform an explicit token registration by submitting a Register Token Request using the data shown
for the androidpay_2 (orderId) transaction in Table 1.
4. Verify the response message includes the key Response values shown.
NOTE: The instructions and test information contained in this section reflect element from the V12.x
schema. If you use an older version of the schema, you must replace V12.x elements with elements
from your version of the API. For example, the cnpTxnId element in V12.x was litleTxnId in
pre-V12 versions of the schema and cnpToken was litleToken.
NOTE: The key changes daily. In the production environment, each key expires after 1 year. Keys
do not expire in the Pre-Live environment.
2. Verify that your cnpAPI template is coded correctly for this transaction type (refer to Register Token
Transactions on page 292.)
3. Using the data for Order Ids encrypted_1 through encrypted_4 from Table 2-34 and the key
information from the URL, encrypt the supplied values using RSA-OAEP SHA1.
4. Verify that your registerTokenResponse values match those shown in the Key Response
Elements section of Table 2-34. The complete token values are not defined in the table, because the
system generates the tokens dynamically according to your token scheme.
This chapter contains information and examples concerning the structure of cnpAPI transaction
messages. Where differences exist between the structure of Batch and Online transactions, the sections
present examples of both structures.
NOTE: n the cnpAPI, the order of the elements is enforced. Failure to adhere to the element order
as defined in the schema will result in XML validation errors.
NOTE: This chapter does not include examples of the PayFac Instruction-Based Dynamic Payout
transaction types. For additional information about these transactions, please refer to Appendix D,
"PayFac Dynamic Payout".
There are two methods of submitting payment transactions using the cnpAPI format: Online (one
transaction at a time), or Batch. This section provides a high level overview of the request and response
structures used for each submission type.
NOTE: For information and examples of Dynamic Payout Funding Instructions, please refer to
Appendix D, "PayFac Dynamic Payout".
For more information about Batch processing, see Batch Transaction Processing on page 5.
NOTE: Each of the num and amount attributes used in a batchRequest defaults to 0 (zero) if not
specified in the request. In any of the amount fields (authAmount, captureAmount, etc.), the
value is an implied decimal (for example 500=5.00).
NOTE: For information on the XML Validation response and message attributes, please refer to
XML Validation Error Messages on page 880.
Each Online request you send to us is a single transaction. We process Online transactions upon receipt
and return a response file.
CAUTION: If you use Open Access (i.e., Transact) to submit Online transactions, you must limit the
message size to a maximum of 20K characters. We reject any transaction containing more than 20K
characters with a XML validation response value of 5 (see Additional Response Header Error
Messages on page 882).
NOTE: For information on the XML Validation response and message attributes, please refer to
XML Validation Error Messages on page 880.
This section presents structural information of each transaction type for both Online and Batch
submission methods. The structural information is followed by one or more examples of the cnpAPI
transaction. Each structural example shows the parent and all child elements, but does not show
grandchildren. The cnpAPI examples do show child elements to multiple levels.
The element names in the structural examples provide links to the element definitions in Chapter 4.
NOTE: The XML examples in this section are intended to present typical cnpAPI transactions. The
examples may not include every possible element for a particular transaction type. When coding
your XML, always consult the cnpAPI schema files for information concerning all available elements.
NOTE: In the cnpAPI, the order of the elements is enforced. Failure to adhere to the element order
as defined in the schema will result in XML validation errors.
• Authorization Transactions
• Authorization Reversal Transactions
• Activate Transactions (Private Label Gift Card transaction)
• Activate Reversal Transactions (Online Only) (Private Label Gift Card transaction)
• Balance Inquiry Transactions (Private Label Gift Card transaction)
• Cancel Subscription Transactions (Recurring Engine transaction)
• Capture Transactions
• Capture Given Auth Transactions
• Create Plan Transactions (Recurring Engine transaction)
• Credit Transactions
• Deactivate Transactions (Private Label Gift Card transaction)
• Deactivate Reversal Transactions (Online Only) (Private Label Gift Card transaction)
• Deposit Reversal Transactions (Online Only) (Private Label Gift Card transaction)
• eCheck Credit Transactions
• eCheck Prenotification Credit Transactions (Batch Only)
• eCheck Prenotification Sale Transactions (Batch Only)
• eCheck Redeposit Transactions
• eCheck Sale Transactions
• eCheck Verification Transactions
• eCheck Void Transactions (Online Only)
• Force Capture Transactions
• Fraud Check Transaction
• Gift Card Auth Reversal Transactions (Private Label Gift Card transaction)
• Gift Card Capture Transactions (Private Label Gift Card transaction)
• Gift Card Credit Transactions (Private Label Gift Card transaction)
• Load Transactions (Private Label Gift Card transaction)
• Load Reversal Transactions (Online Only) (Private Label Gift Card transaction)
• Status Query Transactions (Online Only)
• Refund Reversal Transactions (Online Only) (Private Label Gift Card transaction)
• Register Token Transactions
• RFR Transactions (Batch Only)
• Sale Transactions
• Translate to Low Value Token Transaction
• Unload Transactions (Private Label Gift Card transaction)
• Unload Reversal Transactions (Online Only) (Private Label Gift Card transaction)
• Update Plan Transactions (Recurring Engine transaction)
• Update Subscription Transactions (Recurring Engine transaction)
• Update Card Validation Number Transactions
• Void Transactions (Online Only)
NOTE: To submit an AVS Only request, submit an Authorization request with the <amount>
element set to 000. The response is identical to an Authorization response message.
Discover 10 days
Mastercard 7 days
Visa 7 days
This section describes the format you must use for an Authorization request, as well as the format of the
Authorization Response you receive from us.
You must structure an Authorization request as shown in the following examples. The structure of an
Authorization request is identical for either an Online or a Batch submission.
<authorization id="Authorization Id" reportGroup="iQ Report Group" customerId="Customer
Id">
<orderId>Order Id</orderId>
<amount>Authorization Amount</amount>
<secondaryAmount>Secondary Amount</secondaryAmount>
<orderSource>Order Entry Source</orderSource>
<customerInfo>
<billToAddress>
<shipToAddress>
[ <card> | <paypal> | <paypage> | <token> | <mpos> | <applepay>]
<cardholderAuthentication>
<processingInstructions>
<pos>
<customBilling>
<taxType>payment or fee</taxType>
<enhancedData>
<allowPartialAuth>
<healthcareIIAS>
<lodgingInfo>
<filtering>
<merchantData>
<recyclingRequest> (for Recovery merchants using Recycling)
<fraudFilterOverride>
<recurringRequest> (for Recurring Engine merchants)
<debtRepayment>true or false</debtRepayment>
<advancedFraudChecks>
<wallet>
<processingType>processingType Enum</processingType>
<originalNetworkTransactionId>Network Txn Value</originalNetworkTransactionId>
<originalTransactionAmount>Amount from Orig Txn</originalTransactionAmount>
<paymentAccountReferenceNumber>Correlation Value</paymentAccountReferenceNumber>
<pinlessDebitRequest>
<skipRealtimeAU>True or False</skipRealtimeAU>
<merchantCategoryCode>MCC Value</merchantCategoryCode>
</authorization>
<amount>2500</amount>
<orderSource>telephone</orderSource>
<billToAddress>
<name>John Doe</name>
<addressLine1>15 Main Street</addressLine1>
<city>San Jose</city>
<state>CA</state>
<zip>95032-1234</zip>
<country>USA</country>
<phone>9782750000</phone>
<email>[email protected]</email>
</billToAddress>
<shipToAddress>
<name>Jane Doe</name>
<addressLine1>15 Main Street</addressLine1>
<city>San Jose</city>
<state>CA</state>
<zip>95032-1234</zip>
<country>USA</country>
<phone>9782750000</phone>
<email>[email protected]</email>
</shipToAddress>
<card>
<type>VI</type>
<number>4005550000081019</number>
<expDate>1110</expDate>
</card>
<customBilling>
<phone>8009990001</phone>
<descriptor>bdi*001</descriptor>
</customBilling>
<allowPartialAuth>true</allowPartialAuth>
</authorization>
</batchRequest>
</cnpRequest>
<password>password</password>
</authentication>
<batchRequest id="01234567" numAuths="2" authAmount="68336" merchantId="100">
<authorization id="AX54321678" reportGroup="RG27">
<orderId>12z58743y1</orderId>
<amount>12522</amount>
<orderSource>retail</orderSource>
<billToAddress>
<zip>95032</zip>
</billToAddress>
<card>
<track>%B40000001^Doe/JohnP^06041...?;40001=0604101064200?</track>
</card>
<pos>
<capability>magstripe</capability>
<entryMode>completeread</entryMode>
<cardholderId>signature</cardholderId>
</pos>
</authorization>
<authorization id="AX54325432" reportGroup="RG12">
<orderId>12z58743y7</orderId>
<amount>55814</amount>
<orderSource>retail</orderSource>
<billToAddress>
<zip>01854</zip>
</billToAddress>
<card>
<type>VI</type>
<number>4005550000081019</number>
<expDate>0911</expDate>
</card>
<pos>
<capability>keyedonly</capability>
<entryMode>keyed</entryMode>
<cardholderId>directmarket</cardholderId>
</pos>
<allowPartialAuth>true</allowPartialAuth>
</authorization>
</batchRequest>
</cnpRequest>
NOTE: The example below uses 3dsAuthenticated as the <orderSource> value. If you
submit the wrong <orderSource> value, we return the response code 370 - Internal System Error
- Contact Vantiv.
Also, the values for the <authenticationValue> and <authenticationTransactionId>
elements in the example are truncated.
NOTE: When you submit the CVV2/CVC2/CID in a registerTokenRequest, the platform encrypts
and stores the value temporarily for later use in a tokenized Auth/Sale transaction submitted without
the value. To use the store value when submitting an Auth/Sale transaction, set the
cardValidationNum value to 000.
</recurringRequest>
</authorization>
</cnpOnlineRequest>
An Authorization response has the following structure. The response message is identical for Online and
Batch transactions except Online includes the <postDate> element.
<authorizationResponse id="Authorization Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<orderId>Order Id</orderId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date transaction posted</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<authCode>Approval Code</authCode>
<approvedAmount>Approved amount for partial Auth<approvedAmount>
<accountInformation>
<accountUpdater>
<fraudResult>
<tokenResponse> (for Tokenized merchants submitting card data)
<enhancedAuthResponse>
<recyclingResponse> (included for declined Auths if feature is enabled)
<recurringResponse> (for Recurring Engine merchants)
<giftCardResponse> (included if Gift Card is Method of Payment)
<applepayResponse>
<cardSuffix>Card Last 4</cardSuffix> (included for ApplePay using VI or MC)
<androidpayResponse>
<networkTransactionId>Txn ID returned from network</networkTransactionId>
<paymentAccountReferenceNumber>Correlation Value</paymentAccountReferenceNumber>
pinlessDebitResponse
</authorizationResponse>
NOTE: The online response format contains a <postDate> element, which indicates the date the
financial transaction will post.
<cnpTxnId>21200000001108</cnpTxnId>
<orderId>F12345</orderId>
<response>000</response>
<responseTime>2017-10-08T21:38:32</responseTime>
<postDate>2017-10-08</postDate>
<message>Approved</message>
<authCode>270005</authCode>
<fraudResult>
<avsResult>11</avsResult>
<cardValidationResult>P</cardValidationResult>
</fraudResult>
<tokenResponse>
<cnpToken>1111100100240005</cnpToken>
<tokenResponseCode>801</tokenResponseCode>
<tokenMessage>Account number was successfully registered</tokenMessage>
<type>VI</type>
<bin>402410</bin>
</tokenResponse>
</authorizationResponse>
<cnpToken>1111100100250017</cnpToken>
<type>VI</type>
<expDate>1114</expDate>
<bin>400555</bin>
</newCardTokenInfo>
<extendedCardResponse>
<code>501</code>
<message>The account was closed</message>
</extendedCardResponse>
</accountUpdater>
<fraudResult>
<avsResult>00</avsResult>
<cardValidationResult>N</cardValidationResult>
<authenticationResult>2</authenticationResult>
</fraudResult>
</authorizationResponse>
</cnpOnlineResponse>
NOTE: To reverse an Authorization on a Closed-loop Gift Card, submit a Gift Card Auth Reversal
transaction, not an Authorization Reversal transaction. See Gift Card Auth Reversal Transactions on
page 276 for additional information.
You must structure an Authorization Reversal request as shown in the following examples. The structure
of the request is identical for either an Online or a Batch submission.
<authReversal id="Authorization Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<amount>Authorization Amount to Reverse</amount>
<actionReason>SUSPECT_FRAUD</actionReason>
</authReversal>
</authReversal>
</batchRequest>
</cnpRequest>
The basic structure of an Authorization Reversal response is identical for Batch and Online responses.
<authReversalResponse id="Authorization Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<message>Response Message</message>
<location>Processing Platform Location</location>
</authReversalResponse>
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must structure an Activate request as shown in the following examples. The structure of the request
is identical for either an Online or a Batch submission.
<activate id="Activate Id" reportGroup="iQ Report Group" customerId="Customer Id">
<orderId>Order Id</orderId>
<amount>Activation Amount</amount>
<orderSource>Order Entry Source</orderSource>
[ <card> | <virtualGiftCard> ]
</activate>
An Activate response has the following structure. The response message is identical for Online and Batch
transactions except Online includes the <postDate> element.
<activateResponse id="Activate Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date transaction posted</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<fraudResult>
<giftCardResponse>
<virtualGiftCardResponse>
</activateResponse>
<response>000</response>
<responseTime>2017-01-25T15:13:43</responseTime>
<postDate>2017-01-25</postDate>
<message>Approved</message>
<giftCardResponse>
<txnTime>2017-01-25T15:13:38</txnTime>
<refCode>123456</refCode>
<systemTraceId>123456</systemTraceId>
<sequenceNumber>123456</sequenceNumber>
<availableBalance>5000</availableBalance>
</giftCardResponse>
<virtualGiftCardResponse>
<accountNumber>9000000000000001</accountNumber>
<pin>1234</pin>
</virtualGiftCardResponse>
</activateResponse>
</cnpOnlineResponse>
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must structure an Activate Reversal request as shown in the following examples.
<activateReversal id="Activate Reversal Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id from Activate Response</cnpTxnId>
<card>
<virtualGiftCardBin>
<originalRefCode>Reference Code from Activate Response</originalRefCode>
<originalAmount>Amount from Activate Transaction</originalAmount>
<originalTxnTime>Transaction Time from Activate Response</originalTxnTime>
<originalSystemTraceId>Trace Id from Activate Response</originalSystemTraceId>
<originalSequenceNumber>Seq Num from Activate Rsp</originalSequenceNumber>
</activateReversal>
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must structure an Balance Inquiry request as shown in the following examples. The structure of the
request is identical for either an Online or a Batch submission.
<balanceInquiry id="Balance Inquiry Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<orderId>Order Id</orderId>
<orderSource>Order Entry Source</orderSource>
<card>
</balanceInquiry>
<password>Password</password>
</authentication>
<balanceInquiry id="834262" reportGroup="ABC Division" customerId="038945">
<orderId>65347567</orderId>
<orderSource>ecommerce</orderSource>
<card>
<type>GC</type>
<number>9000000000000001</number>
<pin>1234</pin>
</card>
</balanceInquiry>
</cnpOnlineRequest>
An Balance Inquiry response has the following structure. The response message is identical for Online
and Batch transactions except Online includes the <postDate> element.
<balanceInquiryResponse id="Balance Inquiry Id" reportGroup="iQ Report
Group" customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<orderId>Order Id</orderId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date transaction posted</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<fraudResult>
<giftCardResponse>
</balanceInquiryResponse>
<cardValidationResult>N</cardValidationResult>
</fraudResult>
<giftCardResponse>
<availableBalance>2000</activateReversalResponse>
</cnpOnlineResponse>
You must structure an Cancel Subscription request as shown in the following examples. The structure of
the request is identical for either an Online or a Batch submission.
<cancelSubscription>
<subscriptionId>ID of Subscription to Cancel</subscriptionId>
</cancelSubscription>
A Cancel Subscription response has the following structure. The response message is identical for Online
and Batch transactions except Online includes the <postDate> element.
<cancelSubscriptionResponse>
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<message>Response Message</message>
<location>Processing Platform Location</location>
NOTE: To perform a capture on a Closed-loop Gift Card, submit a Gift Card Capture transaction,
not an Capture transaction. See Gift Card Capture Transactions on page 278 for additional
information.
You send a Capture after the order has been fulfilled. In some cases, it is not possible to fulfill a
customer’s entire order in one shipment (for example, if some items are back ordered, or some shipped
from an off-site DCS). In this situation, you can send a Partial Capture transaction by setting the partial
attribute to true. A Partial Capture contains only the data relevant to the items that were actually shipped,
enabling you to settle the funds related to those items.
NOTE: If you settle in a currency other than US or Canada, you cannot use partial captures.
You must structure a Capture request as shown in the following examples. The structure of the request is
identical for either an Online or a Batch submission.
<capture id="Capture Id" reportGroup="iQ Report Group" customerId="Customer Id"
partial="false">
<cnpTxnId>Transaction Id</cnpTxnId>
<amount>Authorization Amount</amount>
<surchargeAmount>Surcharge Amount</surchargeAmount>
<enhancedData>
<processingInstructions>
<payPalOrderComplete>Set to true for final Capture</payPalOrderComplete>
<payPalNotes>Notes</paypalNotes>
<lodgingInfo>
<pin>Gift Card Pin Number</pin
</capture>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>table</itemDescription>
<productCode>TB123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>1500</taxAmount>
<lineItemTotal>30000</lineItemTotal>
<lineItemTotalWithTax>31500</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>301</commodityCode>
<unitCost>300.00</unitCost>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>500</taxAmount>
<taxRate>0.01667</taxRate>
<taxTypeIdentifier>03</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
</lineItemData>
<lineItemData>
<itemSequenceNumber>2</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<lineItemTotal>20000</lineItemTotal>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>301</commodityCode>
<unitCost>200.00</unitCost>
</lineItemData>
</enhancedData>
</capture>
</batchRequest>
</cnpRequest>
<password>password</password>
</authentication>
<batchRequest id="01234567" numAuths="0" authAmount="0" numCaptures="1"
captureAmount="45814" numCredits="0" creditAmount="0" numSales="0"
saleAmount="0" merchantId="100">
<capture id="AX54325432" reportGroup="RG12" partial="true">
<cnpTxnId>84568457</cnpTxnId>
<amount>45814</amount>
<enhancedData>
<customerReference>PO12346</customerReference>
<salesTax>2100</salesTax>
<taxExempt>false</taxExempt>
<discountAmount>0</discountAmount>
<shippingAmount>3714</shippingAmount>
<dutyAmount>0</dutyAmount>
<shipFromPostalCode>01851</shipFromPostalCode>
<destinationPostalCode>01851</destinationPostalCode>
<destinationCountryCode>USA</destinationCountryCode>
<invoiceReferenceNumber>123456</invoiceReferenceNumber>
<orderDate>2016-09-14</orderDate>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>500</taxAmount>
<taxRate>0.01667</taxRate>
<taxTypeIdentifier>00</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>table</itemDescription>
<productCode>TB123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>1500</taxAmount>
<lineItemTotal>30000</lineItemTotal>
<lineItemTotalWithTax>31500</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>301</commodityCode>
<unitCost>300.00</unitCost>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>500</taxAmount>
<taxRate>0.01667</taxRate>
<taxTypeIdentifier>03</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
</lineItemData>
<lineItemData>
<itemSequenceNumber>2</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<lineItemTotal>20000</lineItemTotal>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>301</commodityCode>
<unitCost>200.00</unitCost>
</lineItemData>
</enhancedData>
</capture>
</batchRequest>
</cnpRequest>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>00</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>125</taxAmount>
<lineItemTotal>9380</lineItemTotal>
<lineItemTotalWithTax>9505</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>93.80</unitCost>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>03</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
</lineItemData>
<lineItemData>
<itemSequenceNumber>2</itemSequenceNumber>
<itemDescription>table</itemDescription>
<productCode>TB123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<lineItemTotal>30000</lineItemTotal>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>300.00</unitCost>
</lineItemData>
</enhancedData>
</capture>
</cnpOnlineRequest>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
</lineItemData>
<lineItemData>
<itemSequenceNumber>2</itemSequenceNumber>
<itemDescription>table</itemDescription>
<productCode>TB123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<lineItemTotal>30000</lineItemTotal>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>300.00</unitCost>
</lineItemData>
</enhancedData>
</capture>
</cnpOnlineRequest>
A Capture response has the following structure. The response message is identical for Online and Batch
transactions except Batch always includes the <orderId> element, while Online includes the
<postDate> element.
<captureResponse id="Authorization Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date Of Posting</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<accountUpdater>
</captureResponse>
<message>Approved</message>
</captureResponse>
<captureResponse id="AX54325432" reportGroup="RG12">
<cnpTxnId>84568457</cnpTxnId>
<response>000</response>
<responseTime>2017-04-01T10:24:31</responseTime>
<message>message</message>
</captureResponse>
</batchResponse>
</cnpResponse>
You must specify the Capture Given Auth request as follows. The structure of the request is identical for
either an Online or a Batch submission.
<captureGivenAuth id="Capture Given Auth Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<orderId>Order Id</orderId>
<authInformation>
<amount>Authorization Amount</amount>
<secondaryAmount>Secondary Amount</secondaryAmount>
</card>
<enhancedData>
<customerReference>PO12345</customerReference>
<salesTax>125</salesTax>
<taxExempt>false</taxExempt>
<discountAmount>0</discountAmount>
<shippingAmount>495</shippingAmount>
<dutyAmount>0</dutyAmount>
<shipFromPostalCode>01851</shipFromPostalCode>
<destinationPostalCode>01851</destinationPostalCode>
<destinationCountryCode>USA</destinationCountryCode>
<invoiceReferenceNumber>123456</invoiceReferenceNumber>
<orderDate>2016-09-21</orderDate>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0055</taxRate>
<taxTypeIdentifier>00</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>125</taxAmount>
<lineItemTotal>9380</lineItemTotal>
<lineItemTotalWithTax>9505</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>93.80</unitCost>
</lineItemData>
</enhancedData>
</captureGivenAuth>
</batchRequest>
</cnpRequest>
</authentication>
<captureGivenAuth id="AX54321678" reportGroup="RG27">
<orderId>orderId</orderId>
<authInformation>
<authDate>2016-08-24</authDate>
<authCode>123456</authCode>
</authInformation>
<amount>10000</amount>
<orderSource>ecommerce</orderSource>
<card>
<type>VI</type>
<number>4005550000081019</number>
<expDate>0910</expDate>
</card>
<enhancedData>
<customerReference>PO12345</customerReference>
<salesTax>125</salesTax>
<deliveryType>TBD</deliveryType>
<taxExempt>false</taxExempt>
<discountAmount>0</discountAmount>
<shippingAmount>495</shippingAmount>
<dutyAmount>0</dutyAmount>
<shipFromPostalCode>01851</shipFromPostalCode>
<destinationPostalCode>01851</destinationPostalCode>
<destinationCountryCode>USA</destinationCountryCode>
<invoiceReferenceNumber>123456</invoiceReferenceNumber>
<orderDate>2016-08-14</orderDate>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>00</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>125</taxAmount>
<lineItemTotal>9380</lineItemTotal>
<lineItemTotalWithTax>9505</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>93.80</unitCost>
</lineItemData>
</enhancedData>
</captureGivenAuth>
</cnpOnlineRequest>
A Capture Given Auth response has the following structure. The response message is identical for Online
and Batch transactions except Online includes the <postDate> element.
<captureGivenAuthResponse id="Capture Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
Example: Capture Given Auth Response for Tokenized Merchant Sending Card Data
<captureGivenAuthResponse id="99999" reportGroup="RG1" customerId="444">
<cnpTxnId>21200000022005</cnpTxnId>
<response>000</response>
<responseTime>2017-04-25T04:00:00</responseTime>
<postDate>2017-04-26</postDate>
<message>Approved</message>
<tokenResponse>
<cnpToken>1111000100409510</cnpToken>
<tokenResponseCode>801</tokenResponseCode>
<tokenMessage>Account number was successfully registered</tokenMessage>
<type>VI</type>
<bin>432610</bin>
</tokenResponse>
</captureGivenAuthResponse>
You must specify the Create Plan transaction as follows. The structure of the request is identical for either
an Online or a Batch submission.
<createPlan>
<planCode>Plan Reference Code</planCode>
<name>Name of Plan</name>
<description>Description of Plan</description>
<intervalType>The Type of Interval</intervalType>
<amount>Amount of Recurring Payment</amount>
<numberOfPayments>1 to 99</numberOfRemianingPayments>
<trialNumberOfIntervals>Number of Trial Intervals</trialNumberOfIntervals>
<trialIntervalType>Type of Trial Period Interval</trialIntervalType>
<active>true or false</active>
</createPlan>
<amount>5000</amount>
<numberOfPayments>4</numberOfPayments>
<trialNumberOfIntervals>1</trialNumberOfIntervals>
<trialIntervalType>MONTH</trialIntervalType>
<active>true</active>
</createPlan>
</cnpOnlineRequest>
The Create Plan response message is identical for Online and Batch transactions.
<createPlanResponse>
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<message>Response Message</message>
<location>Processing Platform Location</location>
<responseTime>Date and Time in GMT</responseTime>
<planCode>Plan Reference Code</subscriptionId>
</createPlanResponse>
NOTE: To perform a credit on a Closed-loop Gift Card, submit a Gift Card Credit transaction, not an
Credit transaction. See Gift Card Credit Transactions on page 280 for additional information.
• Capture Transactions
• Capture Given Auth Transactions
• Force Capture Transactions
• Sale Transactions
• External Sale or Capture Transactions
NOTE: If enabled for Auth for Refund, we automatically generate an Authorization before
processing the Credit. If the Issuing Bank declines the Authorization, you receive the decline
response code for the Authorization in the response message. If the Authorization passes, you
receive an Approved response code in the response message, but still must check the Declined
Transaction report to verify the Issuing Bank did not decline the Credit transaction.
NOTE: Although there are two different scenarios for Credit requests, there is only one scenario for
the Credit response.
You must specify the Credit request for a Worldpay processed transaction as follows. The structure of the
request is identical for either an Online or a Batch submission.
<credit id="Credit Id" reportGroup="iQ Report Group" customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<amount>Authorization Amount</amount>
<secondaryAmount>Secondary Amount</secondaryAmount>
<customBilling>
<enhancedData>
<lodgingInfo>
<processingInstructions>
<actionReason>SUSPECT_FRAUD</actionReason>
</credit>
NOTE: Although it is not required, if you choose to include <amount> elements in your Credit
transaction, you must include the total amount in the creditAmount attribute of the
<batchrequest>. If you do not specify amounts, set the creditAmount attribute to 0.
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>93.80</unitCost>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>03</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
</lineItemData>
</enhancedData>
</credit>
</batchRequest>
</cnpRequest>
<orderDate>2016-07-14</orderDate>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>00</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>125</taxAmount>
<lineItemTotal>9380</lineItemTotal>
<lineItemTotalWithTax>9505</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>93.80</unitCost>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>03</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
</lineItemData>
<lineItemData>
<itemSequenceNumber>2</itemSequenceNumber>
<itemDescription>table</itemDescription>
<productCode>TB123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<lineItemTotal>30000</lineItemTotal>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>300.00</unitCost>
</lineItemData>
</enhancedData>
</credit>
</cnpOnlineRequest>
You must specify the Credit request for a Non-Worldpay processed transaction as follows. The structure
of the request is identical for either an Online or a Batch submission.
NOTE: Although the schema shows <paypal> as an optional element for a Credit against a
non-Worldpay processed transaction, refunds of this type are not supported for PayPal. If you need
to refund non-Worldpay processed transactions and have not maintained a temporary relationship
with your former processor for this purpose, please ask your Relationship Manager for alternative
options.
<orderSource>ecommerce</orderSource>
<billToAddress>
<name>John Doe</name>
<addressLine1>123 4th street</addressLine1>
<addressLine2>Apt. 20</addressLine2>
<addressLine3>second floor</addressLine3>
<city>San Jose</city>
<state>CA</state>
<zip>95032</zip>
<country>USA</country>
<email>[email protected]</email>
<phone>408-555-1212</phone>
</billToAddress>
<card>
<type>MC</type>
<number>5186005800001012</number>
<expDate>1110</expDate>
</card>
<enhancedData>
<customerReference>PO12345</customerReference>
<salesTax>125</salesTax>
<taxExempt>false</taxExempt>
<discountAmount>0</discountAmount>
<shippingAmount>495</shippingAmount>
<dutyAmount>0</dutyAmount>
<shipFromPostalCode>01851</shipFromPostalCode>
<destinationPostalCode>01851</destinationPostalCode>
<destinationCountryCode>USA</destinationCountryCode>
<invoiceReferenceNumber>123456</invoiceReferenceNumber>
<orderDate>2016-09-14</orderDate>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>00</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>125</taxAmount>
<lineItemTotal>9380</lineItemTotal>
<lineItemTotalWithTax>9505</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>93.80</unitCost>
</lineItemData>
</enhancedData>
</credit>
</batchRequest>
</cnpRequest>
<phone>5555555555</phone>
<descriptor>descriptor</descriptor>
</customBilling>
<enhancedData>
<customerReference>PO12345</customerReference>
<salesTax>125</salesTax>
<taxExempt>false</taxExempt>
<discountAmount>0</discountAmount>
<shippingAmount>495</shippingAmount>
<dutyAmount>0</dutyAmount>
<shipFromPostalCode>01851</shipFromPostalCode>
<destinationPostalCode>01851</destinationPostalCode>
<destinationCountryCode>USA</destinationCountryCode>
<invoiceReferenceNumber>123456</invoiceReferenceNumber>
<orderDate>2011-08-14</orderDate>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>00</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>125</taxAmount>
<lineItemTotal>9380</lineItemTotal>
<lineItemTotalWithTax>9505</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>93.80</unitCost>
</lineItemData>
<lineItemData>
<itemSequenceNumber>2</itemSequenceNumber>
<itemDescription>table</itemDescription>
<productCode>TB123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<lineItemTotal>30000</lineItemTotal>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>300.00</unitCost>
</lineItemData>
</enhancedData>
</credit>
</cnpOnlineRequest>
The Credit response message is identical for Online and Batch transactions except Online includes the
postDate element.
NOTE: Although there are two different scenarios for Credit requests, there is only one scenario for
the Credit response.
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must structure a Deactivate request as shown in the following examples. The structure of the request
is identical for either an Online or a Batch submission.
<deactivate id="Activate Id" reportGroup="iQ Report Group" customerId="Customer Id">
<orderId>Order Id</orderId>
<orderSource>Order Entry Source</orderSource>
<card>
</deactivate>
<user>User Name</user>
<password>Password</password>
</authentication>
<deactivate id="834262" reportGroup="ABC Division" customerId="038945">
<orderId>65347567</orderId>
<orderSource>ecommerce</orderSource>
<card>
<type>GC</type>
<number>9000000000000001</number>
<pin>1234</pin>
</card>
</deactvate>
</cnpOnlineRequest>
A Deactivate response has the following structure. The response message is identical for Online and
Batch transactions except Online includes the <postDate> element.
<deactivateResponse id="Deactivate Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date transaction posted</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<fraudResult>
<approvedAmount>5000</approvedAmount>
<giftCardResponse>
</deactivateResponse>
<giftCardResponse>
<availableBalance>0</availableBalance>
<beginningBalance>5000</beginningBalance>
<endingBalance>0</endingBalance>
</giftCardResponse>
</deactivateResponse>
</cnpOnlineResponse>
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must structure an Deactivate Reversal request as shown in the following examples.
<deactivateReversal id="Deactivate Reversal Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id from Load Response</cnpTxnId>
<card>
<originalRefCode>Reference Code from Deactivate Response</originalRefCode>
<originalAmount>Amount from Deactivate Transaction</originalAmount>
<originalTxnTime>Transaction Time from Deactivate Response</originalTxnTime>
<originalSystemTraceId>Trace Id from Deactivate Resp</originalSystemTraceId>
<originalSequenceNumber>Seq Num from Deactivate Resp</originalSequenceNumber>
</deactivateReversal>
<cnpTxnId>1234567890123456789</cnpTxnId>
<card>
<type>GC</type>
<number>1234102000003558</number>
<cardValidationNum>888</cardValidationNum>
<pin>1234</pin>
</card>
<originalRefCode>123456</originalRefCode>
<originalAmount>1900</originalAmount>
<originalTxnTime>2017-03-21T10:02:46</originalTxnTime>
<originalSystemTraceId>678901</originalSystemTraceId>
<originalSequenceNumber>123456</originalSequenceNumber>
</deactivateReversal>
</cnpOnlineRequest>
<systemTraceId>834528</systemTraceId>
<sequenceNumber>123456</sequenceNumber>
<availableBalance>5000</availableBalance>
</giftCardResponse>
</deactivateReversalResponse>
</cnpOnlineResponse>
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must structure an Deposit Reversal request as shown in the following examples.
<depositReversal id="Deposit Reversal Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id from Load Response</cnpTxnId>
<card>
<originalRefCode>Reference Code from Gift Card Capture Resp</originalRefCode>
<originalAmount>Amount from Gift Card Capture Resp</originalAmount>
<originalTxnTime>Transaction Time from GC Capture Response</originalTxnTime>
<originalSystemTraceId>Trace Id from GC Capture Resp</originalSystemTraceId>
<originalSequenceNumber>Seq Num from GC Capture Resp</originalSequenceNumber>
</depositReversal>
<card>
<type>GC</type>
<number>1234102000003558</number>
<cardValidationNum>888</cardValidationNum>
</card>
<originalRefCode>123456</originalRefCode>
<originalAmount>1900</originalAmount>
<originalTxnTime>2017-03-21T10:02:46</originalTxnTime>
<originalSystemTraceId>678901</originalSystemTraceId>
<originalSequenceNumber>123456</originalSequenceNumber>
</depositReversal>
</cnpOnlineRequest>
<availableBalance>5000</availableBalance>
</giftCardResponse>
</depositReversalResponse>
</cnpOnlineResponse>
NOTE: Although there are two different scenarios for eCheck Credit requests, the response
message uses the same structure.
To request an eCheck Credit against an eCheck Sale that had been settled by us, you only need to
specify the <cnpTxnId> element. When you specify this element, the application uses the <cnpTxnId>
to look up the referenced echeckSale transaction and obtain the necessary information. In this case, the
<amount> element is optional, but should be included if the credit amount is less than the captured
amount. If you do not include the <amount> element, the system assumes the credit to be for the total
amount of the referenced transaction.
When requesting a echeckCredit against an echeckSale that occurred within our system, specify the
Credit request as follows:
<echeckCredit id="Credit Id" reportGroup="iQ Report Group" customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<amount>Credit Amount</amount>
<secondaryAmount>Secondary Amount</secondaryAmount>
<customBilling> (Do not use)
<customIdentifier>
</echeckCredit>
numBatchRequests="1">
<authentication>
<user>userName</user>
<password>password</password>
</authentication>
<batchRequest id="xmlbat01" numEcheckCredit="3" echeckCreditAmount="12100"
merchantId="000053">
<echeckCredit id="credit1" reportGroup="new53" customerId="53">
<cnpTxnId>4455667788</cnpTxnId>
<amount>1000</amount>
</echeckCredit>
<echeckCredit reportGroup="new53">
<cnpTxnId>4455667789</cnpTxnId>
<amount>1100</amount>
</echeckCredit>
<echeckCredit reportGroup="new53">
<orderId>12z58743y1</orderId>
<amount>10000</amount>
<orderSource>ecommerce</orderSource>
<billToAddress>
<name>John Doe</name>
<addressLine1>123 4th street</addressLine1>
<addressLine2>Apt. 20</addressLine2>
<addressLine3>second floor</addressLine3>
<city>San Jose</city>
<state>CA</state>
<zip>95032</zip>
<country>USA</country>
<email>[email protected]</email>
<phone>408-555-1212</phone>
</billToAddress>
<echeck>
<accType>Checking</accType>
<accNum>5186005800001012</accNum>
<routingNum>000010101</routingNum>
<checkNum>1104</checkNum>
</echeck>
</echeckCredit>
</batchRequest>
</cnpRequest>
If the original eCheck Sale transaction was not processed via our system, or the if the <cnpTxnId> for
the original eCheck Sale transaction is not available, specify eCheck Credit request as follows:
<echeckCredit id="eCheckCredit Id" reportGroup="iQ Report Group" customerId="Customer
Id">
<orderId>Order Id</orderId>
<amount>Credit Amount</amount>
<secondaryAmount>Secondary Amount</secondaryAmount>
<orderSource>Order Entry Source</orderSource>
<billToAddress>
<echeck> or <echeckToken>
<customBilling> (Do not use)
<merchantData>
</echeckCredit>
The third transaction shown in the eCheck Credit Request example on page 251 shows an example of a
Credit request against a non-Worldpay processed transaction.
The eCheck Credit message is identical for either type of eCheck Credit request. The
<accountUpdater> element is included only if you submit account information in the request
transaction for which a NOC exists. In this case the system automatically updates the information sent to
the ACH network and includes the change information in the response.
The eCheck Credit response has the following structure:
<echeckCreditResponse id="eCheck Credit Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<message>Response Message</message>
<location>Processing Platform Location</location>
<postDate>Date of Posting</postDate> (Online Only)
<accountUpdater>Account Change Info</accountUpdater>
<tokenResponse> (for Tokenized merchants submitting account data)
</echeckCreditResponse>
You must specify the eCheck Prenotification Credit request using the following format:
<echeckPreNoteCredit id="eCheck PreNote Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<orderId>Order Id</orderId>
<orderSource>Order Entry Source</orderSource>
<billToAddress>
<echeck>
<merchantData>
</echeckPreNoteCredit>
<lastName>Doe</lastName>
<addressLine1>123 4th street</addressLine1>
<addressLine2>Apt. 20</addressLine2>
<addressLine3>second floor</addressLine3>
<city>San Jose</city>
<state>CA</state>
<zip>95032</zip>
<country>USA</country>
<email>[email protected]</email>
<phone>408-555-1212</phone>
</billToAddress>
<echeck>
<accType>Checking</accType>
<accNum>5186005800001012</accNum>
<routingNum>000010101</routingNum>
<checkNum>1104</checkNum>
</echeck>
</echeckPreNoteCredit>
</batchRequest>
</cnpRequest>
<response>000</response>
<responseTime>2017-03-01T10:24:31</responseTime>
<message>Approved</message>
</echeckPreNoteCreditResponse>
<echeckPreNoteCreditResponse id="AX54325432" reportGroup="RG12">
<cnpTxnId>84568457</cnpTxnId>
<orderId>12z58743y7</orderId>
<response>000</response>
<responseTime>2017-03-01T10:24:31</responseTime>
<message>Approved</message>
</echeckPreNoteCreditResponse>
</batchResponse>
</cnpResponse>
You must specify the eCheck Prenotification Credit request using the following format:
<echeckPreNoteSale id="eCheck PreNote Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<orderId>Order Id</orderId>
<orderSource>Order Entry Source</orderSource>
<billToAddress>
<echeck>
<merchantData>
</echeckPreNotesale>
<orderSource>telephone</orderSource>
<billToAddress>
<firstName>John</firstName>
<lastName>Doe</lastName>
<addressLine1>123 4th street</addressLine1>
<addressLine2>Apt. 20</addressLine2>
<addressLine3>second floor</addressLine3>
<city>San Jose</city>
<state>CA</state>
<zip>95032</zip>
<country>USA</country>
<email>[email protected]</email>
<phone>408-555-1212</phone>
</billToAddress>
<echeck>
<accType>Checking</accType>
<accNum>5186005800001012</accNum>
<routingNum>000010101</routingNum>
<checkNum>1104</checkNum>
</echeck>
</echeckPreNoteSale>
</batchRequest>
</cnpRequest>
NOTE: Do not use this transaction type if you are enabled for the Auto Redeposit feature. If you are
enabled for the Auto Redeposit feature, the system will reject any echeckRedeposit transaction
you submit.
You must specify the eCheck Redeposit request using the following format:
<echeckRedeposit id="eCheck Redeposit Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<echeck> or <echeckToken>
<merchantData>
<customIdentifier>
</echeckredeposit>
NOTE: If you include the echeck element, the values submitted for accType, accNum, and
routingNum children must match those submitted in the original echeckSale transaction.
</echeckRedeposit>
<echeckRedeposit reportGroup="001603">
<cnpTxnId>3456557123</cnpTxnId>
<echeck>
<accType>Savings</accType>
<accNum>10999999444</accNum>
<routingNum>114567895</routingNum>
</echeck>
<merchantdata>
<affiliate>ABC Marketing</affiliate>
</merchantdata>
</echeckRedeposit>
<echeckRedeposit reportGroup="001603">
<cnpTxnId>123456789</cnpTxnId>
</echeckRedeposit>
</batchRequest>
</cnpRequest>
The eCheck Redeposit response indicates that we have received your eCheck Redeposit request. This
does not indicate when funds will be transferred. The <accountUpdater> element is included only if the
account information submitted in the request transaction has changed (NOC exists). In this case the
system automatically updates the information sent to the ACH network and includes the change
information in the response.
The eCheck Sale response has the following structure:
<echeckRedepositResponse id="eCheckRedeposit Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<message>Response Message</message>
<location>Processing Platform Location</location>
<postDate>Date of Posting</postDate> (Online Only)
<accountUpdater>Account Change Info</accountUpdater>
</echeckRedepositResponse>
<cnpTxnId>84568456</cnpTxnId>
<response>000</response>
<responseTime>2017-06-01T10:24:31</responseTime>
<message>Approved</message>
</echeckRedepositResponse>
<echeckRedepositResponse id="AX54325432" reportGroup="RG12">
<cnpTxnId>84568457</cnpTxnId>
<response>000</response>
<responseTime>2017-06-01T10:24:31</responseTime>
<message>Approved</message>
<accountUpdater>
<originalAccountInfo>
<accType>Checking</accType>
<accNum>5186005800001012</accNum>
<routingNum>000010101</routingNum>
</originalAccountInfo>
<newAccountInfo>
<accType>Checking</accType>
<accNum>5499576040500006</accNum>
<routingNum>000010102</routingNum>
</newAccountInfo>
</accountUpdater>
</echeckRedepositResponse>
</batchResponse>
</cnpResponse>
NOTE: To perform a verification you must include the following optional children of the
billToAddress element in your request: firstName, lastName, companyName (if accType =
Corporate or Corp Savings), address1 (address 2 and 3 if needed), city, state, zip, and
phone.
The value for the orderSource element must be one of the following: telephone, ecommerce, or
recurringtel.
You must specify the eCheck Sale request using the following format:
<accType>Checking</accType>
<accNum>5186005800001012</accNum>
<routingNum>000010101</routingNum>
<checkNum>1104</checkNum>
</echeck>
</echeckSale>
</batchRequest>
</cnpRequest>
The eCheck Sale response indicates that we have received your eCheck Sale request. This does not
indicate when funds will be transferred. The <accountUpdater> element is included only if the account
information submitted in the request transaction has changed (NOC exists). In this case the system
automatically updates the information sent to the ACH network and includes the change information in the
response.
<cnpTxnId>84568456</cnpTxnId>
<response>000</response>
<responseTime>2016-09-01T10:24:31</responseTime>
<message>Approved</message>
</echeckSalesResponse>
<echeckSalesResponse id="AX54325432" reportGroup="RG12">
<cnpTxnId>84568457</cnpTxnId>
<response>000</response>
<responseTime>2016-09-01T10:24:31</responseTime>
<message>Approved</message>
<accountUpdater>
<originalAccountInfo>
<accType>Checking</accType>
<accNum>5186005800001012</accNum>
<routingNum>000010101</routingNum>
</originalAccountInfo>
<newAccountInfo>
<accType>Checking</accType>
<accNum>5499576040500006</accNum>
<routingNum>000010102</routingNum>
</newAccountInfo>
</accountUpdater>
</echeckSalesResponse>
</batchResponse>
</cnpResponse>
NOTE: While eCheck Verification is a valuable tool that you can use to reduce possible fraud and
loss, unlike a credit card authorization, it does not check for the availability of funds, nor does it
place a hold on any funds.
You must specify the eCheck Verification request using the following format:
IMPORTANT: For an eCheckVerification transaction, you must submit the firstName and
lastName elements instead of the name element (middleInitial is optional). For a corporate
account you must include the companyName element in addition to the firstName and lastName
elements. In both cases, you also must include the address, city, state, zip and phone
information.
For a corporate account, if you do not have the name of the check issuer, you can use a value of
“unavailable” for the firstName and lastName elements.
</billToAddress>
<echeck>
<accType>Checking</accType>
<accNum>5186005800001012</accNum>
<routingNum>000010101</routingNum>
<checkNum>1104</checkNum>
</echeck>
<merchantData>
<campaign>New Campaign</campaign>
</merchantData>
</echeckVerification>
</batchRequest>
</cnpRequest>
NOTE: If you do not have the name of the check issuer, you can use a value of “unavailable”
for the firstName and lastName elements.
</billToAddress>
<echeck>
<accType>Corporate</accType>
<accNum>5186005800001012</accNum>
<routingNum>000010101</routingNum>
<checkNum>1104</checkNum>
</echeck>
</echeckVerification>
</batchRequest>
</cnpRequest>8.6
The <accountUpdater> element is included only if the account information submitted in the request
transaction has changed (NOC exists). In this case the system automatically updates the information sent
to the ACH network and includes the change information in the response.
The eCheck Verification response has the following structure:
<echeckVerificationResponse id="echeckVerification Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<message>Response Message</message>
<location>Processing Platform Location</location>
<postDate>Date of Posting</postDate> (Online Only)
<tokenResponse> (for Tokenized merchants submitting account data)
<accountUpdater>Account Change Info</accountUpdater>
</echeckSaleResponse>
<response>000</response>
<responseTime>2016-09-01T10:24:31</responseTime>
<message>Approved</message>
<accountUpdater>
<originalAccountInfo>
<accType>Checking</accType>
<accNum>5186005800001012</accNum>
<routingNum>000010101</routingNum>
</originalAccountInfo>
<newAccountInfo>
<accType>Checking</accType>
<accNum>5499576040500006</accNum>
<routingNum>000010102</routingNum>
</newAccountInfo>
</accountUpdater>
</echeckVerificationResponse>
</batchResponse>
</cnpResponse>
The eCheck Void request references the <cnpTxnId> of the previously approved transaction. You must
structure an eCheck Void request as follows.
<echeckVoid id = "echeckVoid Id" reportGroup="iQ Report Group">
<cnpTxnId>Transaction Id</cnpTxnId>
</echeckVoid>
</echeckVoid>
</cnpOnlineRequest>
CAUTION: Merchants must be authorized by Worldpay before submitting transactions of this type.
In some instances, using a Force Capture transaction can lead to chargebacks and fines.
You must specify the Force Capture request as follows. The structure of the request is identical for either
an Online or a Batch submission.
<discountAmount>0</discountAmount>
<shippingAmount>495</shippingAmount>
<dutyAmount>0</dutyAmount>
<shipFromPostalCode>01851</shipFromPostalCode>
<destinationPostalCode>01851</destinationPostalCode>
<destinationCountryCode>USA</destinationCountryCode>
<invoiceReferenceNumber>123456</invoiceReferenceNumber>
<orderDate>2016-09-14</orderDate>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>00</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>125</taxAmount>
<lineItemTotal>9380</lineItemTotal>
<lineItemTotalWithTax>9505</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>93.80</unitCost>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>03</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
</lineItemData>
</enhancedData>
</forceCapture>
</batchRequest>
</cnpRequest>
<user>userName</user>
<password>password</password>
</authentication>
<forceCapture id="AX54321678" reportGroup="RG27" customerId="038945">
<orderId>orderId</orderId>
<amount>10000</amount>
<orderSource>ecommerce</orderSource>
<card>
<type>VI</type>
<number>4005550000081019</number>
<expDate>0907</expDate>
</card>
<enhancedData>
<customerReference>PO12345</customerReference>
<salesTax>125</salesTax>
<taxExempt>false</taxExempt>
<discountAmount>0</discountAmount>
<shippingAmount>495</shippingAmount>
<dutyAmount>0</dutyAmount>
<shipFromPostalCode>01851</shipFromPostalCode>
<destinationPostalCode>01851</destinationPostalCode>
<destinationCountryCode>USA</destinationCountryCode>
<invoiceReferenceNumber>123456</invoiceReferenceNumber>
<orderDate>2016-08-14</orderDate>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>00</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>125</taxAmount>
<lineItemTotal>9380</lineItemTotal>
<lineItemTotalWithTax>9505</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>93.80</unitCost>
</lineItemData>
</enhancedData>
</forceCapture>
</cnpOnlineRequest>
The Force Capture response message is identical for Online and Batch transactions, except Online
includes the <postDate> element. The Force Capture response has the following structure:
<forceCaptureResponse id="Capture Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date of Posting</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<tokenResponse> (for Tokenized merchants submitting card data)
<accountUpdater>
</forceCaptureResponse>
<postDate>2016-07-11</postDate>
<message>Approved</message>
</forceCaptureResponse>
</cnpOnlineResponse>
Example: Force Capture Response for Tokenized Merchant Sending Card Data
A tokenized merchant that includes card information in the request receives a response message that
includes the token element. The example below is an Online response.
<forceCaptureResponse id="99999" reportGroup="RG1" customerId="444">
<cnpTxnId>21200000039504</cnpTxnId>
<response>000</response>
<responseTime>2016-10-20T18:25:38</responseTime>
<postDate>2016-10-20</postDate>
<message>Approved</message>
<tokenResponse>
<cnpToken>111310880008000</cnpToken>
<tokenResponseCode>801</tokenResponseCode>
<tokenMessage>Account number was successfully registered</tokenMessage>
<type>AX</type>
<bin></bin>
</tokenResponse>
</forceCaptureResponse>
</cnpOnlineRequest>
You must specify the Gift Card Auth Reversal request as follows. The structure of the request is identical
for either an Online or a Batch submission.
<giftCardAuthReversal id="Id" reportGroup="iQ Report Group" customerId="Customer Id">
A Gift Card Auth Reversal response has the following structure. The response message is identical for
Online and Batch transactions except Online includes the <postDate> element.
<giftCardAuthReversalResponse id="Load Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
Example:
<cnpOnlineResponse version="12.0" xmlns="http://www.vantivcnp.com/schema"
response="0" message="Valid Format">
<giftCardAuthReversalResponse id="834262" reportGroup="ABC Division">
<cnpTxnId>9695064321</cnpTxnId>
<response>000</response>
<responseTime>2017-03-25T15:13:43</responseTime>
<postDate>2017-03-25</postDate>
<message>Approved</message>
<giftCardResponse>
<txnTime>2017-03-25T15:13:38</txnTime>
<refCode>123456</refCode>
<systemTraceId>123456</systemTraceId>
<sequenceNumber>123456</sequenceNumber>
<availableBalance>5000</availableBalance>
</giftCardResponse>
</giftCardAuthReversalResponse>
</cnpOnlineResponse>
You must specify the Gift Card Capture request as follows. The structure of the request is identical for
either an Online or a Batch submission.
<giftCardCapture id="Id" reportGroup="iQ Report Group" customerId="Customer Id">
<cnpTxnId>Transaction Id from Auth Response</cnpTxnId>
<captureAmount>Amt of Capture</captureAmount>
<card>
A Gift Card Capture response has the following structure. The response message is identical for Online
and Batch transactions except Online includes the <postDate> element.
<giftCardCaptureResponse id="Load Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date transaction posted</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<accountUpdater>
<fraudResult>
<giftCardResponse>
</giftCardCaptureResponse>
You must specify the Gift Card Credit request as follows. There are two possible structures for this
transaction type. You use the structure containing the cnpTxnId element, when the Worldpay processed
the capture transaction. You use the structure containing the orderId, when the processor of the
capture transaction was not Worldpay. Typically, this occurs when you first migrate your processing to
Worldpay. The structures of the requests are identical for either an Online or a Batch submission.
<giftCardCredit id="Id" reportGroup="iQ Report Group" customerId="Customer Id">
<cnpTxnId>Transaction Id from Auth Response</cnpTxnId>
<creditAmount>Amt of Credit</captureAmount>
<card>
</giftCardCredit>
or
<giftCardCredit id="Id" reportGroup="iQ Report Group" customerId="Customer Id">
<orderId>Order Id from Capture</cnpTxnId>
<creditAmount>Amt of Credit</captureAmount>
<orderSource></orderSource>
<card>
</giftCardCredit>
A Gift Card Credit response has the following structure. The response message is identical for either
request structure, as well as Online and Batch transactions except Online includes the <postDate>
element.
<giftCardCreditResponse id="Load Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date transaction posted</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<fraudResult>
<giftCardResponse>
</giftCardCreditResponse>
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must specify the Load request as follows. The structure of the request is identical for either an Online
or a Batch submission.
<load id="Load Id" reportGroup="iQ Report Group" customerId="Customer Id">
<orderId>Order Id</orderId>
<amount>Amount to Load</amount>
<orderSource>Order Entry Source</orderSource>
<card>
</load>
A Load response has the following structure. The response message is identical for Online and Batch
transactions except Online includes the <postDate> element.
<loadResponse id="Load Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date transaction posted</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<fraudResult>
<giftCardResponse>
</loadResponse>
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must structure a Load Reversal request as shown in the following examples.
<loadReversal id="Load Reversal Id" reportGroup="iQ Report Group" customerId="Customer
Id">
<cnpTxnId>Transaction Id from Load Response</cnpTxnId>
<card>
<originalRefCode>Reference Code from Load Response</originalRefCode>
<originalAmount>Amount from Load Transaction</originalAmount>
<originalTxnTime>Transaction Time from Load Response</originalTxnTime>
<originalSystemTraceId>Trace Id from Load Response</originalSystemTraceId>
<originalSequenceNumber>Seq Num from Load Rsp</originalSequenceNumber>
</loadReversal>
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date transaction posted</postDate>
<message>Response Message</message>
<location>Processing Platform Location</location>
<giftCardResponse>
</loadReversalResponse>
NOTE: Worldpay must specifically enable you to use this transaction type. Please speak to your
Implementation Consultant or Relationship Manager for additional information.
The structure of the Query Transaction response message can vary according to the results of the query.
The results can include a single or multiple transactions that meet the query criteria, no results, if nothing
was found, or a limited response, if a transaction was found, but processing was not complete. The
structure of the response message will be as follows:
<queryTransactionResponse>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<message>Response Message</message>
<location>Processing Platform Location</location>
<matchCount>Number of Matches Found</matchCount>
<results_Max10>
<queryTransactionUnavailableResponse>
or
One or more (10 max) found transaction responses of type specified in the
queryTransaction
</results_Max10>
</queryTransactionResponse>
NOTE: This response only occurs if you fail to use unique values for the id attribute, when
submitting transactions.
<responseTime>2017-04-06T16:40:24</responseTime>
<message>Original transaction found</message>
<matchCount>2</matchCount>
<results_max10>
<authorizationResponse id="DupeId" reportGroup="Mer5PM1">
<cnpTxnId>82827170811986215</cnpTxnId>
<orderId>150331_DupeAuth2</orderId>
<response>000</response>
<responseTime>2017-04-06T16:40:12</responseTime>
<postDate>2017-04-06</postDate>
<message>Approved</message>
<authCode>055858</authCode>
<fraudResult>
<avsResult>32</avsResult>
<cardValidationResult>M</cardValidationResult>
</fraudResult>
</authorizationResponse>
<authorizationResponse id="DupeId" reportGroup="Mer5PM1">
<cnpTxnId>82827170811986207</cnpTxnId>
<orderId>150331_DupeAuth1</orderId>
<response>000</response>
<responseTime>2017-04-06T16:40:11</responseTime>
<postDate>2017-04-06</postDate>
<message>Approved</message>
<authCode>111111</authCode>
<fraudResult>
<avsResult>00</avsResult>
<cardValidationResult>M</cardValidationResult>
</fraudResult>
</authorizationResponse>
</results_max10>
</queryTransactionResponse>
</cnpOnlineResponse>
</cnpOnlineResponse>
Example: Query Transaction Response with Transaction Found, but not Complete
<cnpOnlineResponse version="12.0" xmlns="http://www.vantivcnp.com/schema"
response="0" message="Valid Format">
<queryTransactionResponse id="someAuth" reportGroup="Mer5PM1">
<response>152</response>
<responseTime>2016-04-06T16:40:30</responseTime>
<message>Original transaction found but response not yet available</message>
<matchCount>1</matchCount>
<results_max10>
<queryTransactionUnavailableResponse>
<cnpTxnId>82827170811986124</cnpTxnId>
<response>152</response>
<message>Original transaction found but response not yet
available</message>
</queryTransactionUnavailableResponse>
</results_max10>
</queryTransactionResponse>
</cnpOnlineResponse>
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must structure a Refund Reversal request as shown in the following examples.
<refundReversal id="Refund Reversal Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id from CGCredit Response</cnpTxnId>
<card>
<originalRefCode>Reference Code from CGCredit Response</originalRefCode>
<message>Response Message</message>
<location>Processing Platform Location</location>
<giftCardResponse>
</refundReversalResponse>
NOTE: When initially tokenizing your customer database, Worldpay recommends that you collect all
distinct credit card numbers and submit the information in one or more large Session files. When
you receive the response file, parse the returned token information to your database, replacing the
card numbers.
You must specify the Register Token request as follows. The structure of the request is identical for either
an Online or a Batch submission. The child elements used differ depending upon whether you are
registering a credit card account, an Direct Debit account, or submitting a Registration Id.
When you submit the CVV2/CVC2/CID in a registerTokenRequest, the platform encrypts and stores
the value on a temporary basis for later use in a tokenized Auth/Sale transaction submitted without the
value. This is done to accommodate merchant systems/workflows where the security code is available at
the time of token registration, but not at the time of the Auth/Sale. If for some reason you need to change
the value of the security code supplied at the time of the token registration, use an
updateCardValidationNumOnToken transaction. To use the store value when submitting an
Auth/Sale transaction, set the cardValidationNum value to 000.
</batchRequest>
</cnpRequest>
Example: Online Register Token Request - Encrypted Account Number and CVV
<cnpOnlineRequest version="12.5" xmlns="http://www.vantivcnp.com/schema"
merchantId="yourMerchantIdentString">
<authentication>
<user>yourUsername</user>
<password>yourPassword</password>
</authentication>
<registerTokenRequest id="002" reportGroup="encrypt">
<encryptionKeyId>1</encryptionKeyId>
<encryptedAccountNumber>l2PRNMUV5l9Hq7h6l/Ae8gDaiatUUfJ7DLim3+l7zfq54njT
gQJ0V2ExXnIpQuTGtNlKhesg+cXz8Igx/4kJQTGss2MeCI7vwHAC19/32+p1iW2LaTLzmMj+T3jH72IE
EwcWyT2UhxJts6LcXOZn1+qi1thOENIXALBcB5OUjQWJIYy0aciZu/UsX0N8YXmbJ18dZJDuyo5bkhsg
zKlM5pfYvUoR0ReC39KtNWW95XR0/6w7v9I1ncREmyZQ9vr0+C8yz6O9w+1TW0xqafSWoZW02NBxmpcZ
6Rnt8xJwnxLmsgNn8J0kR9Yq2XiBmAPWXmR7pi2FYkmNOsEHbWHNCw==</encryptedAccountNumber
>
<encryptedCardValidationNum>H3OM9kbPWks0OlE+rlqy5zdOllnp+Zs/2WwfXxtEvVbt
lc1slWb/wiAWOaNqrNBl2BPEOfaftOHFHNH6mqNVN3kElW8u8AOstQpeA4Qf5a6j1UaaC9a/VNgFz6ln
7BHn0N1VWxIh5lt1JJ31w1dHQzdpapHitqjEyUXdgir5UQJ+3QJ/+Gjf8Ucv/9b9+sPxpwJAdCMbvc1y
fvxFcXWq0zX+j/RJwwMglKcFndO+o4sil1+HkZW4CKVADn54c31PA0cjQR+dV19DYkrV1WQmFYH45CDm
07OkGb2D1YFVEQN/b+UeVCuqDIoUbEBS9FaeM5qT6Va4WmP29rLRNruGgA==</encryptedCardValid
ationNum>
</registerTokenRequest>
</cnpOnlineRequest>alidationNum>
There is no structural difference an Online and Batch response; however, some child elements change
depending upon whether the token is for a credit card account or an Direct Debit account. The response
will have one of the following structures.
Register Token response for Credit Cards:
<registerTokenResponse id="99999" reportGroup="RG1">
<cnpTxnId>Transaction Id</cnpTxnId>
<cnpToken>Token</cnpToken>
<bin>BIN</bin>
<type>Method of Payment</type>
<response>Response Code</response>
<message>Response Message</message>
<location>Processing Platform Location</location>
<responseTime>Response Time</responseTime>
<accountRangeId>ID of Account Range</accountRangeId>
</registerTokenResponse>
Register Token response for eChecks:
<registerTokenResponse id="99999" reportGroup="RG1">
<cnpTxnId>Transaction Id</cnpTxnId>
<cnpToken>Token</cnpToken>
<type>Method of Payment</type>
<eCheckAccountSuffix>Last 3 of Acct Number</eCheckAccountSuffix>
<response>Response Code</response>
<responseTime>Response Time</responseTime>
<message>Response Message</message>
</registerTokenResponse>
</registerTokenResponse>
<cryptogram>Payment Cryptogram</cryptogram>
<expMonth>Expiration Month</expMonth>
<expYear>Expiration Year</expYear>
<eciIndicator>eCommerece Indicator</eciIndicator>
</androidpayResponse>
</registerTokenResponse>
NOTE: The use of RFR transactions for Account Updater files apply only to the legacy Account
Updater solution.
When using an RFR request to obtain the response file for a payment transaction Batch, the RFR
response is exactly the same as the original session response associated with the <cnpSessionId> you
submitted in the RFR request. The session ID returned in the response will be the session ID of the
original session.
When using an RFR request in an Account Updater scenario, you will receive either an Account Updater
Completion response, if the file is ready, or an Account Updater RFR “not ready” response, as shown in
the example below.
NOTE: If the authorization succeeds, the deposit is processed automatically, regardless of the AVS,
CVV2, CVC2, or CID response, except for American Express transactions. For American Express, a
failure to match the security code (CID) results in a declined transaction with the Response Reason
Code of 352 - Decline CVV2/CID Fail.
You must specify the Sale request as follows. The structure of the request is identical for either an Online
or a Batch submission.
NOTE: When you submit the CVV2/CVC2/CID in a registerTokenRequest, the platform encrypts
and stores the value on a temporary basis for later use in a tokenized Auth/Sale transaction
submitted without the value. To use the stored value when submitting an Auth/Sale transaction, set
the cardValidationNum value to 000.
NOTE: The example below includes an <orderSource> value of 3dsAuthenticated and includes
the <cardholderAuthentication> information. Use this <orderSource> value only if you are
a 3DS merchant and authenticated the cardholder.
Also, the values for the <authenticationValue> and <authenticationTransactionId>
elements in the example below have been truncated.
<billToAddress>
<name>John Smith</name>
<addressLine1>100 Main St</addressLine1>
<addressLine2>100 Main St</addressLine2>
<addressLine3>100 Main St</addressLine3>
<city>Boston</city>
<state>MA</state>
<zip>12345</zip>
<country>US</country>
<email>[email protected]</email>
<phone>555-123-4567</phone>
</billToAddress>
<card>
<type>VI</type>
<number>4005550000081019</number>
<expDate>1210</expDate>
<cardValidationNum>555</cardValidationNum>
</card>
<cardholderAuthentication>
<authenticationValue>BwABBJQ1AgJDUCAAAAAAA=</authenticationValue>
<authenticationTransactionId>gMV75TAgk=</authenticationTransactionId>
</cardholderAuthentication>
<customBilling>
<phone>8888888888</phone>
<descriptor>bdi*Vantiv Test</descriptor>
</customBilling>
<enhancedData>
<customerReference>PO12345</customerReference>
<salesTax>125</salesTax>
<taxExempt>false</taxExempt>
<discountAmount>0</discountAmount>
<shippingAmount>495</shippingAmount>
<dutyAmount>0</dutyAmount>
<shipFromPostalCode>01851</shipFromPostalCode>
<destinationPostalCode>01851</destinationPostalCode>
<destinationCountryCode>USA</destinationCountryCode>
<invoiceReferenceNumber>123456</invoiceReferenceNumber>
<orderDate>2016-08-14</orderDate>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>00</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
<lineItemData>
<itemSequenceNumber>1</itemSequenceNumber>
<itemDescription>chair</itemDescription>
<productCode>CH123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<taxAmount>125</taxAmount>
<lineItemTotal>9380</lineItemTotal>
<lineItemTotalWithTax>9505</lineItemTotalWithTax>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>93.80</unitCost>
<detailTax>
<taxIncludedInTotal>true</taxIncludedInTotal>
<taxAmount>55</taxAmount>
<taxRate>0.0059</taxRate>
<taxTypeIdentifier>03</taxTypeIdentifier>
<cardAcceptorTaxId>011234567</cardAcceptorTaxId>
</detailTax>
</lineItemData>
<lineItemData>
<itemSequenceNumber>2</itemSequenceNumber>
<itemDescription>table</itemDescription>
<productCode>TB123</productCode>
<quantity>1</quantity>
<unitOfMeasure>EACH</unitOfMeasure>
<lineItemTotal>30000</lineItemTotal>
<itemDiscountAmount>0</itemDiscountAmount>
<commodityCode>300</commodityCode>
<unitCost>300.00</unitCost>
</lineItemData>
</enhancedData>
</sale>
</cnpOnlineRequest>
The Sale response message is identical for Online and Batch transactions except Online includes the
postDate element. The Sale response has the following structure:
<saleResponse id="Sale Id" reportGroup="iQ Report Group" customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<orderId>Order Id</orderId>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date of Posting</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<authCode>Approval Code</authCode>
<approvedAmount>Approved amount for partial Auth</approvedAmount>
<accountInformation>
<fraudResult>
<tokenResponse> (for Tokenized merchants submitting card data)
<enhancedAuthResponse>
<accountUpdater>
<recyclingResponse> (included for declined Auths if featrure is enabled)
<recurringResponse> (for Recurring Engine merchants)
<giftCardResponse> (included if Gift Card is Method of Payment)
<applepayResponse> (included if an ApplePay transaction)
<cardSuffix>Card Last 4</cardSuffix> (included for ApplePay using VI or MC)
<androidpayResponse>
<networkTransactionId>Txn ID returned from network</networkTransactionId>
<pinlessDebitResponse> (included if approved by Debit Network via Prime PINless Debit
service)
</saleResponse>
<response>000</response>
<orderId>12z58743y7</orderId>
<responseTime>2016-09-01T10:24:31</responseTime>
<message>Approved</message>
<authCode>123456</authCode>
<fraudResult>
<avsResult>00</avsResult>
<authenticationResult>2</authenticationResult>
</fraudResult>
</saleResponse>
</batchResponse>
</cnpResponse>
Example: Online Sale Response for Tokenized Merchant Sending Card Data
A tokenized merchant that includes card information in the request receives a response message that
includes the token element. The example below is an Online response.
<saleResponse id="99999" reportGroup="RG1" customerId="444">
<cnpTxnId>21200000028606</cnpTxnId>
<response>000</response>
<orderId>F12345</orderId>
<responseTime>2016-10-26T17:30:00</responseTime>
<postDate>2011-10-26</postDate>
<message>Approved</message>
<authCode>089510</authCode>
<fraudResult>
<avsResult>11</avsResult>
<cardValidationResult>P</cardValidationResult>
</fraudResult>
<tokenResponse>
<cnpToken>1111000100329510</cnpToken>
<tokenResponseCode>801</tokenResponseCode>
<tokenMessage>Account number was successfully registered</tokenMessage>
<type>VI</type>
<bin>432610</bin>
</tokenResponse>
</saleResponse>
<cnpTxnId>82912082263410337</cnpTxnId>
<response>110</response>
<orderId>recurring_decline1</orderId>
<responseTime>2017-01-30T20:15:56</responseTime>
<message>Insufficient Funds</message>
<fraudResult>
<avsResult>34</avsResult>
</fraudResult>
<recyclingResponse>
<recycleEngineActive>true</recycleEngineActive>
</recyclingResponse>
<recurringResponse>
<subscriptionId>82912081866997807</subscriptionId>
<responseCode>473</responseCode>
<responseMessage>Scheduled recurring payment processed</responseMessage>
<recurringTxnId>211014245115</recurringTxnId>
</recurringResponse>
</saleResponse>
<saleResponse reportGroup="Default Report Group">
<cnpTxnId>82912082263410378</cnpTxnId>
<response>110</response>
<orderId>recurring_decline3</orderId>
<responseTime>2017-01-30T20:15:56</responseTime>
<message>Insufficient Funds</message>
<fraudResult>
<avsResult>34</avsResult>
</fraudResult>
<recyclingResponse>
<recycleEngineActive>true</recycleEngineActive>
</recyclingResponse>
<recurringResponse>
<subscriptionId>82912081866997807</subscriptionId>
<responseCode>473</responseCode>
<responseMessage>Scheduled recurring payment processed</responseMessage>
<recurringTxnId>211014245313</recurringTxnId>
</recurringResponse>
</saleResponse>
</batchResponse>
</cnpResponse>
NOTE: Please refer to the OmniToken Translator Transaction Info document for additional
information about this transaction type.
You must specify the Translate to Low Value Token request as follows. The structure of the request is
identical for either an Online or a Batch submission.
<translateToLowValueTokenRequest id="Xlate1" reportGroup="iQ Report Group"
customerId="Customer Id">
<orderId>Order Id</orderId>
<token>Token Value</token>
</translateToLowValueTokenRequest>
The Translate to Low Value Token response message is identical for Online and Batch transactions. The
Sale response has the following structure:
<translateToLowValueTokenResponse id="Xlate1" reportGroup="iQ Report Group"
customerId="Customer Id">
<orderId>Order Id</orderId>
<paypageRegistrationId>Low Value Token</paypageRegistrationId>
<response>Response Code</response>
<message>Response Message</message>
<location>Processing Platform Location</location>
<responseTime>Date and Time in GMT</responseTime>
</translateToLowValueTokenResponse>
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must specify the Unload request as follows. The structure of the request is identical for either an
Online or a Batch submission.
<unload id="Unload Id" reportGroup="iQ Report Group" customerId="Customer Id">
<orderId>Order Id</orderId>
<amount>Amount to Load</amount>
<orderSource>Order Entry Source</orderSource>
<card>
</unload>
An Unload response has the following structure. The response message is identical for Online and Batch
transactions except Online includes the <postDate> element.
<unloadResponse id="Unload Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<responseTime>Date and Time in GMT</responseTime>
<postDate>Date transaction posted</postDate> (Online Only)
<message>Response Message</message>
<location>Processing Platform Location</location>
<fraudResult>
<giftCardResponse>
</unloadResponse>
NOTE: You must be enabled for (Closed Loop) Gift Card transactions to use this transaction type.
Please consult your Relationship Manager for additional information about Gift Card transactions.
You must structure a Unload Reversal request as shown in the following examples.
<unloadReversal id="Unload Reversal Id" reportGroup="iQ Report Group"
customerId="Customer Id">
<cnpTxnId>Transaction Id from CGCredit Response</cnpTxnId>
<card>
<originalRefCode>Reference Code from Unload Response</originalRefCode>
<originalAmount>Amount from Unload Transaction</originalAmount>
<originalTxnTime>Transaction Time from Unload Response</originalTxnTime>
<originalSystemTraceId>Trace Id from Unload Response</originalSystemTraceId>
<originalSequenceNumber>Seq Num from Unload Rsp</originalSequenceNumber>
</unloadReversal>
You must structure an Update Plan request as shown in the following examples. The structure of the
request is identical for either an Online or a Batch submission.
<updatePlan>
<planCode>Plan Reference Code</planCode>
<active>true or false</active>
</updatePlan>
An Update Plan response has the following structure. The response message is identical for Online and
Batch transactions.
<updatePlanResponse>
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<message>Response Message</message>
<location>Processing Platform Location</location>
<responseTime>Date and Time in GMT</responseTime>
<planCode>Plan Reference Code</subscriptionId>
</updatePlanResponse>
<message>Approved</message>
<responseTime>2017-07-11T14:48:46</responseTime>
<planCode>Reference_Code</planCode>
</updatePlanResponse>
</cnpOnlineResponse>
NOTE: You can include multiple create, update, and delete Discounts and Add On operations in a
single updateSubscription transaction.
You must structure an Update Subscription request as shown in the following examples. The structure of
the request is identical for either an Online or a Batch submission.
<updateSubscription>
<subscriptionId>Subscription Id</subscriptionId>
<planCode>Plan Reference Code</subscriptionId>
<billToAddress>
[ <card> | <paypage> | <token>]
<billingDate>New Billing Date</billingDate>
<createDiscount>
<updateDiscount>
<deleteDiscount>
<createAddOn>
<updateAddOn>
<deleteAddOn>
</updateSubscription
<updateSubscription>
<subscriptionId>1234</subscriptionId>
<planCode>Gold_Monthly</planCode>
<billToAddress>
<name>John Smith</name>
<addressLine1>100 Main St</addressLine1>
<city>Boston</city>
<state>MA</state>
<zip>12345</zip>
<country>US</country>
<email>[email protected]</email>
<phone>555-123-4567</phone>
</billToAddress>
<card>
<type>VI</type>
<number>4005550000081019</number>
<expDate>1210</expDate>
<cardValidationNum>555</cardValidationNum>
</card>
<deleteDiscount>
<discountCode>1GBExtra</discountCode>
</deleteDiscount>
<createAddOn>
<addOnCode>1WF</addOnCode>
<name>One_GB_Extra</name>
<amount>500<amount>
<startDate>2017-07-15</startDate>
<endDate>2017-07-22</endDate>
</createAddOn>
</updateSubscription>
</cnpOnlineRequest>
An Update Subscription response has the following structure. The response message is identical for
Online and Batch transactions.
<updateSubscriptionResponse>
<cnpTxnId>Transaction Id</cnpTxnId>
<response>Response Code</response>
<message>Response Message</message>
<location>Processing Platform Location</location>
NOTE: You should only use this transaction type if you had previously submitted the account
number and security code in a registerTokenRequest transaction and now need to change the
CVV2/CVC2/CID value.
merchantId="100">
<updateCardValidationNumOnToken id="99999" customerId="444" reportGroup="RG1">
<orderId>F12345</orderId>
<cnpToken>1111000101039449</cnpToken>
<cardValidationNum>987</cardValidationNum>
</updateCardValidationNumOnToken>
</cnpOnlineRequest>
NOTE: Before submitting a Void, please allow a minimum of 60 seconds to elapse after submitting
the transaction you wish to void. This timing ensures our system fully records the first (to be voided)
transaction in our database.
Do not use Void transactions to void an Authorization. To remove an Authorization use an
Authorization Reversal transaction (see Authorization Reversal Transactions on page 210.)
If you attempt to void a transaction after the cutoff time, the system returns a response code of 362 and
the message, Transaction Not Voided - Already Settled. In this situation, you can cancel the original
transaction by using its reverse transaction, as shown in Table 3-2.
The Void request references the <cnpTxnId> of the previously approved transaction. You must structure
a Void request as follows.
<void id = "Void Id" reportGroup="iQ Report Group">
<cnpTxnId>Transaction Id</cnpTxnId>
<processingInstructions>
</void>
This chapter provides definitions for the elements and attributes used by the cnpAPI. This information is
intended to be used in combination with the various cnpAPI schema files to assist you as you build the
code necessary to submit transactions to our transaction processing systems. Each section defines a
particular element, its relationship to other elements (parents and children), as well as any attributes
associated with the element.
For additional information on the structure of cnpAPI requests and responses using these elements, as
well as XML examples, please refer to Chapter 3, "cnpAPI Transaction Examples".
The XML elements defined in this chapter are listed alphabetically.
4.1 accNum
Parent Elements:
echeck, newAccountInfo, originalAccountInfo, accountInfo
Attributes:
None
Child Elements:
None
4.2 accountInfo
Parent Elements:
submerchantCredit, submerchantDebit, vendorCredit, vendorDebit
Attributes:
None
Child Elements:
Required: accType, accNum, routingNum
Optional: ccdPaymentInformation
Optional (Batch Only): ctxPaymentInformation
NOTE: Although shown as an optional element in the schema, do not use the checkNum element.
4.3 accountInformation
Parent Elements:
authorizationResponse, saleResponse
Attributes:
None
Child Elements:
Required: type
Optional: number
4.4 accountLogin
The accountLogin element is an optional child of the fraudCheck element defining the account login
name. This is an additional data point you can submit to enhance the fraud threat assessment.
Type = String; minLength = N/A; maxLength = 255
Parent Elements:
fraudCheck
Attributes:
None
Child Elements:
None
4.5 accountNumber
The accountNumber element is a required child of the registerTokenRequest element defining the
account number for which you are requesting a token. It is also an optional child of the
virtualGiftCardResponse element, where it defines the account number of the requested Virtual Gift
Card.
Type = String; minLength = 13; maxLength = 25
Parent Elements:
registerTokenRequest, virtualGiftCardResponse
Attributes:
None
Child Elements:
None
4.6 accountNumberLength
The accountNumberLength element is a required child of the virtualGiftCard element defining the
requested length of the virtual Gift Card number you are requesting.
NOTE: In an early iteration of schema V8.22 issued in September of 2013 this element was defined
as an optional child of the virtualGiftCard element. If you coded to the earlier version, be
aware that this element is now required. If you do not include this element, the transaction will fail
XML validation.
NOTE: Although the schema defines the allowed values as any integer between 13 and 25
inclusive, it this time you can only use a value of either 16 or 19.
Parent Elements:
virtualGiftCard
Attributes:
None
Child Elements:
None
4.7 accountPasshash
The accountPasshash element is an optional child of the fraudCheck element defining the SHA-2
hash of the password in hexadecimal format. Depending on the hash algorithm, the value must be either
128, 96, 64, or 56 characters.
Type = String; minLength = 56; maxLength = 128
Parent Elements:
fraudCheck
Attributes:
None
Child Elements:
None
4.8 accountRangeId
Parent Elements:
registerTokenResponse, enhancedAuthResponse
Attributes:
None
Child Elements:
None
4.9 accountUpdate
The accountUpdate element is the parent element for all Account Updater request transactions. You
can use this only with Batch transactions.
Parent Elements:
batchRequest
Attributes:
4.10 accountUpdateFileRequestData
Parent Elements:
RFRRequest
Attributes:
None
Child Elements:
Required: merchantId
Optional: postDay
4.11 accountUpdater
Parent Elements:
authorizationResponse, captureResponse, forceCaptureResponse, echeckCreditResponse,
echeckRedepositResponse, echeckSalesResponse, saleResponse
Attributes:
None
Child Elements:
accountUpdateSource, extendedCardResponse, newAccountInfo, newCardInfo, newCardTokenInfo,
newTokenInfo, originalAccountInfo, originalCardInfo, originalCardTokenInfo, originalTokenInfo
IMPORTANT: When using Account Updater (any variation), you must always code to receive the
extendedCardResponse element and its children. Worldpay always returns this information
whenever applicable regardless of whether you receive other account updater information in the
transaction response message.
<accountUpdater>
<originalCardTokenInfo>
<cnpToken>Old Token</cnpToken>
<type>Card Type</type>
<expDate>Old Expiration Date</expDate>
</newTokenInfo>
</accountUpdateFileRequestData>
4.12 accountUpdateResponse
The accountUpdaterResponse element is the parent element for all Account Update responses
transactions. You can use this only with Batch transactions.
Parent Elements:
batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
accountUpdate transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
accountUpdate transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
accountUpdate transaction.
minLength = 1 maxLength = 25
4.13 accountUpdateSource
Parent Elements:
accountUpdater
Attributes:
None
Child Elements:
None
4.14 accType
Parent Elements:
echeck, newAccountInfo, originalAccountInfo, originalTokenInfo, newTokenInfo, accountInfo
Attributes:
None
Child Elements:
None
4.15 actionReason
The actionReason element is an optional child of the authReversal element defining if the reversal is
due to suspected fraud.
Type = String (Enum); Enumerations = SUSPECT_FRAUD
NOTE: When you include this optional element in an authReversal transaction, the information
will be forwarded to Mastercard as part of the Mastercard eCommerce Fraud Alert program.
When you include this optional element in an credit transaction, the system uses the information
to track potentially fraudulent transactions for future analysis.
Parent Elements:
authReversal, credit
Attributes:
None
Child Elements:
None
4.16 activate
The activate element is the parent element for the transaction type that activates a Gift Card.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
4.17 activateResponse
The activateResponse element is the parent element for information returned to you in response to an
activate transaction.You can use this element in either Online or Batch transactions.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
Activate transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Activate transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Activate transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message, giftCardResponse
Optional: postDate, fraudResult, giftCardResponse, virtualGiftCardResponse, location
4.18 activateReversal
The activateReversal element is the parent element for the transaction type that reverses the
activation of a Gift Card.
Parent Elements:
cnpOnlineRequest
Attributes:
4.19 activateReversalResponse
The activateReversalResponse element is the parent element for information returned to you in
response to an activateReversal transaction. You can use this element in either Online or Batch
transactions.
Parent Elements:
cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
Activate Reversal transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Activate Reversal transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Activate Reversal transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message, giftCardResponse
Optional: postDate, location
4.20 active
The active element is an optional child of both the createPlan and updatePlan elements. You use
this flag to activate/deactivate a Plan. When you deactivate a Plan, you can no longer reference that Plan
for use with subscriptions. Existing subscriptions making use of the deactivated Plan will continue to use
the Plan until either modified or completed. You can also reactivate a deactivated Plan by updating the
Plan and setting the active flag to true.
Type = Boolean; Valid Values = true or false
Parent Elements:
createPlan, updatePlan
Attributes:
None
Child Elements:
None
4.21 addOnCode
The addOnCode element is the identifier of a defined add on charge to a subscription. You use this
element when creating, updating, and deleting an Add On applied to a subscription.
Type = String; minLength = N/A; maxLength = 25
Parent Elements:
createAddOn, updateAddOn, deleteAddOn
Attributes:
None
Child Elements:
None
The elements addressLine1, addressLine2, and addressLine3 define the address information in
both the billToAddress and shipToAddress elements.
Type = String; minLength = N/A; maxLength = 35
Parent Elements:
billToAddress, shipToAddress
Attributes:
None
Child Elements:
None
4.23 advancedAVSResult
The advancedAVSResult element is an optional child element of the fraudResult element. It defines
the American Express Advanced AVS response codes that can be returned as verification of information
supplied in the <phone> and/or <email> child elements of the <billToAddress> element. For a list of
possible values, please refer to AAVS Response Codes on page 860.
NOTE: You must be specifically enabled to use the Advanced AVS feature. Please consult your
Relationship Manager for additional information.
Parent Elements:
fraudResult
Attributes:
None
Child Elements:
None
4.24 advancedFraudChecks
The advancedFraudChecks element is an optional child of both the authorization and sale
elements and a required child of the fraudCheck element.
Parent Elements:
authorization, sale, fraudCheck
Attributes:
None
Child Elements:
threatMetrixSessionId, webSessionId, customAttribute1 through customAttribute5
NOTE: If you use V12.3 or above, you must use the webSessionId to provide the Id value, not
the threatMetrixSessionId element.
4.25 advancedFraudResults
The advancedFraudResults element is an optional child of both the fraudResult and the
fraudCheckResponse elements. Child elements return the results of advanced fraud checks performed
by ThreatMetrix, as well as a list of the rules triggered from the ThreatMetrix (merchant) Policy.
Parent Elements:
fraudResult, fraudCheckResponse
Attributes:
None
Child Elements: (Optional)
4.26 affiliate
The affiliate element is an optional child element of the merchantData element. You can use it to
track transactions associated with various affiliate organizations.
Type = String; minLength = N/A; maxLength = 25
Parent Elements:
merchantData
Attributes:
None
Child Elements:
None
4.27 affluence
The affluence element is an optional child of the enhancedAuthResponse element and defines
whether the card used falls into one of the two defined affluent categories. If the card does not meet the
definition of either category, the system does not return the affluence element.
Type = String (enum); minLength = N/A; maxLength = N/A
Parent Elements:
enhancedAuthResponse
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
MASS AFFLUENT Returned for certain Visa and Mastercard cards indicating high income
customers (>100K annual income).
AFFLUENT Returned for certain Visa and Mastercard cards indicating high income
customers with high spending patterns (>100K annual income and
>40K in card usage).
4.28 allowPartialAuth
The allowPartialAuth element is an optional child of both Authorization and Sale transactions, which
allows you to specify whether to authorize a partial amount if the entire requested authorization amount
exceeds available credit/balance.
NOTE: If you settle in a currency other than US or Canada, you cannot use partial authorizations.
When submitting transactions for private label gift cards (card type of GC), the use of partial
authorizations is determined by a setting in the Merchant Profile (on or off globally). This flag has no
effect.
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
None
NOTE: For a Sale transaction, the deposit will be for the partial amount.
4.29 amount
The amount element is a child of several elements. When used in a payment transaction this element
defines the amount of the transaction. When amount is a child of the subscription element, it defines
the amount of the recurring payment. As a child of the activate, load, or unload transactions,
amount defines the initial value of a newly activated gift Card, the amount loaded onto a reloadable Gift
Card, or the amount unloaded from a Gift Card, respectively. When used in an Instruction-Based Dynamic
Payout transaction type, it specifies the amount of funds to transfer. Supply the value in cents without a
decimal point. For example, a value of 1995 signifies $19.95.
NOTE: For the following currencies, the value you submit is the amount without implied decimal:
Burundian Franc, Chilean Peso, Comoro Franc, Djibouti Franc, Guinea Franc, Iceland Krona,
Japanese Yen, South Korean Won, Vanuatu Vatu, Paraguayan Guarani, Rawanda Franc,
Vietnamese Dong, Uganda Shilling, CFA Franc BEAC, CFA Franc BCEAO, and CFP Franc.
For example, if the currency is Japanese Yen, entering 2000 means 2000 Yen, NOT 20.00 Yen.
Parent Elements:
The amount element is a required child of each of the following Parent Elements: activate, authorization,
credit (required if original transaction was not processed by Worldpay), captureGivenAuth, echeckCredit
(required if original transaction was not processed by Worldpay), echeckSale, echeckVerification,
forceCapture, fraudCheck, load, sale, unload
This element is also a required child of the following Instruction-Based Dynamic Payout transaction types:
payFacCredit, payFacDebit, physicalCheckCredit, physicalCheckDebit, reserveCredit, reserveDebit,
submerchantCredit, submerchantDebit, vendorCredit, vendorDebit, fastAccessFunding
The amount element is an optional child of each of the following Parent Elements: authReversal, capture,
credit, echeckCredit, subscription
NOTE: For all cases where the amount element is optional, except when a child of the
subscription element, if you do not specify a value, the system uses the entire amount from the
referenced (by cnpTxnId) transaction. When amount is a child of the subscription element, if
you do not specify a value, the amount defaults to the value defined in the referenced recurring plan
(planCode element).
Attributes:
None
Child Elements:
None
4.30 androidpayResponse
The androidpayResponse element is an optional child of several transaction types and is returned in
response messages, when the orderSource in the request is androidpay.
Parent Elements:
authorizationResponse, registerTokenResponse, saleResponse
Attributes:
None
4.31 applepay
The applepay element is an optional child of several transaction types and takes the place of the card
element in Apple Pay transaction where the merchant does not decrypt the (Apple Pay)
PKPaymentToken prior to submitting the transaction. It contains child elements for the component parts
of the PKPaymentToken.
Parent Elements:
authorization, registerTokenRequest, sale
Attributes:
None
4.32 applepayResponse
The applepayResponse element is an optional child of several transaction types and is returned in
response messages, when the request includes the applepay element.
Parent Elements:
authorizationResponse, registerTokenResponse, saleResponse
Attributes:
None
Child Elements:
applicationPrimaryAccountNumber, applicationExpirationDate, currencyCode, transactionAmount,
cardholderName, deviceManufacturerIdentifier, paymentDataType, onlinePaymentCryptogram,
eciIndicator
4.33 applicationData
The applicationData element is an optional child of the header element and provides the SHA-256
hash, hex encoded string of the original PKPaymentRequest of the Apple Pay transaction.
Type = Hex Encoded String; minLength = N/A; maxLength = 10000
Parent Elements:
header
Attributes:
None
Child Elements:
None
4.34 applicationExpirationDate
Parent Elements:
applepayResponse
Attributes:
None
Child Elements:
None
4.35 applicationPrimaryAccountNumber
Parent Elements:
applepayResponse
Attributes:
None
Child Elements:
None
4.36 approvedAmount
The approvedAmount element defines the dollar amount of the approval. It appears in an authorization
or sale response only if the allowPartialAuth element is set to true in the request transaction. It can
also appear as the child of a deactivateResponse message where it specifies the value of the Gift Card
prior to deactivation.
Type = Integer; totalDigits = 12
Parent Elements:
authorizationResponse, saleResponse, deactivateResponse
Attributes:
None
Child Elements:
None
4.37 authAmount
The authAmount element is an optional child of the authInformation element and is used to define the
dollar amount of the authorization for Capture Given Auth transactions.
Type = Integer; totalDigits = 8
Parent Elements:
authInformation
Attributes:
None
Child Elements:
None
4.38 authCode
The authCode element is an optional child of both the authorizationResponse and saleResponse
elements. It is also a required child of the authInformation element (used in captureGivenAuth
transactions), where it specifies the authorization code from the associated Authorization or Sale
transaction.
Type = String; minLength = N/A; maxLength = 6
Parent Elements:
authInformation, authorizationResponse, saleResponse
Attributes:
None
Child Elements:
None
4.39 authDate
The authDate element is a required child of the authInformation element and defines the date of the
associated Authorization transaction.
Type = Date; Format = YYYY-MM-DD
Parent Elements:
authInformation
Attributes:
None
Child Elements:
None
4.40 authenticatedByMerchant
Parent Elements:
cardholderAuthentication
Attributes:
None
Child Elements:
None
4.41 authentication
The authentication element is a required element of both the cnpOnlineRequest and the
batchRequest elements. It contains child elements used to authenticate that the XML message is from
a valid user.
NOTE: The authentication element and its child elements, user and password, are used to
identify the merchant submitting transactions. They do not provide other access to platform or to the
iQ reporting system.
Parent Elements:
cnpOnlineRequest, cnpRequest
Attributes:
None
Child Elements:
Required: user, password
4.42 authenticationProtocolVersion
NOTE: Currently, the US eCom platform does not support 3DS2. Please speak to your Relationship
Manager for additional information about 3DS2 support.
Parent Elements:
cardholderAuthentication
Attributes:
None
Child Elements:
None
4.43 authenticationResult
Parent Elements:
fraudResult
Attributes:
None
Child Elements:
None
4.44 authenticationTransactionId
Parent Elements:
cardholderAuthentication
Attributes:
None
Child Elements:
None
4.45 authenticationValue
NOTE: The Apple Pay cryptogram is already BASE64 encoded. Do not double encode the
cryptogram.
Parent Elements:
cardholderAuthentication
Attributes:
None
Child Elements:
None
4.46 authInformation
Parent Elements:
captureGivenAuth
Attributes:
None
Child Elements:
Required: authDate, authCode
Optional: fraudResult, authAmount
4.47 authorization
The authorization element is the parent element for all Authorization transactions. You can use this
element in either Online or Batch transactions.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
Child Elements:
Required: orderId, amount, orderSource, (choice of) card, paypal, paypage, mpos, token, or applepay,
cardholderAuthentication
NOTE: The cardholderAuthentication child element is required only for 3-D Secure transactions.
4.48 authorizationResponse
The authorizationResponse element is the parent element for information returned to you in
response to an Authorization transaction. It can be a child of either a cnpOnlineResponse element or a
batchResponse element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
Authorization transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Authorization transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Authorization transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, orderId, response, responseTime, message
Optional: postDate, cardProductId (see Note below), authCode, authorizationResponseSubCode (see
Note below), approvedAmount, accountInformation, fraudResult, tokenResponse,
enhancedAuthResponse, accountUpdater, recyclingResponse, recurringResponse, giftCardResponse,
applepayResponse, cardSuffix, androidpayResponse, networkTransactionId,
paymentAccountReferenceNumber, pinlessDebitResponse, location
NOTE: The postDate child element is returned only in responses to Online transactions.
The cardProductId element returns a raw code referencing the card type. Please consult your
Relationship Manager for additional information.
The authorizationResponseSubCode element is not used at this time.
4.49 authReversal
The authReversal element is the parent element for all Authorization Reversal transactions. You can
use this element in either Online or Batch transactions. Also see Notes on the Use of Authorization
Reversal Transactions on page 71. Also, if you use the Recycling Engine, you can use the
authReversal transaction to halt the recycling of an authorization transaction.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
Child Elements:
Required: cnpTxnId
Optional: amount, actionReason, payPalNotes, surchargeAmount
NOTE: If you do not specify an amount child element, the system reverses the full amount from the
associated Authorization transaction.
4.50 authReversalResponse
The authReversalResponse element is the parent element for information returned to you in response
to an Auth Reversal transaction. It can be a child of either a cnpOnlineResponse element or a
batchResponse element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
Authorization Reversal transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Authorization Reversal transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Authorization Reversal transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, location
NOTE: The postDate child element is returned only in responses to Online transactions.
4.51 availableBalance
The availableBalance element is a required child element of the fundingSource element and an
optional child of the giftCardResponse element. It defines the outstanding available balance on the
submitted prepaid or Gift Card. If the balance can not be determined, the element returns, “Not Available.”
Type = String; minLength = N/A; maxLength = 20
Parent Elements:
fundingSource, giftCardResponse
Attributes:
None
Child Elements:
None
NOTE: The fundingSource element and its child elements, type and availableBalance are
associated with the Insights features (see Issuer Insights on page 24.)
Please consult your Relationship Manager for additional information.
4.52 avsResult
The avsResult element is an optional child element of the fraudResult element. It defines the
Address Verification response code returned by the networks. For a list of possible values, please refer to
AVS Response Codes on page 859.
Type = String; minLength = N/A; maxLength = 2
Parent Elements:
fraudResult
Attributes:
None
Child Elements:
None
4.53 balanceInquiry
The balanceInquiry element is the parent element for the transaction type that queries the available
balance of a Gift Card.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
4.54 balanceInquiryResponse
The balanceInquiryResponse element is the parent element for information returned to you in
response to a balanceInquiry transaction. It can be a child of either a cnpOnlineResponse element
or a batchResponse element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
Balance Inquiry transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Balance Inquiry transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Balance Inquiry transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, orderId, response, responseTime, message
Optional: postDate, fraudResult, giftCardResponse, location
4.55 batchRequest
Parent Elements:
cnpRequest
Attributes:
NOTE: Include the count and amount attributes for all transaction types included in the Batch. For
example if you submit one Sale transaction of $10, include numSales="1" and saleAmount="1000".
You must always include an amount, if you include a count. Do not include corresponding attributes,
if the Batch does not include the transaction type.
Child Elements:
At least one of the following required: activate, authorization, authReversal, balanceInquiry,
cancelSubscription, capture, captureGivenAuth, createPlan, credit, deactivate, echeckCredit,
echeckPreNoteSale, echeckRedeposit, echeckSale, echeckVerification, fastAccessFunding,
forceCapture, giftCardAuthReversal, giftCardCapture, giftCardCredit, load, registerTokenRequest, sale,
unload, updateCardValidationNumOnToken, updatePlan, updateSubscription, payFacCredit,
customerCredit, customerDebit, payoutOrgCredit, payoutOrgDebit, payFacDebit, reserveCredit,
reserveDebit, submerchantCredit, submerchantDebit, vendorCredit, vendorDebit
4.56 batchResponse
The batchResponse element is the parent element for information returned to you in response to a
batch you submitted for processing. It is a child of a cnpResponse element.
Parent Elements:
cnpResponse
Attributes:
merchantId String Yes The response returns the same value submitted in the
Batch Request.
minLength = 1 maxLength = 50
Child Elements:
Required:accountUpdateResponse, activateResponse, authorizationResponse, authReversalResponse,
captureResponse, captureGivenAuthResponse, createPlanResponse, creditResponse,
deactivateResponse, echeckCreditResponse, echeckPreNoteCreditResponse,
echeckPreNoteSaleResponse, echeckRedepositResponse, echeckSalesResponse,
echeckVerificationResponse,fastAccessFundingResponse, forceCaptureResponse,
giftCardAuthReversalResponse, giftCardCaptureResponse, giftCardCreditResponse, loadResponse,
registerTokenResponse, saleResponse, unloadResponse, updateCardValidationNumOnTokenResponse,
cancelSubscriptionResponse, updatePlanResponse, updateSubscriptionResponse,
payFacCreditResponse, payFacDebitResponse, physicalCheckCreditResponse,
physicalCheckDebitResponse, reserveCreditResponse, reserveDebitResponse,
submerchantCreditResponse, submerchantDebitResponse, vendorCreditResponse,
vendorDebitResponse, customerCreditResponse, customerDebitResponse, payoutOrgCerditResponse,
payoutOrgDebitResponse
NOTE: The batchResponse contains child elements corresponding to the requests submitted in
the batchRequest. For example, if the batchRequest contained 10 authorization and 8
capture transactions, the batchResponse would contain 10 authorizationResponse and 8
captureResponse transactions.
4.57 beginningBalance
The beginningBalance element is an optional child of the giftCardResponse element. It defines the
available balance on the submitted Gift Card prior to the requested operation.
Parent Elements:
giftCardResponse
Attributes:
None
Child Elements:
None
4.58 billingDate
The billingDate element is an optional child of the updateSubscription element that defines the
new date for the recurring billing when the scheduled date need to be changed.
Type = Date; Format = YYYY-MM-DD
Parent Elements:
updateSubscription
Attributes:
None
Child Elements:
None
4.59 billToAddress
The billToAddress element contains several child elements that define the postal mailing address
(and telephone number) used for billing purposes. It also contains several elements used for the eCheck
verification process.
Parent Elements:
authorization, captureGivenAuth, credit, echeckCredit (required if original transaction was not processed
by Worldpay), echeckPreNoteCredit, echeckPreNoteSale, echeckSale, echeckVerification,
forceCapture,fraudCheck, sale, updateSubscription
Attributes:
None
Child Elements: (all optional)
name, firstName, middleInitial, lastName, companyName, addressLine1, addressLine2, addressLine3,
city, state, zip, country, email, phone
NOTE: You must submit the name element for echeckSale and echeckCredit transactions. If
you do not submit the customer name in these eCheck transactions, we return the response 709 -
Invalid Data.
For an eCheckVerification transaction, you must submit the firstName and lastName
elements instead of the name element (middleInitial is optional). For a corporate account you
must include the companyName element in addition to the firstName and lastName elements. In
both cases, you also must include the address, city, state, zip and phone information.
For a corporate account, if you do not have the name of the check issuer, you can use a value of
“unavailable” for the firstName and lastName elements.
<country>Country Code</country>
<email>Email Address</email>
<phone>Telephone Number</phone>
</billToAddress>
4.60 bin
The bin element provides the 6-digit Bank (or Issuer) Identification Number of the Issuing Bank. The
system returns this value in XML responses when issuing new tokens to replace Visa or Mastercard
account numbers.
For Discover and American Express cards, this element is empty in a registerTokenResponse.
For Discover, when included with Account Updater information in a payment transaction response, the
bin element will have a value of discov.
Type = String; minLength = 0; maxLength = 6
Parent Elements:
The bin element is an optional child of each listed parent element.
registerTokenResponse, tokenResponse, newCardTokenInfo, originalCardTokenInfo, originalToken,
updatedToken
Attributes:
None
Child Elements:
None
4.61 bypassVelocityCheck
Parent Elements:
processingInstructions
Attributes:
None
Child Elements:
None
4.62 campaign
The campaign element is an optional child element of the merchantData element. You can use it to
track transactions associated with various marketing campaigns.
Type = String; minLength = N/A; maxLength = 25
Parent Elements:
merchantData
Attributes:
None
Child Elements:
None
4.63 cancelSubscription
The cancelSubscription element is the parent element for the transaction that cancels a
subscription. You can use this element in either Online or Batch transactions.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
None
Child Elements:
Required: subscriptionId
4.64 cancelSubscriptionResponse
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
None
Child Elements:
Required: subscriptionId, cnpTxnId, response, message, responseTime
Optional: location
4.65 capability
The capability element is a required child of the pos element, which describes the capability of the
point of sale terminal.
Type = String (Enum); minLength = N/A; maxLength = N/A
Parent Elements:
pos
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
NOTE: For CAT (Cardholder Activated Terminal) transactions, the capability element must be
set to magstripe, the cardholderId element must be set to nopin, and the catLevel element
must be set to self service.
4.66 capture
The capture element is the parent element for all Capture (deposit) transactions. You can use this
element in either Online or Batch transactions.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
Attribute
Name Type Required? Description
id String Yes A unique identifier assigned by the presenter and mirrored back
in the response.
minLength = 1 maxLength = 36
reportGroup String Yes Required attribute that defines the merchant sub-group in the
user interface where this transaction will be displayed. Please
refer to Coding for Report Groups on page 10 for additional
information.
minLength = 1 maxLength = 25
partial Boolean No If there is more than one capture that references the same
<cnpTxnId>, set this attribute to “true” for each of those partial
captures. The default value is false.
Valid Values = true or false
Note: If you settle in a currency other than US or Canada,
you cannot use partial captures.
Child Elements:
Required: cnpTxnId, payPalOrderComplete (required only if closing a PayPal order)
Optional: amount, enhancedData, payPalNotes, pin, processingInstructions, surchargeAmount,
lodgingInfo
NOTE: If you do not specify an amount, the system uses the full amount from the associated
Authorization transaction.
4.67 captureAmount
The captureAmount element is a required child of the giftCardCapture element and defines the
amount of the capture (deposit). This value must be less than or equal to the value of the
originalAmount element. Setting this element to a value less than the originalAmount implies that
this is a partial capture.
Type = Integer; totalDigits = 12
Parent Elements:
giftCardCapture
Attributes:
None
Child Elements:
None
4.68 captureGivenAuth
The captureGivenAuth element is the parent element for all Capture Given Auth transactions. These
are specialized Capture transactions used when the cnpTxnId for the associated Authorization is
unknown or when the Authorization occurred outside our system. You can use this element in either
Online or Batch transactions.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
reportGroup String Yes Required attribute that defines the merchant sub-group in
the user interface where this transaction will be displayed.
Please refer to Coding for Report Groups on page 10 for
additional information.
minLength = 1 maxLength = 25
Child Elements:
Required: orderId, authInformation, amount, orderSource, choice of card, token, mpos, or paypage
Optional: billToAddress, shipToAddress, customBilling, taxType, enhancedData, processingInstructions,
pos, merchantData, secondaryAmount, surchargeAmount, debtRepayment, processingType,
originalNetworkTransactionId, originalTransactionAmount, lodgingInfo, merchantCategoryCode
NOTE: If you do not specify an amount child element, the system uses the full amount from the
associated Authorization transaction.
4.69 captureGivenAuthResponse
The captureGivenAuthResponse element is the parent element for information returned to you in
response to a Capture Given Auth transaction. It can be a child of either a cnpOnlineResponse
element or a batchResponse element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
Capture Given Auth transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Capture Given Auth transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Capture Given Auth transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, tokenResponse, giftCardResponse, location
NOTE: The postDate child element is returned only in responses to Online transactions.
4.70 captureResponse
The captureResponse element is the parent element for information returned to you in response to a
Capture transaction. It can be a child of either a cnpOnlineResponse element or a batchResponse
element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
capture transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
capture transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
capture transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, accountUpdater, giftCardResponse, location
NOTE: The system returns the postDate child element in all Online transactions responses.
4.71 card
The card element defines payment card information. It is a required element for most transaction types
unless the transaction uses an alternate payment method such as PayPal. It contains one or more child
elements depending upon whether the transaction is a card-not-present or a card-present (face-to-face)
transaction.
Parent Elements:
activate, activateReversal, accountUpdate, authorization, balanceInquiry, captureGivenAuth, credit,
deactivate, deactivateReversal, depositReversal, forceCapture, giftCardAuthReversal, giftCardCapture,
giftCardCredit, load, loadReversal, refundReversal, sale, unload, unloadReversal, updateSubscription,
fastAccessFunding
Attributes:
None
Child Elements:
For card-not-present transactions (Required): type, number, expDate
For card-present transactions (Required): track
For both transactions types (Optional): cardValidationNum
For Gift Card transactions (Optional): pin
4.72 cardAcceptorTaxId
The cardAcceptorTaxId element is an optional child of the detailTax element and defines the
merchant's Tax Id. This ID is nine digits long if the merchant is domiciled in the U.S. If the card acceptor
tax ID is unknown, do not include this element.
Type = String; minLength = 1; maxLength = 20
Parent Elements:
detailTax
Attributes:
None
Child Elements:
None
4.73 cardholderAuthentication
The cardholderAuthentication element is an optional child element of the Authorization and Sale
transactions. The children of this element have two purposes. The first is to define Verified by Visa or
Mastercard SecureCode data in the Authorization or Sale transactions (authenticationValue,
authenticationTransactionId, and authenticatedByMerchant elements). The remaining child
element, customerIpAddress, as well as the authenticationTransactionId, are used in PayPal
Credit transactions. The customerIpAddress element can also be used to supply the customer IP
Address by merchants enabled for American Express Advanced AVS services.
NOTE: As of September, 2016, the Worldpay eCommerce platform no longer supports PayPal
Credit.
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
authenticationValue, authenticationTransactionId, customerIpAddress, authenticatedByMerchant,
authenticationProtocolVersion
4.74 cardholderId
The cardholderId element is a required child of the pos element, which describes the method used for
cardholder identification at the point of sale.
Type = String (Enum); minLength = N/A; maxLength = N/A
Parent Elements:
pos
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
NOTE: For CAT (Cardholder Activated Terminal) transactions, the capability element must be
set to magstripe, the cardholderId element must be set to nopin, and the catLevel element
must be set to self service.
4.75 cardholderName
The cardholderName element is an optional child of the applepayResponse element and provides
the name of the cardholder whose card initiated the Apple Pay transaction.
Type = String; minLength = N/A; maxLength = 512
Parent Elements:
applepayResponse
Child Elements:
None
4.76 cardOrToken
The cardOrToken element is an abstract that allows the substitution of either the card or token element.
You must specify one of the two substitution elements as a child of the accountUpdate element.
Parent Elements:
accountUpdate
Substitution Options:
card, token
4.77 cardProductType
Parent Elements:
enhancedAuthResponse
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
4.78 cardSuffix
Parent Elements:
authorizationResponse, saleResponse
Attributes:
None
Child Elements:
None
4.79 cardValidationNum
The cardValidationNum element is an optional child of the card element, which you use to submit
either the CVV2 (Visa), CVC2 (Mastercard), or CID (American Express and Discover) value.
NOTE: Some American Express cards may have a 4-digit CID on the front of the card and/or a
3-digit CID on the back of the card. You can use either of the numbers for card validation, but not
both.
When you submit the CVV2/CVC2/CID in a registerTokenRequest, the platform encrypts and stores
the value on a temporary basis for later use in a tokenized Auth/Sale transaction submitted without the
value. This is done to accommodate merchant systems/workflows where the security code is available at
the time of token registration, but not at the time of the Auth/Sale. If for some reason you need to change
the value of the security code supplied at the time of the token registration, use an
updateCardValidationNumOnToken transaction. To use the stored value when submitting an
Auth/Sale transaction, set the cardValidationNum value to 000.
Parent Elements:
card, paypage, token, registerTokenRequest, updateCardValidationNumOnToken
Attributes:
None
Child Elements:
None
4.80 cardValidationResult
Parent Elements:
fraudResult
Attributes:
None
Child Elements:
None
4.81 cashBackAmount
The cashBackAmount element is an optional child of the giftCardResponse element. It defines the
Cash Back amount provided to the Gift Card holder.
Parent Elements:
giftCardResponse
Attributes:
None
Child Elements:
None
4.82 catLevel
The catLevel element is an optional child of the pos element, which describes the capability of the
Cardholder Activated Terminal. Although optional in the schema, it is required for all CAT transactions.
Type = String (Enum); minLength = N/A; maxLength = N/A
Parent Elements:
pos
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
4.83 ccdPaymentInformation
The ccdPaymentInformation element is an optional child of the echeck element. This element is
intended for use by PayFacs using Instruction Based Dynamic Payout to submit a description of the
transaction. The description will appear in the extended detail section of the receiver’s bank statement, if
that section is supported by the receiver’s bank.
Type = String; minLength = N/A; maxLength = 80
Parent Elements:
accountInfo, echeck
Attributes:
None
Child Elements:
None
4.84 chargeback
The chargeback element is an optional child of the filtering element. To disable the chargeback
filtering operation for a selected transaction include the chargeback element with a setting of false.
Type = Boolean; Valid Value = false
NOTE: Although included in the schema, the <chargeback> element is not supported. To override
the chargeback filter for a selected transaction, use the fraudFilterOverride flag (see
fraudFilterOverride on page 549). Please consult your Relationship Manager for additional
information.
Parent Elements:
filtering
Attributes:
None
Child Elements:
None
4.85 checkInDate
The checkInDate element is an optional child of the lodgingInfo element and defines the date the
guest checks into (or plans to check in to) the facility.
Type = Date; Format = YYYY-MM-DD
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
4.86 checkNum
The checkNum element is an optional child of the echeck element defining the check number of used in
the transaction.
Type = String; minLength = N/A; maxLength = 15
Parent Elements:
echeck
Attributes:
None
Child Elements:
None
4.87 checkOutDate
The checkOutDate element is an optional child of the lodgingInfo element and defines the date the
guest checks out of (or plans to check out of) the facility.
Type = Date; Format = YYYY-MM-DD
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
4.88 checkoutId
The checkoutId element is an optional child of the token element specifying the low value token
replacing the CVV value. You use this feature when you already have the consumer’s card (i.e., token) on
file, but wish the consumer to supply the CVV value for a new transaction. This LVT remains valid for 24
hours from the time of issue.
NOTE: For additional information about this element, please refer to the Worldpay Enterprise
eProtect Integration Guide.
Parent Elements:
token
Attributes:
None
Child Elements:
None
4.89 city
The city element defines the customer’s city name in the billToAddress and shipToAddress
elements. In the customBilling element, city defines the location of the merchant for card-present
transactions.
Type = String; minLength = N/A; maxLength = 35
Parent Elements:
billToAddress, shipFromPostalCode, customBilling
Attributes:
None
Child Elements:
None
4.90 clinicOtherAmount
The clinicAmount element is an optional child of the healthcareAmounts element and defines the
healthcare amount used for the clinic/office visits. The decimal is implied. Example: 500 = $5.00.
Type = Integer; totalDigits = 8
Parent Elements:
Optional: healthcareAmounts
Attributes:
None
Child Elements:
None
4.91 cnpInternalRecurringRequest
The cnpInternalRecurringRequest element and its children is an element structure that exists
solely for internally (to system) generated transactions associated with recurring payments managed by
the Recurring engine. You do not need to code for this structure.
Parent Elements:
sale
Attributes:
None
Child Elements:
subscriptionId, recurringTxnId, finalPayment
4.92 cnpOnlineRequest
Parent Elements:
None
Attributes:
version String Yes Defines the cnpAPI schema version against which the
XML is validated.
minLength = N/A maxLength = 10
xmlns String Yes Defines the URI of the schema definition. This is a
fixed location and must be specified as:
http://www.vantivcnp.com/schema.
minLength = N/A maxLength = 38
merchantId String Yes A unique string used to identify the merchant within
the system.
minLength = N/A maxLength = 50
Note: International currencies are supported on a
per merchantId basis.
Child Elements:
Required: authentication
One of the following required: activate, activateReversal, authorization, authReversal, balanceInquiry,
cancelSubscription, capture, captureGivenAuth, createPlan, credit, deactivate, deactivateReversal,
depositReversal, echeckCredit, echeckRedeposit, echeckSale, echeckVerification, echeckVoid,
forceCapture, fraudCheck, giftCardAuthReversal, giftCardCapture, giftCardCredit, load, loadReversal,
registerTokenRequest, refundReversal, sale, unload, updateCardValidationNumOnToken, updatePlan,
updateSubscription, unloadReversal, void, fastAccessFunding, payFacCredit, payFacDebit,
physicalCheckCredit, physicalCheckDebit, reserveCredit, reserveDebit, submerchantCredit,
submerchantDebit, vendorCredit, vendorDebit, customerCredit, customerDebit, payoutOrgCredit,
payoutOrgDebit
4.93 cnpOnlineResponse
Parent Elements:
None
Attributes:
version String Yes Defines the cnpAPI schema version against which the
XML is validated.
minLength = N/A maxLength = 10
xmlns String Yes Defines the URI of the schema definition. This is a
fixed location and must be specified as:
http://www.vantivcnp.com/schema.
minLength = N/A maxLength = 38
NOTE:NOTE:The system returns responses 2 through 5 and the associated messages only if you use
Open Access/Transact to submit transactions.
response String Yes Indicates whether your XML syntax passed validation.
Expected values are as follows:
0 - XML validation succeeded.
1 - XML validation failed. See the message attribute
for more details.
2 - Indicates that the submitted content was either
improperly formatted XML or non-XML content.
3 - Indicates that the submission contains empty or
invalid credentials (user and password).
4 - Indicates that the merchant has reached the
maximum number of concurrent connections.
5 - Indicates that systems may have detected
message content that violates certain restrictions.
minLength = N/A maxLength = 3
message String Yes XML validation error message. Expected values are
as follows:
• If the response attribute returns 0, the message
attribute returns the text “Valid Format.”
• If the response attribute returns 1, the message
attribute returns an error message that helps you
to identify and troubleshoot the syntax problem.
See XML Validation Error Messages on page 880
for example messages.
• If the response attribute returns 2, the message
attribute is "System Error - Call Vantiv."
• If the response attribute returns a value of 3, 4, or
5, the message attribute is "There is a problem
with the system. Contact
[email protected]."
minLength = N/A maxLength = 512
Child Elements:
One of the following required: activateResponse, activateReversalResponse, authorizationResponse,
authReversalResponse, balanceInquiryResponse, cancelSubscriptionResponse,
captureGivenAuthResponse, captureResponse, createPlanResponse, deactivateResponse,
deactivateReversalResponse, depositReversalResponse, creditResponse, echeckCreditResponse,
echeckRedepositResponse, echeckSalesResponse, echeckVerificationResponse,
forceCaptureResponse, giftCardAuthReversalResponse, giftCardCaptureResponse,
giftCardCreditResponse, loadResponse, loadReversalResponse, refundReversalResponse,
registerTokenResponse, saleResponse, unloadResponse, unloadReversalResponse,
updateCardValidationNumOnTokenResponse, voidResponse, updatePlanResponse,
updateSubscriptionResponse, fastAccessFundingResponse, payFacCreditResponse,
payFacDebitResponse, physicalCheckCreditResponse, physicalCheckDebitResponse,
reserveCreditResponse, reserveDebitResponse, submerchantCreditResponse,
submerchantDebitResponse, vendorCreditResponse, vendorDebitResponse, customerCreditResponse,
customerDebitResponse, payoutOrgCerditResponse, payoutOrgDebitResponse
4.94 cnpRequest
Parent Elements:
None
Attributes:
version String Yes Defines the cnpAPI schema version against which the
XML is validated.
minLength = N/A maxLength = 10
xmlns String Yes Defines the URI of the schema definition. This is a
fixed location and must be specified as:
http://www.vantivcnp.com/schema.
minLength = N/A maxLength = 38
Child Elements:
Required: authentication
One of the following required: batchRequest, RFRRequest
4.95 cnpResponse
Parent Elements:
None
Attributes:
version String Yes Defines the cnpAPI schema version against which the XML is
validated.
minLength = N/A maxLength = 10
xmlns String Yes Defines the URI of the schema definition. This is a fixed location
and must be specified as: http://www.vantivcnp.com/schema.
minLength = N/A maxLength = 38
id String No The response returns the same value submitted in the cnp
Request.
minLength = N/A maxLength = 25
response String Yes Indicates whether your XML syntax passed validation. Expected
values are as follows:
0 - XML validation succeeded.
1 - XML validation failed. See the message attribute for more
details.
minLength = N/A maxLength = 3
message String Yes XML validation error message. Expected values are as follows:
• If the response attribute returns 0, the message attribute
returns the text “Valid Format.”
• If the response attribute returns 1, the message attribute
returns an error message that helps you to identify and
troubleshoot the syntax problem. See XML Validation Error
Messages on page 880 for example messages.
minLength = N/A maxLength = 512
cnpSessionId Long Yes A unique value assigned by Worldpay to identify the session.
minLength = N/A maxLength = 19
Child Elements:
One of the following required: batchResponse, RFRResponse
4.96 cnpSessionId
The cnpSessionId element is a child of the RFRRequest element used to request the response from a
previously submitted Batch. The value of the cnpSessionId must be the same at the value returned in
the corresponding attribute of the cnpResponse.
Type = Long; minLength = N/A; maxLength = 19
Parent Elements:
RFRRequest
Attributes:
None
Child Elements:
None
4.97 cnpToken
The cnpToken element defines the value of the token. The system returns this value in XML responses
when issuing new tokens to replace account numbers. The length of the token is the same as the length
of the submitted account number for credit card tokens or a fixed length of seventeen (17) characters for
Direct Debit account tokens.
Type = String; minLength = 13; maxLength = 25
Parent Elements:
The cnpToken element is an optional child of each listed parent element.
registerTokenResponse, tokenResponse, newCardTokenInfo, originalCardTokenInfo, originalToken,
originalTokenInfo, newTokenInfo, updatedToken, token, echeckToken
Attributes:
None
Child Elements:
None
4.98 cnpTxnId
The cnpTxnId element is used to identify transactions in the system. The system returns this element in
XML responses. You use it in various requests to reference the original transaction. For example, when
you submit a Capture transaction, you include the cnpTxnId for the associated Authorization.
Type = Long; minLength = N/A; maxLength = 19
Parent Elements:
This element is a required child of the following: accountUpdateResponse, activateResponse,
activateReversalResponse, authorizationResponse, authReversalResponse, capture, captureResponse,
credit, creditResponse, captureGivenAuthResponse, customerCreditResponse, customerDebitResponse,
deactivateResponse, deactivateReversalResponse, depositReversalResponse, echeckCredit,
echeckCreditResponse, echeckPreNoteCreditResponse, echeckPreNoteSaleResponse,
echeckRedeposit, echeckRedepositResponse, echeckSalesResponse, echeckVerificationResponse,
echeckVoid, echeckVoidResponse, fastAccessFundingResponse, forceCapture, forceCaptureResponse,
fraudCheckResponse, fundingInstructionVoid, fundingInstructionVoidResponse,
giftCardAuthReversalResponse, giftCardCaptureResponse, giftCardCreditResponse, loadResponse,
loadReversalResponse, payFacCreditResponse, payFacDebitResponse, physicalCheckCreditResponse,
physicalCheckDebitResponse, refundReversalResponse, saleResponse, unloadResponse, void,
voidResponse, cancelSubscriptionResponse, updatePlanResponse, updateSubscriptionResponse,
unloadReversalResponse, submerchantCreditResponse, submerchantDebitResponse,
vendorCreditResponse, vendorDebitResponse
NOTE: While the cnpTxnId is optional in the transaction types listed below, Worldpay
recommends you include it whenever possible. Failure to include the cnpTxnId results in missing
information in the Associated Transaction Stream section of the Transaction Detail screen in iQ.
NOTE: Although the schema shows the cnpTxnId element as an optional child of the
authorization, echeckSale, and sale transactions, under normal circumstances, merchants
would never use this option.
Attributes:
None
Child Elements:
None
4.99 code
The code element is a required child of the extendedCardResponse element. The code/message
combination can be either 501- The account was closed, or 504 - Contact the cardholder for updated
information.
Type = String; minLength = N/A; maxLength = 3
Parent Elements:
extendedCardResponse
Attributes:
None
Child Elements:
None
4.100 commodityCode
The commodityCode element is an optional child of the lineItemData element, which specifies the
Identifier assigned by the card acceptor that categorizes the purchased item. Although the schema
defines it as an optional child of the enhancedData element, it is required by Visa for Level III
interchange rates.
Type = String; minLength = 1; maxLength = 12
Parent Elements:
lineItemData
Attributes:
None
Child Elements:
None
NOTE: A commodity code is a numeric code representing a particular product or service. The code
can be 3, 5, 7, or 11 digits in length. The longer the code the more granular the description of the
product/service. For example, code 045 is used for Appliances and Equipment, Household Type,
while code 04506 represents the sub-set of Appliances, Small Electric.
The codes are issued by the NIGP (National Institute of Governmental Purchasing. Their site,
www.nigp.com, offers a subscription based code search engine, as well as downloadable lists for
purchase.
You can also find many lists published online by performing a simple search on “Commodity Codes”.
4.101 companyName
The companyName element is an optional child of the billToAddress element, which specifies the
name of the company associated with the corporate checking account. This element is required when
performing an eCheck Verification of a check from a corporate account, as defined by the <accType>
child of the <echeck> element.
Type = String; minLength = N/A; maxLength = 40
Parent Elements:
billToAddress
Attributes:
None
Child Elements:
None
4.102 country
The country element defines the country portion of the postal mailing address in both the
billToAddress and shipToAddress elements.
Type = String (Enum); minLength = N/A; maxLength = 3
NOTE: The enumerations for this element are listed under <countryTypeEnum> in the cnpAPI
Common XSD. The country names corresponding to the abbreviations can be found in the ISO
3166-1 standard.
All Country Codes are 2-character except for the United States, which accepts both US and USA.
Parent Elements:
billToAddress, shipFromPostalCode
Attributes:
None
Child Elements:
None
4.103 createAddOn
The createAddOn element is the parent of several child elements used to define an additional charge
added to a new or existing subscription.
Parent Elements:
subscription, updateSubscription
Attributes:
None
Child Elements (all Required):
addOnCode, name, amount, startDate, endDate
4.104 createDiscount
The createDiscount element is the parent of several child elements used to define a discount to be
applied to a new or existing subscription.
Parent Elements:
subscription, updateSubscription
Attributes:
None
Child Elements (all Required):
discountCode, name, amount, startDate, endDate
4.105 createPlan
The createPlan element is the parent of several child element that define the attributes of a recurring
payment plan. You associate Plans with subscriptions to define the billing behavior for the recurring
payment.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
None
Child Elements:
planCode, name, description, intervalType, amount, numberOfPayments, trialNumberOfIntervals,
trialIntervalType, active
4.106 createPlanResponse
The createPlanResponse element is the parent element for the response to a createPlan
transaction.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
None
Child Elements:
planCode, cnpTxnId, response, message, responseTime, location
4.107 credit
The credit element is the parent element for all Credit transactions. You can use this element in either
Online or Batch transactions.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
reportGroup String Yes Required attribute that defines the merchant sub-group in
the user interface where this transaction will be displayed.
Please refer to Coding for Report Groups on page 10 for
additional information.
minLength = 1 maxLength = 25
Child Elements:
For credits to transactions processed by Worldpay (Required): cnpTxnId
For credits to transactions processed by Worldpay (Optional): amount, payPalNotes, pin,
secondaryAmount, surchargeAmount
NOTE: If you do not specify an amount, the system uses the full amount from the associated
settlement transaction.
You must include the amount element for credits to transactions not processed by Worldpay.
For credits to transactions not processed by Worldpay (Required): orderId, amount, orderSource, choice
of card, token, paypage, mpos, paypal, or applepay
For credits to transactions not processed by Worldpay (Optional): billToAddress, merchantCategoryCode
For both transaction types (Optional): customBilling, taxType, enhancedData, processingInstructions,
merchantData, actionReason, pos, lodgingInfo
4.108 creditAmount
The creditAmount element is a required child of the giftCardCredit transaction, where it specifies the
amount of the refund. Supply the value in cents without a decimal point. For example, a value of 1995
signifies $19.95.
Type = Integer; totalDigits = 12
Parent Elements:
giftCardCredit
Attributes:
None
Child Elements:
None
4.109 creditCnpTxnId
Parent Elements:
recyclingResponse
Attributes:
None
Child Elements:
None
4.110 creditResponse
The creditResponse element is the parent element for information returned to you in response to a
Credit transaction. It can be a child of either a cnpOnlineResponse element or a batchResponse
element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
credit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
credit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
credit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, tokenResponse, giftCardResponse, applepayResponse, location
NOTE: The postDate child element is returned only in responses to Online transactions.
4.111 cryptogram
The cryptogram element is an optional child of the androidResponse element and provides the
BASE64 Encoded signature cryptogram associated with the Google Pay transaction.
Type = Base 64 Encoded String; minLength = N/A; maxLength = 56
Parent Elements:
androidpayResponse
Attributes:
None
Child Elements:
None
4.112 currencyCode
The currencyCode element is an optional child of the applepayResponse element and provides the
3-character code for the currency used in the transaction.
Type = String; minLength = N/A; maxLength = 3
Parent Elements:
applepayResponse
Attributes:
None
Child Elements:
None
4.113 customAttribute1
NOTE: Once you decide to use a particular custom attribute for a value set and establish a rule for
its evaluation, you can not change it at a later date.
Parent Elements:
advancedFraudChecks
Attributes:
None
Child Elements:
None
4.114 customBilling
The customBilling element allows you to specify custom billing descriptor information for the
transaction. This billing descriptor is used instead of the descriptor defined as the default billing
descriptor. If you do not define this element, the system uses the default.
Parent Elements:
authorization, captureGivenAuth, credit, echeckCredit, echeckSale, forceCapture, sale
NOTE: Although the schema includes the customBilling element as a child of echeckCredit and
echeckSale, Worldpay does not support its use in these instances.
Attributes:
None
Child Elements:
Required for card-not-present transactions: phone, or url
NOTE: Please consult your Relationship Manager prior to using the <url> element. The contents of
this element are discarded unless Worldpay specifically enables to use it in your cnpAPI
submissions.
4.115 customIdentifier
NOTE: The information you provide in this element populates the Individual ID field of the ACH
Record. The use of this field and its appearance on bank statements is at the discretion of the bank
producing the statement.
Parent Elements:
echeckCredit, echeckRedeposit, echeckSale, submerchantCredit, submerchantDebit
Attributes:
None
Child Elements:
None
4.116 customerCredit
The customerCredit element is the parent element for the transaction type that a merchant enabled for
Dynamic Payout uses to move funds from their Settlement Account to a customer Account.
NOTE: You can only use this transaction type if enabled for Dynamic Payout and one of the
following MCCs: 4829 (VI and MC), 7800 (VI and MC), 7801 (VI only), and 7802 (VI only).
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
Child Elements:
Required: accountInfo, amount, fundingCustomerId, fundsTransferId, customerName, customIdentifier
4.117 customerCreditResponse
The customerCreditResponse element is the parent element for information returned to you in
response to a customerCredit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
customerCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
customerCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
customerCredit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.118 customerDebit
The customerDebit element is the parent element for the transaction type that a merchant enabled for
Dymanic Payout uses to move funds from the customer account to their own Settlement Account.
NOTE: You can only use this transaction type if enabled for Dynamic Payout and one of the
following MCCs: 4829 (VI and MC), 7800 (VI and MC), 7801 (VI only), and 7802 (VI only).
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
Child Elements:
Required: accountInfo, amount, fundingCustomerId, fundsTransferId, customerName, customIdentifier
4.119 customerDebitResponse
The customerDebitResponse element is the parent element for information returned to you in
response to a customerDebit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
customerDebit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
customerDebit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
customerDebit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.120 customerInfo
The customerInfo element is the parent of several child elements use to define customer information.
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
ssn, dob, customerRegistrationDate, customerType, incomeAmount, incomeCurrency, employerName,
customerWorkTelephone, residenceStatus, yearsAtResidence, yearsAtEmployer
4.121 customerIpAddress
Parent Elements:
cardholderAuthentication
Attributes:
None
Child Elements:
None
4.122 customerName
Parent Elements:
customerCredit, customerDebit
Attributes:
None
Child Elements:
None
4.123 customerReference
The customerReference element defines a reference string used by the customer for the purchase (for
example, a Purchase Order Number). Although the schema defines it as an optional child of the
enhancedData element, Worldpay recommends you include the element if a value is available/supplied
and omit this element if it is blank.
Type = String; minLength = 1; maxLength = 17
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.124 customerRegistrationDate
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
None
4.125 customerServicePhone
The customerServicePhone element is an optional child of the lodgingInfo element and defines
customer service number of the facility.
Type = String; minLength = N/A; maxLength = 17
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
4.126 customerType
The customerType element is an optional child of the customerInfo element defining whether the
customer is a new or existing customer. An existing customer is a customer in good standing that has
been registered with the merchant for a minimum of 30 days and has made at least one purchase in the
last 30 days. It is used in combination with several other elements to provide required information for
some PayPal Credit transactions.
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
None
4.127 customerWorkTelephone
The customerWorkTelephone element is an optional child of the customerInfo element and defines
the customer’s work telephone number. It is used in combination with several other elements to provide
information for some PayPal Credit transactions.
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
None
4.128 ctxPaymentDetail
Parent Elements:
ctxPaymentInformation
Attributes:
None
Child Elements:
None
4.129 ctxPaymentInformation
The ctxPaymentInformation element is an optional child of the accountInfo element for Batch
submitted transactions only. Payment Facilitators can use this element to submit a description of certain
Instruction Based Dynamic Payout transactions. You define the description using the
ctxPaymentDetail child element. The information appears in the extended detail section of the
receiver’s bank statement, if supported by the receiving bank.
Parent Elements:
accountInfo
Attributes:
None
Child Elements:
ctxPaymentDetail
4.130 data
The data element is a required child of the applepay element. It is the payment data dictionary,
BASE64 encoded string from the PKPaymentToken.
Type = String; minLength = N/A; maxLength = 2000
Parent Elements:
applepay
Attributes:
None
Child Elements:
None
4.131 deactivate
The deactivate element is the parent element for the transaction type that deactivate a Gift Card.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
4.132 deactivateResponse
The deactivateResponse element is the parent element for information returned to you in response to
a deactivate transaction. It can be a child of either a cnpOnlineResponse element or a
batchResponse element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
Deactivate transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Deactivate transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Deactivate transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, fraudResult, giftCardResponse, location
4.133 deactivateReversal
The deactivateReversal element is the parent element for the transaction type that reverses the
deactivation of a Gift Card.
Parent Elements:
cnpOnlineRequest
Attributes:
4.134 deactivateReversalResponse
The deactivateReversalResponse element is the parent element for information returned to you in
response to an deactivateReversal transaction.
Parent Elements:
cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
Deactivate Reversal transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Deactivate Reversal transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Deactivate Reversal transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, giftCardResponse, location
4.135 debitNetworkName
NOTE: Worldpay supports the above Debit Networks for the following orderSource values:
recurring and installment.
Each Debit Network requires registration. Please consult your Implementation Consultant.
Parent Elements:
preferredDebitNetworks
Attributes:
None
Child Elements:
None
4.136 debtRepayment
Parent Elements:
authorization, captureGivenAuth, forceCapture, sale
Attributes:
None
Child Elements:
None
4.137 deleteAddOn
The deleteAddOn element is the parent element used to define an Add On to be removed from an
existing subscription.
Parent Elements:
updateSubscription
Attributes:
None
Child Elements (all Required):
addOnCode
4.138 deleteDiscount
The deleteDiscount element is the parent element used to define a discount to be removed from an
existing subscription.
Parent Elements:
updateSubscription
Attributes:
None
Child Elements (all Required):
discountCode
4.139 deliveryType
The deliveryType element is an optional child of the enhancedData element and defines the shipping
method used for delivery of the product.
Type = String (enum); minLength = N/A; maxLength = N/A
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
4.140 dentalAmount
The dentalAmount element is an optional child of the healthcareAmounts element and defines the
healthcare amount used for dental related purchases. The decimal is implied. Example: 500 = $5.00.
Type = Integer; totalDigits = 8
Parent Elements:
Optional: healthcareAmounts
Attributes:
None
Child Elements:
None
4.141 depositReversal
The depositReversal element is the parent element for a Gift Card specific transaction type that
reverses a giftCardCapture or sale transaction.
Parent Elements:
cnpOnlineRequest
Attributes:
4.142 depositReversalResponse
The depositReversalResponse element is the parent element for information returned to you in
response to an depositReversal transaction.
Parent Elements:
cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
Deposit Reversal transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Deposit Reversal transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Deposit Reversal transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message, giftCardResponse
Optional: postDate, location
4.143 description
The description element is an optional child of the createPlan element and provides a text
description of the Plan.
Type = String; minLength = N/A; maxLength = 100
Parent Elements:
createPlan
Attributes:
None
Child Elements:
None
4.144 descriptor
The descriptor element is an optional child of the customBilling element. This element defines the
text you wish to display on the customer bill, enabling the customer to better recognize the charge.
Type = String; minLength = 4; maxLength = 25
Parent Elements:
customBilling
Attributes:
None
Child Elements:
None
NOTE: When using a descriptor with eChecks, Worldpay maps the first 16 characters to the
Company Name field of the ACH message and the last nine characters as the company phone
number.
4.145 destinationCountryCode
The destinationCountryCode element defines the country portion of the postal mailing address in
the enhancedData element.
Type = String (Enum); minLength = N/A; maxLength = 3
NOTE: The enumerations for this element are listed under <countryTypeEnum> in the cnpAPI
Common XSD. The country names corresponding to the abbreviations can be found in the ISO
3166-1 standard.
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.146 destinationPostalCode
The destinationPostalCode element defines the postal code of the destination in the
enhancedData element.
Type = String; minLength = N/A; maxLength = 20
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.147 detailTax
The detailTax element is an optional child of both the enhancedData and lineItemData elements,
which you use to specify detailed tax information (for example, city or local tax). The total sum of the
detailTax values should match either the salesTax value, if detailTax is a child of enhancedData,
or the taxAmount element if detailTax is a child of lineItemData.
Parent Elements:
enhancedData, lineItemData
NOTE: The detailTax element can appear a maximum of six times as a child of either parent.
Attributes:
None
Child Elements:
Required: taxAmount
Optional: taxIncludedInTotal, taxRate, taxTypeIdentifier, cardAcceptorTaxId
4.148 deviceManufacturerIdentifier
Parent Elements:
applepayResponse
Attributes:
None
Child Elements:
None
4.149 deviceReputationScore
Parent Elements:
advancedFraudResults
Attributes:
None
Child Elements:
None
4.150 deviceReviewStatus
NOTE: The system returns invalid_session if you submitted a session Id using an invalid prefix.
Parent Elements:
advancedFraudResults
Attributes:
None
Child Elements:
None
4.151 disbursementType
Parent Elements:
fastAccessFunding
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
VCI Cash In
Enumeration Description
4.152 discountAmount
The discountAmount element defines the amount of the discount for the order. Although the schema
defines it as an optional child of the enhancedData element, it is required by Visa for Level III
interchange rates. The decimal is implied. Example: 500 = $5.00.
Type = Integer; totalDigits = 8
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.153 discountCode
The discountCode element is the identifier of a defined discount. You use this element when creating,
updating, and deleting a discount applied to a subscription.
Type = String; minLength = N/A; maxLength = 25
Parent Elements:
createDiscount, updateDiscount, deleteDiscount
Attributes:
None
Child Elements:
None
4.154 dob
The dob element is an optional child of the customerInfo element. It is used in combination with
several other elements to provide required information for some PayPal Credit transactions.
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
None
4.155 duration
The duration element is an optional child of the lodgingInfo element and defines the number of
nights the guest stays (or plans to stay) at the facility (see Note below).
NOTE: For a Discover transaction, <duration> is: number of nights * number of rooms. Also, for
Visa transactions, the totalDigits = 2 not 4.
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
4.156 dutyAmount
The dutyAmount element defines duty on the total purchased amount for the order. Although the
schema defines it as an optional child of the enhancedData element, it is required by Visa for Level III
interchange rates. The decimal is implied. Example: 500 = $5.00.
Type = Integer; totalDigits = 8
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.157 echeck
Parent Elements:
echeckCredit, echeckPreNoteCredit, echeckPreNoteSale, echeckSale, echeckVerification
Attributes:
None
Child Elements:
Required: accType, accNum, routingNum
Optional: checkNum, ccdPaymentInformation
4.158 eCheckAccountSuffix
The eCheckAccountSuffix element is an optional child of the tokenResponse element that provides
the last three characters of the Direct Debit account number.
Type = String; minLength = 3; maxLength = 3
Parent Elements:
registerTokenResponse, tokenResponse
Attributes:
None
Child Elements:
None
4.159 echeckCredit
The echeckCredit element is the parent element for all eCheck Credit transactions. You can use this
element in either Batch or Online transactions.
IMPORTANT: Although the schema includes the customBilling element as a child of echeckCredit
and echeckSale, Worldpay does not support its use in these instances.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
Attribute
Name Type Required? Description
id String Yes A unique identifier assigned by the presenter and mirrored back in the
response.
minLength = 1 maxLength = 36
reportGroup String Yes Required attribute that defines the merchant sub-group in the user
interface where this transaction will be displayed. Please refer to
Coding for Report Groups on page 10 for additional information.
minLength = 1 maxLength = 25
Child Elements:
For credits to transactions processed by Worldpay (Required): cnpTxnId
For credits to transactions processed by Worldpay (Optional): amount
NOTE: Omit the amount child element, to use the full from the echeckSale.
For credits to transactions not processed by Worldpay (Required): orderId, amount, orderSource,
billToAddress, (choice of) echeck or echeckToken
For credits to transactions not processed by Worldpay (Optional): merchantData
For both (Optional): customBilling, secondaryAmount, customIdentifier
4.160 echeckCreditResponse
The echeckCreditResponse element is the parent element for information returned to you in response
to an echeckCredit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
echeckCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
echeckCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
echeckCredit transaction.
minLength = 1 maxLength = 25
NOTE: The postDate child element is returned only in responses to Online transactions.
4.161 echeckForToken
Parent Elements:
registerTokenRequest
Attributes:
None
Child Elements:
Required: accNum, routingNum
4.162 echeckPreNoteCredit
The echeckPreNoteCredit element is the parent element for all eCheck Prenotification Credit
transactions. You use this transaction type to perform an eCheck Prenotification, when the subsequent
Direct Debit transaction will be an eCheck Credit transaction. You can use this element only in Batch
transactions. This transaction type is only supported for US transactions.
Parent Elements:
batchRequest
Attributes:
Child Elements:
Required: orderId, orderSource, billToAddress, echeck
Optional: merchantData
4.163 echeckPreNoteCreditResponse
The echeckPreNoteCreditResponse element is the parent element for information returned to you in
response to an echeckPreNoteCredit transaction.
Parent Elements:
batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
echeckCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
echeckCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
echeckCredit transaction.
minLength = 1 maxLength = 25
4.164 echeckPreNoteSale
The echeckPreNoteSale element is the parent element for all eCheck Prenotification Sale transactions.
You use this transaction type to perform an eCheck Prenotification, when the subsequent eCheck
transaction will be an eCheck Sale transaction. You can use this element only in Batch transactions. This
transaction type is only supported for US transactions.
Parent Elements:
batchRequest
Attributes:
Child Elements:
Required: orderId, orderSource, billToAddress, echeck
Optional: merchantData
4.165 echeckPreNoteSaleResponse
The echeckPreNoteSaleResponse element is the parent element for information returned to you in
response to an echeckPreNoteSale transaction.
Parent Elements:
batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
echeckCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
echeckCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
echeckCredit transaction.
minLength = 1 maxLength = 25
4.166 echeckRedeposit
The echeckRedeposit element is the parent element for all eCheck Redeposit transactions. You use
this transaction type to manually attempt redeposits of eChecks returned for either Insufficient Funds or
Uncollected Funds. You can use this element in either Batch or Online transactions.
NOTE: Do not use this transaction type if you are enabled for the Auto Redeposit feature. If you are
enabled for the Auto Redeposit feature, the system will reject any echeckRedeposit transaction
you submit.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
Child Elements:
Required: cnpTxnId
Optional: (choice of) echeck or echeckToken, merchantData, customIdentifier
4.167 echeckRedepositResponse
The echeckRedepositResponse element is the parent element for information returned to you in
response to an echeckRedeposit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
echeckSale transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
echeckSale transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
echeckSale transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, accountUpdater, location
NOTE: The postDate child element is returned only in responses to Online transactions.
4.168 echeckSale
The echeckSale element is the parent element for all eCheck Sale transactions. You can use this element
in either Batch or Online transactions.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
Child Elements:
Required: orderId, amount, orderSource, billToAddress, (choice of) echeck or echeckToken
NOTE: The value for the orderSource element must be one of the following: telephone,
ecommerce, recurringtel, or echeckppd.
NOTE: Although the schema includes the customBilling element as a child of echeckCredit and
echeckSale, Worldpay does not support its use in these instances.
4.169 echeckSalesResponse
The echeckSalesResponse element is the parent element for information returned to you in response
to an echeckSale transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
echeckSale transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
echeckSale transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
echeckSale transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, accountUpdater, tokenResponse, location
NOTE: The postDate child element is returned only in responses to Online transactions.
4.170 echeckToken
The echeckToken element replaces the echeck element in tokenized Direct Debit transactions and
defines the tokenized account information.
Parent Elements:
echeckCredit, echeckRedeposit, echeckSale, echeckVerification
Attributes:
None
Child Elements:
Required: cnpToken, routingNum, accType
Optional: checkNum
4.171 echeckVerification
The echeckVerification element is the parent element for all eCheck Verification transactions. You
use this transaction type to initiate a comparison of the consumer’s account information against
positive/negative databases. You can use this element in either Batch or Online transactions. This
transaction type is only supported for US transactions.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
Child Elements:
Required: orderId, amount, orderSource, billToAddress, (choice of) echeck or echeckToken
Optional: merchantData
4.172 echeckVerificationResponse
The echeckVerificationResponse element is the parent element for information returned to you in
response to a eCheck Verification transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
capture transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
capture transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
capture transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, location
NOTE: The postDate child element is returned only in responses to Online transactions.
4.173 echeckVoid
The echeckVoid element is the parent element for all eCheck Void transactions. You use this transaction
type to either cancel an eCheck Sale transaction, as long as the transaction has not yet settled, or halt
automatic redeposit attempts of eChecks returned for either Insufficient Funds or Uncollected Funds. You
can use this element only in Online transactions.
Parent Elements:
cnpOnlineRequest
Attributes:
Child Elements:
Required: cnpTxnId
4.174 echeckVoidResponse
The echeckVoidResponse element is the parent element for information returned to you in response to
an eCheck Void transaction.
Parent Elements:
cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
void transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
void transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
void transaction.
minLength = 1 maxLength = 25
4.175 eciIndicator
Parent Elements:
applepayResponse, androidpayResponse
Attributes:
None
Child Elements:
None
4.176 email
The email element defines the email address of the customer in both the billToAddress and
shipToAddress elements.
Type = String; minLength = N/A; maxLength = 100
Parent Elements:
billToAddress, shipToAddress
Attributes:
None
Child Elements:
None
4.177 employerName
The employerName element is an optional child of the customerInfo element and defines the name of
the customer’s place of employment. It is used in combination with several other elements to provide
information for some PayPal Credit transactions.
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
4.178 encryptedAccountNumber
NOTE: Use of this element requires specific enablement. Please consult your Relationship
Manager or Implementation Consultant for additional information about this element and associated
feature.
Parent Elements:
registerTokenRequest
Attributes:
None
Child Elements:
None
4.179 encryptedCardValidationNum
NOTE: Use of this element requires specific enablement. Please consult your Relationship
Manager or Implementation Consultant for additional information about this element and associated
feature.
Parent Elements:
registerTokenRequest
Attributes:
None
Child Elements:
None
4.180 encryptedTrack
The encryptedTrack element is a required child of the mpos element. This element provides the
encrypted track data resulting from a card swipe using a ROAM device.
Type = String; minLength = 1; maxLength = 1028
Parent Elements:
mpos
Attributes:
None
Child Elements:
None
4.181 encryptionKeyId
The encryptionKeyId element is an optional child of the registerTokenRequest element. Use this
element to provide the Id of the encryption key used to encrypt the account number and/or the card
validation number.
Type = String; minLength = 1; maxLength = 25
Parent Elements:
registerTokenRequest
Attributes:
None
Child Elements:
None
4.182 endDate
The endDate element is a optional child of both the createAddOn and createDiscount element,
where it specifies either the ending date of the Add On charge or the ending date of the discount.
Type = Date; Format = YYYY-MM-DD
Parent Elements:
createAddOn, createDiscount
Attributes:
None
Child Elements:
None
4.183 endingBalance
The endingBalance element is an optional child of the giftCardResponse element. It defines the
available balance on the submitted Gift Card after the requested operation.
Parent Elements:
giftCardResponse
Attributes:
None
Child Elements:
None
4.184 endpoint
The endpoint element is a required child of the networkResponse element. It defines the card
network (i.e., Visa, Mastercard, Discover, or American Express) acting as an endpoint for the submitted
transaction.
Type = String; minLength = N/A; maxLength = 256
Parent Elements:
networkResponse
Attributes:
None
Child Elements:
None
4.185 enhancedAuthResponse
Parent Elements:
authorizationResponse, saleResponse
Attributes:
None
4.186 enhancedData
The enhancedData element allows you to specify extra information concerning a transaction in order to
qualify for certain purchasing interchange rates. The following tables provide information about required
elements you must submit to achieve Level 2 or Level 3 Interchange rates for Visa and Mastercard.
• For Mastercard:
– The transaction must be taxable.
– The tax charged must be between 0.1% and 30% of the transaction amount, except as noted
bellow.
– For Level 3, the transaction must use a corporate, business, or purchasing card.
NOTE: You can qualify for Mastercard Level 2 rates without submitting the total tax amount (submit
0) if your MCC is one of the following: 4111, 4131, 4215, 4784, 8211, 8220, 8398, 8661, 9211,
9222, 9311, 9399, 9402.
This also applies to Level 3, regardless of your MCC (i.e., submission of 0 allowed).
– You must include at least one line item with amount, description, and quantity defined.
• For Visa:
– The transaction must be taxable.
– The tax charged must be between 0.1% and 22% of the transaction amount, except as noted.
– For Level 3, the transaction must use a a corporate or purchasing card.
NOTE: Sales Tax is no longer required for Level 3. In this case omit the <salesTax > element
entirely.
NOTE: For Discover transactions, the interchange rate is not impacted by the presence of Level 2
or Level 3 data.
Parent Elements:
authorization, capture, captureGivenAuth, credit, forceCapture, sale
4.187 entryMode
The entryMode element is a required child of the pos element, which describes the method used for
card data entry at the point of sale.
Type = String (Enum); minLength = N/A; maxLength = N/A
Parent Elements:
pos
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
track2 magnetic stripe read (track 2 when known or when the terminal makes
no distinction between tracks 1 and 2.)
4.188 ephemeralPublicKey
The ephemeralPublicKey element is a required child of the header element and provides the
BASE64 Encoded string of the ephemeral public key bytes from the Apple Pay transaction.
Type = Base 64 Encoded String; minLength = N/A; maxLength = 400
Parent Elements:
header
Attributes:
None
Child Elements:
None
4.189 eventType
The eventType element is an optional child of the fraudCheck element and defines the type of event
occurring (see Enumeration table below).
Type = String (enum); minLength = N/A; maxLength = N/A
Parent Elements:
fraudCheck
Attributes:
None
Child Elements:
None
Enumerations:
4.190 expDate
The expDate element is a child of the card, token, paypage elements, which specifies the expiration
date of the card (format: mmyy) and is required for card-not-present transactions.
NOTE: Although the schema defines the expDate element as an optional child of the card, token
and paypage elements, you must submit a value for card-not-present transactions.
Parent Elements:
card, newCardInfo, newCardTokenInfo, originalCard, originalCardInfo, originalCardTokenInfo,
originalToken, paypage, token, updatedCard, updatedToken
Attributes:
None
Child Elements:
None
NOTE: You should submit whatever expiration date you have on file, regardless of whether or not it
is expired/stale.
We recommend all merchant with recurring and/or installment payments participate in the Account
Updater program.
4.191 expMonth
The expMonth element is an optional child of the androidpayResponse element, which specifies the
month of expiration of the network token (format: mm).
Type = String; minLength = 2; maxLength = 2
Parent Elements:
androidpayResponse
Attributes:
None
Child Elements:
None
4.192 expYear
The expYear element is an optional child of the androidpayResponse element, which specifies the
year of expiration of the network token (format: yyyy).
Type = String; minLength = 4; maxLength = 4
Parent Elements:
androidpayResponse
Attributes:
None
Child Elements:
None
4.193 extendedCardResponse
NOTE: When using Account Updater (any variation), you must always code to receive the
extendedCardResponse element and its children. We always return this information whenever
applicable regardless of whether you receive other account updater information in the transaction
response message.
Parent Elements:
accountUpdater
Attributes:
None
Child Elements:
code, message
4.194 fastAccessFunding
The fastAccessFunding element is the parent element for the transaction type that a Payment
Facilitator or direct merchant uses to move funds to a sub-merchant/customer held debit card. Payment
Facilitators must use the fundingSubmerchantId and submerchantName elements. Direct merchants
must use the fundingCustomerId and customerName elements.
NOTE: For additional information about PayFac Instruction-Based Dynamic Payout and the use of
this transaction type, please refer to the PayFac Instruction-Based Dynamic Payout document.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
reportGroup String Yes For PayFacs, this attribute does not segregate
transactions in iQ. This field does appear in various
SSR reports.
minLength = 1 maxLength = 25
Child Elements:
Required: amount, fundsTransferId, disbursementType, choice of fundingSubmerchantId or
fundingCustomerId, and choice of customerName or submerchantName, and choice of card, paypage, or
token
4.195 fastAccessFundingResponse
The fastAccessFundingResponse element is the parent element for information returned to you in
response to a fastAccessFunding transaction.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payFacCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
submerchantCredit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message, postDate, location
4.196 fieldValue
The fieldValue element is a child of both the networkField and networkSubField elements. The
fieldValue element is required when a child of the networkField element and no subfield exists.
This element is always required when used as a child of the networkSubField element. It provides the
raw data for the designated field, extracted from the network ISO 8583 response message.
Type = String; minLength = N/A; maxLength = 9999
Parent Elements:
networkField, networkSubField
Attributes:
None
Child Elements:
None
4.197 filtering
The filtering element is an optional child of either the Authorization or Sale request transaction. You
use its child elements to selectively enable/disable the various Basic Fraud toolkit features. Setting either
the <international> or <chargeback> child element to false disables that filtering feature for the
transaction. The <prepaid> child can be set to true to enable the feature selectively, or set to false to
disable the feature for the transaction, if you elected to use the filter all prepaid configuration option.
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
Optional: prepaid, international, chargeback
NOTE: Although included in the schema and shown in the example below, the <chargeback>
element is not supported. To override the chargeback filter for a selected transaction, use the
fraudFilterOverride flag (see fraudFilterOverride on page 549). Please consult your Relationship
Manager for additional information.
4.198 finalPayment
Parent Elements:
cnpInternalRecurringRequest
Attributes:
None
Child Elements:
None
4.199 fireSafetyIndicator
The fireSafetyIndicator element is an optional child of the lodgingInfo element and defines
whether or not the facility conforms to the requirements of the Hotel and Motel Fire Safety Act of 1990, or
similar legislation.
Type = Boolean; Valid Values = true or false
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
4.200 firstName
The firstName element is a child of the billtoAddress element, which specifies the first name of the
account holder and is required for echeckVerification transactions.
NOTE: When performing an eCheck Verification for a corporate account, you must include values
for the firstName and lastName elements. If you do not have the name of the check issuer, you
can use a value of unavailable for both elements.
Parent Elements:
billToAddress
Attributes:
None
Child Elements:
None
4.201 forceCapture
The forceCapture element is the parent element for all Force Capture transactions. These are
specialized Capture transactions used when you do not have a valid Authorization for the order, but have
fulfilled the order and wish to transfer funds. You can use this element in either Online or Batch
transactions.
NOTE: You must be authorized by Worldpay before processing this transaction type. In some
instances, using a Force Capture transaction can lead to chargebacks and fines.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
reportGroup String Yes Required attribute that defines the merchant sub-group in
the user interface where this transaction will be displayed.
Please refer to Coding for Report Groups on page 10 for
additional information.
minLength = 1 maxLength = 25
Child Elements:
Required: orderId, amount, orderSource, choice of card, token, mpos, paypage, or applepay
Optional: billToAddress, customBilling, taxType, enhancedData, processingInstructions, pos,
merchantData, productCode, secondaryAmount, surchargeAmount, debtRepayment, processingType,
lodgingInfo, merchantCategoryCode
4.202 forceCaptureResponse
The forceCaptureResponse element is the parent element for information returned to you in response
to a Force Capture transaction. It can be a child of either a cnpOnlineResponse element or a
batchResponse element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
Force Capture transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Force Capture transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Force Capture transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, tokenResponse, accountUpdater, giftCardResponse, applepayResponse, location
NOTE: The postDate child element is returned only in responses to Online transactions.
4.203 formatId
The formatId element is a required child of the mpos element. This element identifies the format of the
encrypted track submitted from the device.
Type = String; minLength = 1; maxLength = 1028
Parent Elements:
mpos
Attributes:
None
Child Elements:
None
4.204 fraudCheck
The fraudCheck element is the parent element for the standalone Advanced Fraud Check transaction.
You use this transaction type to retrieve the results of the Advanced Fraud Check tool without submitting
an Authorization or Sale transaction. You can use this element only in Online transactions.
Parent Elements:
cnpOnlineRequest
Attributes:
Child Elements:
Required: advancedFraudChecks
Optional: billToAddress, shipToAddress, amount, eventType, accountLogin, accountPasshash
4.205 fraudCheckResponse
The fraudCheckResponse element is the parent element for information returned to you in response to
a standalone Fraud Check transaction.
Parent Elements:
cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
Force Capture transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Force Capture transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Force Capture transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: advancedFraudResults, location
4.206 fraudFilterOverride
The fraudFilterOverride element is an optional child of both the authorization and the sale
elements. A setting of true will override (disable) all fraud filters for the submitted transaction.
Type = Boolean; Valid Values = true or false
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
None
4.207 fraudResult
Parent Elements:
activateResponse, authorizationResponse, deactivateResponse, loadResponse, saleResponse,
unloadResponse, authInformation
Attributes:
None
NOTE: The <advancedAVSResults> element applies only to American Express transactions. Also,
you must be enabled specifically to use the Advanced AVS feature. Please consult your
Relationship Manager for additional information.
4.208 fundingCustomerId
The fundingCustomerId element is a required child of the funding instruction request transaction types
listed below, where it specifies the identifier of the customer whose funds the instruction moves.
Type = String; minLength = N/A; maxLength = 50
Parent Elements:
customerCredit, customerDebit, vendorCredit, vendorDebit
Attributes:
None
Child Elements:
None
4.209 fundingInstructionVoid
The fundingInstructionVoid element is the parent element for the transaction type that a Payment
Facilitator uses to void a submitted, but not yet processed funding instruction. You must submit the
fundingInstructionVoid transaction prior to your cutoff time on the same day you submitted the
instruction to be voided. This rule also applies to funding instructions submitted on weekends.
Parent Elements:
batchRequest
Attributes:
reportGroup String Yes For PayFacs, this attribute does not segregate
transactions in iQ. This field does appear in various
SSR reports.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId
4.210 fundingInstructionVoidResponse
Parent Elements:
batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
credit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
credit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
credit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: location
4.211 fundingSource
The fundingSource element is an optional child of the enhancedAuthResponse element. Through its
child elements, it provides information concerning whether the card used for the transaction is Prepaid,
Credit, Debit, or FSA and if Prepaid, the available balance, the type of prepaid card, and whether it is
reloadable.
Parent Elements:
enhancedAuthResponse
Attributes:
None
Child Elements:
Required: type, availableBalance, reloadable, prepaidCardType
NOTE: The fundingSource element and its child elements, type and availableBalance are
associated with the Insights features (see Issuer Insights on page 24.)
Please consult your Relationship Manager for additional information.
4.212 fundingSubmerchantId
The fundingSubmerchantId element is a required child of each funding instruction request transaction
type, where it specifies the identifier of the sub-merchant whose funds the instruction moves.
NOTE: If you process transactions solely on the Worldpay platform or on both the Worldpay and
Worldpay eCommerce platforms, use the Worldpay-supplied Sub-merchant Merchant Id as the
value of the fundingSubmerchantId element.
If you process solely on the Worldpay eCommerce platform, use the eCommerce-supplied value
obtained, after creating the Sub-merchant, by submitting a Sub-Merchant Retrieval Request via the
Merchant Provisioner API as the value of the fundingSubmerchantId element.
Please refer to the Worldpay eComm PayFac API Reference Guide for additional information.
Parent Elements:
payFacCredit, payFacDebit, physicalCheckCredit, physicalCheckDebit, reserveCredit, reserveDebit,
submerchantCredit, submerchantDebit, vendorCredit, vendorDebit, fastAccessFunding,
fastAccessFundingResponse
Attributes:
None
Child Elements:
None
4.213 fundsTransferId
Parent Elements:
payFacCredit, payFacCreditResponse, payFacDebit, payFacDebitResponse, physicalCheckCredit,
physicalCheckCreditResponse, physicalCheckDebit, physicalCheckDebitResponse, reserveCredit,
reserveCreditResponse, reserveDebit, reserveDebitResponse, submerchantCredit,
submerchantCreditResponse, submerchantDebit, submerchantDebitResponse, vendorCredit,
vendorCreditResponse, vendorDebit, vendorDebitResponse, fastAccessFunding,
fastAccessFundingResponse, customerCreditResponse, customerDebitResponse
Attributes:
None
Child Elements:
None
4.214 giftCardAuthReversal
The giftCradAuthReversal element is the parent element for the transaction type that reverses an
authorization on a Gift Card.
Parent Elements:
cnpOnlineRequest, cnpRequest
Attributes:
4.215 giftCardAuthReversalResponse
The giftCardAuthReversalResponse element is the parent element for information returned to you
in response to a Gift Card Auth Reversal transaction.
Parent Elements:
cnpOnlineResponse, cnpResponse
Attributes:
id String Yes The response returns the same value submitted in the
Force Capture transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Force Capture transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Force Capture transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message, giftCardResponse
Optional: postDate (returned for online transactions only), location
4.216 giftCardBin
The giftCardBin element is a required child of the virtualGiftCard element defining the requested
BIN of the virtual Gift Card number requested.
NOTE: In an early iteration of schema V8.22 issued in September of 2013 this element was defined
as an optional child of the virtualGiftCard element. If you coded to the earlier version, be
aware that this element is now required. If you do not include this element, the transaction will fail
XML validation.
Parent Elements:
virtualGiftCard
Attributes:
None
Child Elements:
None
4.217 giftCardCapture
The giftCardCapture element is the parent element for the transaction type that captures funds
previously authorized on a Gift Card.
Parent Elements:
cnpOnlineRequest, cnpRequest
Attributes:
4.218 giftCardCaptureResponse
The giftCardCaptureResponse element is the parent element for information returned to you in
response to a Gift Card Capture transaction.
Parent Elements:
cnpOnlineResponse, cnpResponse
Attributes:
id String Yes The response returns the same value submitted in the
Force Capture transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Force Capture transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Force Capture transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message, giftCardResponse
Optional: fraudResult, postDate (returned for online transactions only), location
4.219 giftCardCredit
The giftCardCredit element is the parent element for all Gift Card Credit transactions. There are two
possible structures for this message type. You use the first structure for credit transactions against
captures/sales processed by Worldpay. The alternate structure applies to credits against captures/sales
not processed by Worldpay. You can use this transaction type in either Online or Batch submissions.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
Child Elements:
For credits to transactions processed by Worldpay (Required): creditAmount, card
For credits to transactions processed by Worldpay (Optional): cnpTxnId
For credits to transactions not processed by Worldpay (Required): orderId, creditAmount, orderSource,
card
4.220 giftCardCreditResponse
The giftCardCreditResponse element is the parent element for information returned to you in
response to a Gift Card Credit transaction.
Parent Elements:
cnpOnlineResponse, cnpResponse
Attributes:
id String Yes The response returns the same value submitted in the
Force Capture transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Force Capture transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Force Capture transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message, giftCardResponse
Optional: fraudResult, postDate (returned for online transactions only), location
4.221 giftCardResponse
The giftCardResponse element is a required child of several transaction types and optional for several
others. Through its child elements, it provides details about the available balance on a Gift Card, as well
as additional reference items used in subsequent, related transactions. For example, in a
giftCardAuthReversal transaction, you must include values of the refCode, systemTraceId, and
sequenceNumber from the authorizationResponse in the originalRefCode,
originalSystemTraceId, and originalSequenceNumber elements respectively.
Parent Elements:
Required:activateResponse, activateReversalResponse, giftCardAuthReversalResponse,
balanceInquiryResponse, giftCardCaptureResponse, giftCardCreditResponse, deactivateResponse,
deactivateReversalResponse, depositReversalResponse, loadResponse, loadReversalResponse,
refundReversalResponse, unloadResponse, unloadReversalResponse
Optional (per schema, but always returned for Gift Card Transactions): authorizationResponse,
captureGivenAuthResponse, forceCaptureResponse, saleResponse
Attributes:
None
Child Elements (All Optional, but must contain at least one child):
Optional: txnTime, refCode, systemTraceId, sequenceNumber, availableBalance, beginningBalance,
endingBalance, cashBackAmount
4.222 giropay
The giropay element is a child of the sale transaction that, through its child elements, defines
information needed to process an Giropay (Real-time Bank Transfer) transaction. At this time, you can
use the iDeal method of payment in Online transactions only.
NOTE: Although included in the schema, this API no longer supports the Giropay alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about
Giropay support.
Parent Elements:
sale
Attributes:
None
Child Elements:
Optional: preferredLanguage
4.223 giropayResponse
The giropayResponse element is a child of the saleResponse transaction when the method of
payment in the request is giropay. It contains child elements that you should store for future
use/reference.
NOTE: Although included in the schema, this API no longer supports the Giropay alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
Parent Elements:
saleResponse
Attributes:
None
4.224 header
The header element is a required child of the applepay element. Its child elements provides information
required to process the Apple Pay transaction.
Type = String; minLength = N/A; maxLength = 10000
Parent Elements:
applepay
Attributes:
None
Child Elements (All Optional, but must contain at least one child):
Optional: applicationData, ephemeralPublicKey, publicKeyHash, transactionId
4.225 healthcareAmounts
The healthcareAmount element is a required child of the healthcareIIAS element. Through its child
elements, it provides details about the dollar amount and type of IIAS qualified items purchased using
Healthcare Prepaid cards.
For all card brands except Visa, the value you use for the totalHealthcareAmount child must be the
sum of the values applied to the following elements: RxAmount, visionAmount, clinicOtherAmount,
and dentalAmount. For Visa, do not include the visionAmount in the total.
Parent Elements:
healthcareIIAS
Attributes:
None
Child Elements:
Required: totalHealthcareAmount
Optional: RxAmount, visionAmount, clinicOtherAmount, dentalAmount
4.226 healthcareIIAS
The healthcareIIAS element is an optional child of Authorization and Sale transactions. Through its
child elements, it provides information about IIAS qualified items purchased using Healthcare Prepaid
cards.
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
Required: healthcareAmounts, IIASFlag
4.227 hotelFolioNumber
The hotelFolioNumber element is an optional child of the lodgingInfo element and defines
customer folio number from your system.
Type = String; minLength = N/A; maxLength = 17
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
4.228 iban
NOTE: Although included in the schema, this API no longer supports the SEPA alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
The iban element is a required child of the sepaDirectDebit element. It defines the International
Bank Account Number of the customer.
Type = String; minLength = 15; maxLength = 34
Parent Elements:
sepaDirectDebit
Attributes:
None
Child Elements:
None
4.229 ideal
The ideal element is a child of the sale transaction that, through its child elements, defines information
needed to process an iDEAL (Real-time Bank Transfers) transaction. At this time, you can use the iDEAL
method of payment in Online transactions only.
NOTE: Although included in the schema, this API no longer supports the iDEAL alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about iDEAL
support.
Parent Elements:
sale
Attributes:
None
Child Elements:
Optional: preferredLanguage
4.230 idealResponse
The idealResponse element is a child of the saleResponse transaction when the method of payment
in the request is ideal. It contains child elements that you should store for future use/reference.
NOTE: Although included in the schema, this API no longer supports the iDeal alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
Parent Elements:
saleResponse
Attributes:
None
4.231 IIASFlag
The IIASFlag element is a required child of the healthcareIIAS element. This element only supports
a value of Y.
Type = String (enum); minLength = N/A; maxLength = 1; Valid Value = Y
Parent Elements:
healthcareIIAS
Child Elements:
None
4.232 incomeAmount
The incomeAmount element is an optional child of the customerInfo element and defines the yearly
income of the customer. It is used in combination with several other elements to provide information for
some PayPal Credit transactions.
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
None
4.233 incomeCurrency
The incomeCurrency element is an optional child of the customerInfo element and defines the
currency of the incomeAmount element. The default value is USD (United States Dollars). It is used in
combination with several other elements to provide information for some PayPal Credit transactions.
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
EUR Euro
4.234 international
The international element is an optional child of the filtering element. To disable the filtering
operation for a selected transaction include the international element with a setting of false.
Type = Boolean; Valid Value = false
Parent Elements:
filtering
Attributes:
None
Child Elements:
None
4.235 intervalType
The intervalType element is a required child of the createPlan element and defines the billing period
associated with the Plan.
Type = String (enum); minLength = N/A; maxLength = N/A
Parent Elements:
createPlan
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
4.236 invoiceReferenceNumber
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.237 issuerCountry
Parent Elements:
enhancedAuthResponse
Attributes:
None
Child Elements:
None
4.238 itemDescription
The itemDescription element is a required child of the lineItemData element, which provides a
brief text description of the item purchased.
Type = String; minLength = N/A; maxLength = 26
Parent Elements:
lineItemData
Attributes:
None
Child Elements:
None
4.239 itemDiscountAmount
The itemDiscountAmount element is an optional child of the lineItemData element, which specifies
the item discount amount. Although an optional element, it is required by Visa for Level III Interchange
rates. The value must be greater than or equal to 0. The decimal is implied. Example: 500 = $5.00.
Type = Integer; totalDigits = 8
Parent Elements:
lineItemData
Attributes:
None
Child Elements:
None
4.240 itemSequenceNumber
The itemSequenceNumber element is an optional child of the lineItemData element (required for
Visa transactions). When providing line item data, you must number each item sequentially starting with
1.
Type = Integer; minInclusive value = 1, maxInclusive value = 99
Parent Elements:
lineItemData
Attributes:
None
Child Elements:
None
4.241 ksn
The ksn element is a required child of the mpos element. This element defines the Key serial Number
returned from the encrypting device. It is created automatically from the unique identifier of the device and
an internal transaction counter.
Type = String; minLength = 1; maxLength = 1028
Parent Elements:
mpos
Attributes:
None
Child Elements:
None
4.242 lastName
The lastName element is a child of the billtoAddress element, which specifies the last name of the
account holder and is required for echeckVerification transactions.
NOTE: When performing an eCheck Verification for a corporate account, you must include values
for the firstName and lastName element. If you do not have the name of the check issuer, you
can use a value of “unavailable” for both elements.
Parent Elements:
billToAddress
Attributes:
None
Child Elements:
None
4.243 lineItemData
The lineItemData element contains several child elements used to define information concerning
individual items in the order. Although the schema defines it as an optional child of the enhancedData
element, it is required for Level III interchange rates.
NOTE: Mastercard and Visa allow up to 99 instances of this element in a transaction. American
Express allows a maximum of 4 instances of this element in a transaction.
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
Required: itemDescription
Optional: itemSequenceNumber, productCode, quantity, unitOfMeasure, taxAmount, lineItemTotal,
lineItemTotalWithTax, itemDiscountAmount, commodityCode, unitCost, detailTax
NOTE: When including the lineItemData element, please be aware of the following rules for its child
elements:
• itemSequenceNumber is required by Visa
• productCode, quantity, unitOfMeasure, and lineItemTotal are required by Visa and
Mastercard
• itemDiscountAmount, commodityCode, and unitCost are required by Visa for Level III
Interchange rates
4.244 lineItemTotal
The lineItemTotal element is an optional child of the lineItemData element, which specifies the
total cost of the line items purchased, not including tax. For example, if the order was for 500 pencils at
$1.00 each, the lineItemTotal would be $500. Although an optional element, it is required by Visa and
Mastercard when specifying line item data. The decimal is implied. Example: 500 = $5.00.
Type = Integer; totalDigits = 8
Parent Elements:
lineItemData
Attributes:
None
Child Elements:
None
4.245 lineItemTotalWithTax
Parent Elements:
lineItemData
Attributes:
None
Child Elements:
None
4.246 load
The load element is the parent element for the transaction type that adds funds to a reloadable Gift
Card.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
4.247 loadResponse
The loadResponse element is the parent element for information returned to you in response to a load
transaction. It can be a child of either a cnpOnlineResponse element or a batchResponse element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
Load transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Load transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Load transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, fraudResult, giftCardResponse, location
4.248 loadReversal
The loadReversal element is the parent element for the transaction type that reverses the loading of a
Gift Card.
Parent Elements:
cnpOnlineRequest
Attributes:
4.249 loadReversalResponse
The loadReversalResponse element is the parent element for information returned to you in response
to an loadReversal transaction.
Parent Elements:
cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
Load Reversal transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Load Reversal transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Load Reversal transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, giftCardResponse, location
4.250 location
The location element is an optional child of all response messages and designates which data center
processed the transaction. This element only applies to merchant using our Multi-Site processing option.
Type = String minLength = N/A; maxLength = N/A
Parent Elements:
activateResponse, activateReversalResponse, authorizationResponse, authReversalResponse,
balanceInquiryResponse, cancelSubscriptionResponse, captureGivenAuthResponse, captureResponse,
createPlanResponse, deactivateResponse, deactivateReversalResponse, depositReversalResponse,
creditResponse, echeckCreditResponse, echeckRedepositResponse, echeckSalesResponse,
echeckVerificationResponse, echeckVoidResponse, forceCaptureResponse,
fundingInstructionVoidResponse, fraudCheckResponse, giftCardAuthReversalResponse,
giftCardCaptureResponse, giftCardCreditResponse, loadResponse, loadReversalResponse,
queryTransactionResponse, queryTransactionUnavailableResponse, refundReversalResponse,
registerTokenResponse, saleResponse, unloadResponse, unloadReversalResponse,
updateCardValidationNumOnTokenResponse, voidResponse, updatePlanResponse,
updateSubscriptionResponse, fastAccessFundingResponse, payFacCreditResponse,
payFacDebitResponse, physicalCheckCreditResponse, physicalCheckDebitResponse,
reserveCreditResponse, reserveDebitResponse, submerchantCreditResponse,
submerchantDebitResponse, vendorCreditResponse, vendorDebitResponse, customerCreditResponse,
customerDebitResponse, payoutOrgCerditResponse, payoutOrgDebitResponse,
translateToLowValueTokenResponse
Attributes:
None
Child Elements:
None
4.251 lodgingCharge
The lodgingCharge element is an optional child of the lodgingInfo element and through its child
element, defines the type of additional charges associated with the stay of the guest. You can include this
element a maximum of six times in a transaction.
Type = String (Enum); minLength = N/A; maxLength = N/A
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
name
4.252 lodgingInfo
The lodgingInfo element, through its child elements, defines a number of lodging related data points
that, when submitted, can result in a more favorable interchange rate (see Table 4-3 for additional
information).
Parent Elements:
authorization, capture, captureGivenAuth, credit, forceCapture, sale
Attributes:
None
4.253 mandateProvider
NOTE: Although included in the schema, this API no longer supports the SEPA alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
The mandateProvider element is a required child of the sepaDirectDebit element and defines
whether the Merchant or Worldpay provides the mandate for customer approval.
Type = String (Enum); Allowed Values = Merchant or Vantiv
Parent Elements:
sepaDirectDebit
Attributes:
None
Child Elements:
None
4.254 mandateReference
NOTE: Although included in the schema, this API no longer supports the SEPA alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
The mandateReference element is an optional child of both the sepaDirectDebit element and the
sepaDirectDebitResponse element. You use this element for recurring payments (after the initial
transaction) to provide the reference number that links subsequent payments in a recurring stream to the
mandate agreed to at the time of the initial payment. Worldpay returns this value in the
sepaDirectDebitResponse associated with the initial payment. It is not returned for subsequent
payments in a recurring stream.
Type = String; minLength = N/A; maxLength = 256
Parent Elements:
sepaDirectDebit, sepaDirectDebitResponse
Attributes:
None
Child Elements:
None
4.255 mandateSignatureDate
NOTE: Although included in the schema, this API no longer supports the SEPA alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
Parent Elements:
sepaDirectDebit
Attributes:
None
Child Elements:
None
4.256 mandateURL
NOTE: Although included in the schema, this API no longer supports the SEPA alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
The mandateUrl element is an optional child of the sepaDirectDebit element and defines the URL
of the mandate to which the consumer agreed, allowing the merchant to debit their account. Although
optional, you should always provide this information when the value for the mandateProvider element
is Merchant.
Type = String; minLength = 1; maxLength = 2000
Parent Elements:
sepaDirectDebit
Attributes:
None
Child Elements:
None
4.257 matchCount
Parent Elements:
queryTransactionResponse
Attributes:
None
Child Elements:
None
4.258 merchantCategoryCode
The merchantCategoryCode element is an optional child of several transaction types. This element
allows you to define the MCC used for this transaction from those white listed for your organization. If you
submit an MCC not on the white list, we decline the transaction with a Response Code of 170 - Submitted
MCC not allowed.
Type = String; minLength = 4; maxLength = 4
NOTE: Although included in the schema, this element is not yet available for general use. Please
speak to your Relationship Manager for additional information.
Parent Elements:
authorization, captureGivenAuth, credit, forceCapture, sale
Attributes:
None
Child Elements:
None
4.259 merchantData
The merchantData element is an optional child element of several transaction types. You can use its
children to track transactions based upon marketing campaigns, affiliates, or other user defined
parameter.
Parent Elements:
authorization, captureGivenAuth, credit, echeckCredit, echeckPreNoteCredit, echeckPreNoteSale,
echeckRedeposit, echeckSale, echeckVerification, forceCapture, sale
Attributes:
None
Child Elements (all optional):
affiliate, campaign, merchantGroupingId
4.260 merchantGroupingId
The merchantGroupingId element is an optional child element of the merchantData element. You
can use it to track transactions based upon this user defined parameter.
Type = String; minLength = N/A; maxLength = 25
Parent Elements:
merchantData
Attributes:
None
Child Elements:
None
4.261 merchantId
The merchantId element is a child of the accountUpdateFileRequestData element used when you
request an Account Update file. This value is a unique string used to identify the merchant within the
system.
Type = String; minLength = N/A; maxLength = 50
Parent Elements:
accountUpdateFileRequestData
Attributes:
None
Child Elements:
None
4.262 message
The message element contains a brief definition of the response code returned for the transaction.
When it is a child of the extendedCardResponse element, the only values allowed are either "The
account was closed," or "Contact the cardholder for updated information."
For a complete list of response codes and associated messages, please refer to Appendix A.
Type = String; minLength = N/A; maxLength = 512
Parent Elements:
activateResponse, activateReversalResponse, authorizationResponse, captureResponse,
captureGivenAuthResponse, creditResponse, customerCreditResponse, customerDebitResponse,
deactivateResponse, deactivateReversalResponse, depositReversalResponse, echeckCreditResponse,
echeckPreNoteCreditResponse, echeckPreNoteSaleResponse, echeckRedepositResponse,
echeckSalesResponse, echeckVerificationResponse, echeckVoidResponse, extendedCardResponse,
forceCaptureResponse, fraudCheckResponse, loadResponse, loadReversalResponse,
queryTransactionResponse, queryTransactionUnavailableResponse, refundReversalResponse,
saleResponse, unloadResponse, unloadReversalResponse, voidResponse,
cancelSubscriptionResponse,updatePlanResponse, updateSubscriptionResponse,
payFacCreditResponse, payFacDebitResponse, physicalCheckCreditResponse,
physicalCheckDebitResponse, reserveCreditResponse, reserveDebitResponse,
submerchantCreditResponse, submerchantDebitResponse, vendorCreditResponse,
vendorDebitResponse
Attributes:
None
Child Elements:
None
4.263 middleInitial
The middleInitial element is a child of the billtoAddress element, which specifies the middle
initial of the account holder. It is an optional element used for echeckVerification transactions.
Type = String; minLength = N/A; maxLength = 1
Parent Elements:
billToAddress
Attributes:
None
Child Elements:
None
4.264 mpos
The mpos element defines payment card information when the transaction originates with a ROAM
device.
Parent Elements:
authorization, captureGivenAuth, credit, forceCapture, sale, registerTokenRequest
Attributes:
None
4.265 name
The name element has multiple uses depending upon the parent element. In both the billToAddress
and shipToAddress element structures, it defines the customer name. When used as a child of one of
the Recurring Engine associated parents (i.e., createAddOn, updateAddOn, createDiscount,
updateDiscount, or createPlan), the name element specifies the name of the parent item being
created/updated.
See the section below for the element definition when a child of lodgingCharge.
Type = String; minLength = N/A; maxLength = 100
Parent Elements:
billToAddress, shipToAddress, createAddOn, updateAddOn, createDiscount, updateDiscount, createPlan
NOTE: The name element is required for Direct Debit transactions. If you do not submit the
customer name in an Direct Debit transaction, we return Response Code 709 - Invalid Data.
The name element is required for sale transactions using the sepaDirectDebit method of
payment and must be a minimum of two characters. Failure to include the name element results in a
901 - Missing Name Response Code. If the value is not at least two characters, the transaction
declines with a response code of 902 - Invalid Name
Attributes:
None
Child Elements:
None
Parent Elements:
lodgingCharge
Attributes:
None
Child Elements:
None
Enumerations:
Enum Description
RESTAURANT There are additional charges associated with the use of the facility
restaurant.
GIFTSHOP There are additional charges associated with the use of the facility gift
shop
MINIBAR There are additional charges associated with the use of the room
minibar
TELEPHONE There are additional charges associated with the use of the room
telephone service.
LAUNDRY There are additional charges associated with the use of the facility
laundry service.
OTHER There are additional charges associated with the use of other
uncategorized facility services.
4.266 networkField
The networkField element is an optional child of the networkResponse element. Its attributes and
child elements define the Field Number, Field Name, (Raw) Field Value, as well as any Sub-fields, if
applicable.
Parent Elements:
networkResponse
Attributes:
fieldName String Yes This attribute defines the name of the ISO 8583 field
containing the information returned.
Type = Enum
Allowed Values:
• Transaction Amount
• Settlement Date
• Authorization Identification Response
• Response Code
• Additional Response Data
• Private Use Additional Data
• Settlement Currency Code
• Cardholder Billing Currency Code
• Additional Amounts
• Reserved Private
• Transaction Description
• Reserved For National Use
• Reserved For Private Use
fieldNumber Integer Yes This attribute defines the number of the ISO 8583 field
containing the information returned. Different card
networks may use different Field Numbers for the
same information.
minLength = 1 maxLength = N/A
Child Elements:
fieldValue, networkSubField
</networkField>
4.267 networkName
The networkName element defines the Debit Network through which Worldpay processed the
transaction. This element appears only if you use the Worldpay Prime PINless Debit service and
Worldpay routed the transaction through a Debit Network for approval.
Type = String; minLength = N/A; maxLength = 25
Parent Elements:
pinlessDebitResponse
Attributes:
None
Child Elements:
None
4.268 networkResponse
The networkResponse element is an optional child of the enhancedAuthResponse element. Its child
elements provide a number of data points returned by the card networks in their ISO 8583 response
messages.
Parent Elements:
enhancedAuthResponse
Attributes:
None
Child Elements:
endpoint, networkField
4.269 networkSubField
The networkSubField element is a required child of the networkField element, when a subfield
exists. Its child element provides the raw subfield data returned by the card networks in their ISO 8583
response messages.
Parent Elements:
networkField
Attributes:
fieldNumber Integer Yes This attribute defines the number of the ISO 8583 field
or subfield containing the information returned.
Different card networks may use different Field
Numbers for the same information.
minLength = 1 maxLength = N/A
Child Elements:
fieldValue
4.270 networkTransactionId
NOTE: In the initial transaction of the recurring/installment stream, you must set the
processingType element to either initialRecurring or initialInstallment, as applicable.
Parent Elements:
authorizationResponse, saleResponse
Attributes:
None
Child Elements:
None
4.271 newAccountInfo
The newAccountInfo element is an optional child of the accountUpdater element, which contains
child elements providing the updated information for the submitted account.
Parent Elements:
accountUpdater
Attributes:
None
Child Elements:
accType, accNum, routingNum
4.272 newCardInfo
The newCardInfo element is an optional child of the accountUpdater element, which contains child
elements providing the updated information for the submitted card.
Parent Elements:
accountUpdater
Attributes:
None
Child Elements:
type, number, expDate
4.273 newCardTokenInfo
The newCardTokenInfo element is an optional child of the accountUpdater element, which contains
child elements providing the updated token information for the submitted token.
Parent Elements:
accountUpdater
Attributes:
None
Child Elements:
cnpToken, type, expDate, bin
4.274 newTokenInfo
The newTokenInfo element is an optional child of the accountUpdater element, which contains child
elements providing the updated information for the submitted account. The system returns this
information when processing a tokenized Direct Debit transactions and a change (NOC) is found against
the account.
Parent Elements:
accountUpdater
Attributes:
None
Child Elements:
accType, cnpToken, routingNum
4.275 nextRecycleTime
The nextRecycleTime element is an optional child of the recycleAdvice element, which specifies
the date and time (in GMT) recommended for the next recycle of the declined Authorization/Sale
transaction. The format of the element is YYYY-MM-DDTHH:MM:SSZ. For example,
2011-04-21T11:00:00Z.
NOTE: Per the ISO8601 standard, the Z appended to the end of the date/time stamp indicates the
time is GMT.
Parent Elements:
recycleAdvice
Attributes:
None
Child Elements:
None
4.276 numAdults
The numAdults element is an optional child of the lodgingInfo element and defines the total number
of adult guests staying (or planning to stay) at the facility (i.e., all booked rooms).
Type = Integer; totalDigits = 2
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
4.277 number
The number element defines the account number associated with the transaction or the new/old account
number associated with an update. This is a required child of the card element for card-not-present
transactions.
Type = String; minLength = 13; maxLength = 25
Parent Elements:
accountInformation, card, newCardInfo, originalCardInfo
Attributes:
None
Child Elements:
None
4.278 numberOfPayments
The numberOfPayments element is defines the number of payments in a recurring billing plan including
the initial payment. The timing of subsequent charges is defined by the planCode element. This element
is an optional child of both the subscription, and createPlan elements. When submitted as a child
of the subscription element, the value overrides the default value defined in the Plan.
NOTE: For an open-ended Plan, please omit the optional numberOfPayments element in
createPlan.
For an open-ended subscription, please omit the optional numberOfPayments element in
subscription and reference an open-ended Plan.
Parent Elements:
subscription, createPlan
Attributes:
None
Child Elements:
None
4.279 onlinePaymentCryptogram
Parent Elements:
applepayResponse
Attributes:
None
Child Elements:
None
4.280 orderDate
The orderDate element is an optional child of the enhancedData element, which specifies the date the
order was placed. If you do not know the order date, do not include this element.
Type = Date; Format = YYYY-MM-DD
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.281 orderId
The orderId element is a required child of several transaction types and defines a merchant-assigned
value representing the order in the merchant’s system.
Type = String; minLength = N/A; maxLength = 25
NOTE: If you are using the orderId element as the transaction signature for the Recycling Engine,
do not use the pipe character ("|") in the orderId. Use of the pipe character in this scenario will cause
recycling errors.
Parent Elements:
accountUpdate, accountUpdateResponse, activate, authorization, authorizationResponse,
balanceInquiry, credit, captureGivenAuth, deactivate, echeckCredit, echeckPreNoteCredit,
echeckPreNoteSale, echeckSale, echeckVerification, forceCapture, giftCardCredit, load,
registerTokenRequest, sale, saleResponse, unload, updateCardValidationNumOnToken
Attributes:
None
Child Elements:
None
4.282 orderSource
The orderSource element defines the order entry source for the type of transaction.
Type = Choice (enum); minLength = N/A; maxLength = N/A
Parent Elements:
activate, authorization, balanceInquiry, captureGivenAuth, credit, deactivate, echeckCredit,
echeckPreNoteCredit, echeckPreNoteSale, echeckSale, echeckVerification forceCapture, load, sale,
unload
Attributes:
None
Child Elements:
None
Enumerations:
NOTE: If you submit the wrong orderSource value, we return the response code 370 - Internal
System Error - Contact Vantiv.
eCheckSale transactions must use an orderSource of one of the following: telephone,
ecommerce, echeckppd, or recurringtel.
Enumeration Description
3dsAuthenticated Use this value only if you authenticated the cardholder via an approved 3DS
system such as Visa Verified By Visa, Mastercard SecureCode, or American
Express SafeKey.
NOTE: Worldpay must configure your Merchant Profile to process 3DS type
payments and accept this value.
3dsAttempted Use this value only if you attempted to authenticate the cardholder via an
approved 3DS system such as Visa Verified By Visa, Mastercard SecureCode, or
American Express SafeKey, but either the Issuer or cardholder is not participating
in the 3DS program. If this is a Mastercard or American Express transaction, you
must include the authenticationValue returned by the card brand.
NOTE: Worldpay must configure your Merchant Profile to process 3DS type
payments and accept this value.
echeckppd (Direct Debit only) Use this value for Direct Debit PPD transactions
(Prearranged Payment and Deposit Entries). This type of transaction occurs when
a merchants receives a written authorization, including a voided paper check,
from a consumer so that the merchant can debit the consumer account. These
transactions can be single entry or recurring debits to a consumer's account.
Enumeration Description
recurring The transaction is a recurring transaction. For Visa transactions, you can use this
value for all transactions in a recurring stream including the initial transaction.
recurringtel (Direct Debit only) The transaction is a recurring Direct Debit transaction initiated
via telephone
NOTE: Worldpay supports values of recurring and installment, when using the Prime service. If
you send any other orderSource, Worldpay does not attempt Prime Routing. Please speak to your
Implementation Consultant for additional information about enabling the Prime Routing service.
4.283 originalAccountInfo
Parent Elements:
accountUpdater
Attributes:
None
Child Elements:
accType, accNum, routingNum
4.284 origAccountNumber
The origAccountNumber element is an optional child of the queryTransaction element and defines
the account number of the credit/debit/gift card used in the original transaction.
NOTE: If you are performing a query for an Direct Debit transaction, do not use this element to
designate the checking/savings account number. You should use this element for Credit/Debit/Gift
card account numbers only.
Parent Elements:
queryTransaction
Attributes:
None
Child Elements:
None
4.285 origActionType
The origActionType element is a required child of the queryTransaction element and defines the
transaction type of original transaction.
Type = String (Enum); minLength = 1; maxLength = 2 (Valid values shown below)
Parent Elements:
queryTransaction
Attributes:
None
Child Elements:
None
Enumerations:
A authorization
AR activateReversal
D deposit or sale
G activate
I unload
J deactivate
L load
LR loadReversal
P authReversal
R credit
RR refundReversal
S echeckSale
T echeckCredit
UR unloadReversal
V void
W depositReversal
X echeckVoid
4.286 origCnpTxnId
The origCnpTxnId element is an optional child of the queryTransaction element and defines the
value of the cnpTxnId element assigned to the original transaction and returned in the response
message. You must include either the origId or the origCnpTxnId element or the system rejects the
query with a response Code of 154. Also, if you set the showStatusOnly element to Y, you must
include the origCnpTxnId element or the system declines the query with a response code of 155 -
origCnpTxnId is required when showStatusOnly is used.
Type = Long; minLength = N/A; maxLength = 19
Parent Elements:
queryTransaction
Attributes:
None
Child Elements:
None
4.287 origId
The origId element is an optional child of the queryTransaction element and defines the id
attribute used in the original transaction. You must include either the origId or the origCnpTxnId
element or the system rejects the query with a response Code of 154.
Type = String; minLength = N/A; maxLength = 25
Parent Elements:
queryTransaction
Attributes:
None
Child Elements:
None
4.288 originalAmount
The originalAmount element is a required child of several gift card reversal transactions, as well as
the giftCardCapture transaction, where it specifies the amount of the original gift card transaction. In
the case of the giftCardCapture transaction, this is the amount associated with the authorization.
In the cast of a reversal transaction, it is the amount from the transaction you want to reverse. For
example, for an loadReversal it specifies the amount from the load transaction.
Type = Integer; totalDigits = 6
Parent Elements:
activateReversal, deactivateReversal, depositReversal, giftCardAuthReversal,giftCardCapture,
loadReversal, refundReversal, unloadReversal
Attributes:
None
Child Elements:
None
4.289 originalCard
Parent Elements:
accountUpdateResponse
Attributes:
None
Child Elements:
type, number, expDate
4.290 originalCardInfo
The originalCardInfo element is an optional child of the accountUpdater element, which contains
child elements providing the original information for the submitted card.
Parent Elements:
accountUpdater
Attributes:
None
Child Elements:
type, number, expDate
4.291 originalCardTokenInfo
Parent Elements:
accountUpdater
Attributes:
None
Child Elements:
cnpToken, type, expDate, bin
4.292 originalNetworkTransactionId
NOTE: In the initial transaction of the recurring/installment stream, you must set the
processingType element to either initialRecurring or initialInstallment, as applicable.
As of April 2018, if you fail to include this element/value for a recurring/installment Visa or Discover
transaction, the card network may reject the transaction.
Parent Elements:
authorization, captureGivenAuth, sale
Attributes:
None
Child Elements:
None
4.293 originalRefCode
The originalRefCode element is a required child of several gift card transactions, where it specifies
the value returned in the refCode element of the associated giftCardResponse element of the
response messages.
Type = String; minLength = N/A; maxLength = 6
Parent Elements:
activateReversal, deactivateReversal, depositReversal, giftCardAuthReversal, giftCardCapture,
loadReversal, refundReversal, unloadReversal,
Attributes:
None
Child Elements:
None
4.294 originalSequenceNumber
The originalSequenceNumber element is a required child of several gift card reversal transactions,
where it specifies the value returned in the sequenceNumber element of the associated
giftCardResponse element of the response messages.
Type = String; totalDigits = 6; Allowed Characters: 0 - 9
Parent Elements:
activateReversal, deactivateReversal, depositReversal, giftCardAuthReversal, loadReversal,
refundReversal, unloadReversal,
Attributes:
None
Child Elements:
None
4.295 originalSystemTraceId
The originalSystemTraceId element is a required child of several gift card reversal transactions,
where it specifies the value returned in the systemTraceId element of the associated
giftCardResponse element from the response messages of the transaction you wish to reverse. For
example, for a loadReversal transaction, you use the value returned in the loadResponse message.
Type = Integer; totalDigits = 6
Parent Elements:
activateReversal, deactivateReversal, depositReversal, giftCardAuthReversal, loadReversal,
refundReversal, unloadReversal
Attributes:
None
Child Elements:
None
4.296 originalToken
Parent Elements:
accountUpdateResponse
Attributes:
None
Child Elements:
cnpToken or tokenUrl, type, number, expDate, bin
Example: originalTokenStructure
<originalToken>
<cnpToken>Old Token Number</cnpToken>
<expDate>Old Expiration Date</expDate>
<type>Card Type</type>
<bin>Card BIN</bin>
</originalToken>
4.297 originalTokenInfo
Parent Elements:
accountUpdater
Attributes:
None
Child Elements:
accType, cnpToken, routingNum
4.298 originalTransactionAmount
NOTE: Currently, Discover does not require the inclusion of this element.
NOTE: In the initial transaction of the recurring/installment stream, you must set the
processingType element to either initialRecurring or initialInstallment, as applicable.
Parent Elements:
authorization, captureGivenAuth, sale
Attributes:
None
Child Elements:
None
4.299 originalTxnTime
The originalTxnTime element is a required child of several gift card transactions, which specifies the
date and time the original transaction was processed by Worldpay. The system returns this value in the
txnTime child of the giftCardResponse element. The format of the element is YYYY-MM-DDTHH:MM:SS.
For example, 2016-11-21T11:00:00.
Type = dateTime; minLength = N/A; maxLength = 20
Parent Elements:
activateReversal, deactivateReversal, depositReversal, giftCardAuthReversal, giftCardCapture,
loadReversal, refundReversal, unloadReversal
Attributes:
None
Child Elements:
None
4.300 password
The password element is a required child of the authentication element. It is used in combination
with the user element to authenticate that the message is from a valid source.
Type = String; minLength = N/A; maxLength = 20
Parent Elements:
authentication
Attributes:
None
Child Elements:
None
4.301 payerId
The payerId element is a required child of the paypal element for all cases except for an Online Credit
transaction, where you can choose between this element and the payerEmail element. This element
specifies the Payer Id returned from PayPal.
NOTE: The value of the <payerId> element must match the PAYERID value returned by the
GetExpressCheckout call operation to PayPal.
Parent Elements:
paypal
Attributes:
None
Child Elements:
None
4.302 payFacCredit
The payFacCredit element is the parent element for the transaction type that a Payment Facilitator
uses to distribute funds to themselves (i.e., from the PayFac Settlement Account to the PayFac Operating
Account). If you use V11.3 or above, you can submit this transaction type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
reportGroup String Yes For PayFacs, this attribute does not segregate
transactions in iQ. This field does appear in various
SSR reports.
minLength = 1 maxLength = 25
Child Elements:
Required: amount, fundingSubmerchantId, fundsTransferId
4.303 payFacCreditResponse
The payFacCreditResponse element is the parent element for information returned to you in response
to a payFacCredit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payFacCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.304 payFacDebit
The payFacDebit element is the parent element for the transaction type that a Payment Facilitator uses
to move funds from the PayFac Operating Account back to the PayFac Settlement Account. If you use
V11.3 or above, you can submit this transaction type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
reportGroup String Yes For PayFacs, this attribute does not segregate
transactions in iQ. This field does appear in various
SSR reports.
minLength = 1 maxLength = 25
Child Elements:
Required: amount, fundingSubmerchantId, fundsTransferId
4.305 payFacDebitResponse
The payFacDebitResponse element is the parent element for information returned to you in response
to a payFacDebit transaction.
Parent Elements:
batchRequest, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payFacDebit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.306 paymentAccountReferenceNumber
Parent Elements:
authorizationResponse, saleResponse
Attributes:
None
Child Elements:
None
4.307 paymentDataType
The paymentDataType element is an optional child of the applepayResponse element and specifies
data type of the payment data associated with an Apple Pay transaction.
Type = String; minLength = N/A; maxLength = 20
Parent Elements:
applepayResponse
Attributes:
None
Child Elements:
None
4.308 paymentPurpose
NOTE: Although included in the schema, this API no longer supports the iDeal alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
Parent Elements:
idealResponse, giropayResponse
Attributes:
None
Child Elements:
None
4.309 payoutOrgCredit
The payoutOrgCredit element is the parent element for the transaction type that a direct merchant
uses to distribute funds to themselves (i.e., from the Settlement Account to the Operating Account). You
can submit this transaction type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
Child Elements:
Required: amount, fundingCustomerId, fundsTransferId
4.310 payoutOrgCerditResponse
The payoutOrgCreditResponse element is the parent element for information returned to you in
response to a payoutOrgCredit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
payoutOrgCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payoutOrgCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
payoutOrgCredit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.311 payoutOrgDebit
The payoutOrgDebit element is the parent element for the transaction type that a direct merchant uses
to move funds from the Operating Account to the Settlement Account. You can submit this transaction
type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
Child Elements:
Required: amount, fundingCustomerId, fundsTransferId
4.312 payoutOrgDebitResponse
The payoutOrgDebitResponse element is the parent element for information returned to you in
response to a payoutOrgDebit transaction.
Parent Elements:
batchRequest, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
payoutOrgDebit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payoutOrgDebit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
payoutOrgDebit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.313 paypage
The paypage element defines eProtect account information. It replaces the card or token elements in
transactions using the eProtect feature of the Vault solution. When you submit the paypage element in a
request, response messages will include token information.
Parent Elements:
authorization, captureGivenAuth, credit, forceCapture, sale, updateSubscription, fastAccessFunding
Attributes:
None
Child Elements:
Required: paypageRegistrationId
Optional: expDate, cardValidationNum, type
NOTE: Although the schema defines the expDate element as an optional child of the paypage
element, you must submit a value for card-not-present transactions.
4.314 paypageRegistrationId
The paypageRegistrationId element is a required child of the paypage element, and specifies the
Registration ID generated by eProtect. You can also use it in a Register Token Request to obtain a token
based on eProtect activity prior to submitting an Authorization or Sale transaction.
Type = String; minLength = N/A; maxLength = 512
Parent Elements:
paypage, registerTokenRequest
Attributes:
None
Child Elements:
None
4.315 paypal
The paypal element defines paypal account information. It replaces the card or token elements in
transactions using PayPal as a payment method.
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
Required: payerId, transactionId
Optional: token
4.316 payPalNotes
The payPalNotes element is an optional child of multiple transaction types. You use this field to record
additional information about the PayPal transaction.
Type = String; Type = String; minLength = N/A; maxLength = 255
Parent Elements:
authReversal, capture, credit, sale
Attributes:
None
Child Elements:
None
4.317 payPalOrderComplete
The payPalOrderComplete element is an optional child of both the capture and sale elements, but is
required to close a PayPal order. Set the value to true to close the order, when you have fulfilled the
order and do not need to send any further auths or deposits against it. Set the value to false to keep the
order open for additional auths or deposits.
Type = Boolean; Valid values = true or false
Parent Elements:
capture, sale
Attributes:
None
Child Elements:
None
4.318 phone
The phone element has two different uses in cnpAPI depending upon the parent element. When used as
a child of either the billToAddress or shipToAddress elements, it defines the customers phone
number. When used as a child of the customBilling element, it defines the phone number of the
merchant.
The phone element defines the customer’s phone number in both the billToAddress and
shipToAddress elements.
NOTE: When submitting an eCheck Verification, the string can only contain numbers (0 through 9).
Letters and special characters are not allowed.
Parent Elements:
billToAddress, shipFromPostalCode
Attributes:
None
Child Elements:
None
The phone element defines the merchant’s phone number. The string can only contain numbers (0
through 9). Letters and special characters are not allowed.
Type = String; minLength = N/A; maxLength = 13
Parent Elements:
customBilling
Attributes:
None
Child Elements: None
4.319 physicalCheckCredit
The physicalCheckCredit element is the parent element for the transaction type that a Payment
Facilitator uses to distribute funds to a third party who issues physical checks on the Payment Facilitators
behalf. (i.e., from the PayFac Settlement Account to the Third Party Account). If you use V11.3 or above,
you can submit this transaction type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
reportGroup String Yes For PayFacs, this attribute does not segregate
transactions in iQ. This field does appear in various
SSR reports.
minLength = 1 maxLength = 25
Child Elements:
Required: amount, fundsTransferId, and choice of fundingSubmerchantId or fundingCustomerId
4.320 physicalCheckCreditResponse
The physicalCheckCreditResponse element is the parent element for information returned to you in
response to a physicalCheckCredit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
physicalCheckCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
physicalCheckCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
physicalCheckCredit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.321 physicalCheckDebit
The physicalCheckDebit element is the parent element for the transaction type that a Payment
Facilitator uses to move funds from a third party who issues physical checks on the Payment Facilitator’s
behalf. (i.e., from the Third Party Account to the PayFac Settlement Account). If you use V11.3 or above,
you can submit this transaction type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
reportGroup String Yes For PayFacs, this attribute does not segregate
transactions in iQ. This field does appear in various
SSR reports.
minLength = 1 maxLength = 25
Child Elements:
Required: amount, fundsTransferId, and choice of fundingSubmerchantId or fundingCustomerId
4.322 physicalCheckDebitResponse
The physicalCheckDebitResponse element is the parent element for information returned to you in
response to a physicalCheckDebit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
physicalCheckDebit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
physicalCheckDebit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
physicalCheckDebit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.323 pin
The pin element is an optional child of the several transaction types, as well as the card element. It only
applies to transactions involving closed-loop Gift Cards and defines the pin number associated with the
Gift Card.
Type = String; minLength = 4; maxLength = 12
Parent Elements:
capture, card, credit, virtualGiftCardResponse
Attributes:
None
Child Elements:
None
4.324 pinlessDebitRequest
The pinlessDebitRequest element is an optional child of the sale transaction and contains child
elements used to the control the routing behavior of Prime PINless Routing. The use of this element
applies only to merchants using the Prime - PINless Debit Routing service.
Parent Elements:
sale, authorization
NOTE: This element is not yet available for use in an Authorization transaction. Please consult your
Worldpay Relationship Manager for additional information.
Attributes:
None
Child Elements:
routingPreference, preferredDebitNetworks
4.325 pinlessDebitResponse
The pinlessDebitResponse element contains a child element used to specify the Debit Network used
for the transaction. This element appears only if you use the Worldpay Prime PINless Debit service and
Worldpay routed the transaction through a Debit Network for approval.
Parent Elements:
authorizationResponse, saleResponse
Attributes:
None
Child Elements:
networkName
4.326 planCode
The planCode element is the identifier of a defined recurring payment plan. You use it to specify the
payment plan when submitting a recurring transaction to the Recurring Engine. For example, there could
be a define plan called Monthly that instructs the Recurring Engine to bill the consumer the same amount
every month for the number of months defined by the numberOfPayments element. This element is a
required child of the subscription element.
Type = String; minLength = N/A; maxLength = 25
Parent Elements:
subscription, updateSubscription, createPlan, updatePlan, updatePlanResponse
Attributes:
None
Child Elements:
None
4.327 pos
The pos element contains child elements used to specify information required when submitting
authorization, captureGivenAuth, credit, forceCapture, and sale transactions from point of
sale terminals.
Parent Elements:
authorization, captureGivenAuth, credit, forceCapture, sale
Attributes:
None
Child Elements:
capability, entryMode, cardholderId, terminalId, catLevel
NOTE: For CAT (Cardholder Activated Terminal) transactions, the capability element must be
set to magstripe, the cardholderId element must be set to nopin, and the catLevel element
must be set to self service.
4.328 postDate
The postDate element defines the date the transaction was posted. The format is YYYY-MM-DD. It
occurs only in response to Online transactions.
NOTE: Although the schema defines this element as optional in most response messages, the
system returns it in the response for all Online transactions.
Parent Elements:
activateResponse, activateReversalResponse, authorizationResponse, authReversalResponse,
captureResponse, captureGivenAuthResponse, creditResponse, customerCreditResponse,
customerDebitResponse, deactivateResponse, deactivateReversalResponse, depositReversalResponse,
echeckCreditResponse, echeckSalesResponse, echeckVerificationResponse, forceCaptureResponse,
loadResponse, loadReversalResponse, refundReversalResponse, saleResponse, unloadResponse,
unloadReversalResponse, voidResponse, fastAccessFundingResponse, payFacCreditResponse,
payFacDebitResponse, physicalCheckCreditResponse, physicalCheckDebitResponse,
reserveCreditResponse, reserveDebitResponse, submerchantCreditResponse,
submerchantDebitResponse, vendorCreditResponse, vendorDebitResponse
Attributes:
None
Child Elements:
None
4.329 postDay
NOTE: This is also the same date that the system created the Account Updater acknowledgment
file.
Parent Elements:
accountUpdateFileRequestData
Attributes:
None
Child Elements:
None
4.330 preferredDebitNetworks
Attributes:
None
Child Elements:
debitNetworkName
4.331 preferredLanguage
NOTE: Although included in the schema, this API no longer supports the SEPA, iDEAL, Giropay,
and SOFORT alternate payment methods. Please consult your Worldpay Relationship Manager for
additional information about alternate payment method support.
The preferredLanguage element is an optional child of the sepaDirectDebit element. This defines
the language in which the merchant prefers the mandate to appear. While the merchant could be able to
select any language, the mandate may not be available in the selected language. If the selected language
is not available, the mandate appears in English. If you do not include this element, the preferred
language defaults to the language indicated by the country of the IBAN, unless it is not available, in which
case the language defaults to English.
Type = String (Enum); minLength = N/A; maxLength = 3
NOTE: The enumerations for this element are listed under <countryTypeEnum> in the cnpAPI
Common XSD. The country names corresponding to the abbreviations can be found in the ISO
3166-1 standard.
All Country Codes are 2-character except for the United States, which accepts both US and USA.
Parent Elements:
sepaDirectDebit, ideal, giropay
Attributes:
None
Child Elements:
None
4.332 prepaid
The prepaid element is an optional child of the filtering element. How you choose to implement the
Prepaid Filtering feature determines the use of the prepaid element. If your configuration filters all
prepaid card transactions, you can disable the feature on selected transactions by including the prepaid
element with a setting of false. If your configuration filters prepaid card transactions on a per transaction
basis, you enable the filtering on a selected transaction by including the prepaid element with a setting
of true.
Type = Boolean; Valid Values = true or false
Parent Elements:
filtering
Attributes:
None
Child Elements:
None
4.333 prepaidCardType
Parent Elements:
fundingSource
Attributes:
None
Child Elements:
None
4.334 processingInstructions
The processingInstructions element contains a child element that allows you to specify whether or
not the system performs velocity checking on the transaction.
Attributes:
None
Child Elements:
bypassVelocityCheck
NOTE: Please consult your Relationship Manager for additional information concerning Velocity
Checking.
4.335 processingType
The processingType element is an optional child of several transaction types. You use this element to
define a Visa transaction used to fund a host-based prepaid product, a brokerage account, or an escrow
account (accountFunding enum value). You also use it to define the initial transaction in a recurring or
installment stream, or the initial, merchant initiated, or cardholder initiated Card on file transaction. For
these cases, you must store the value of the networkTransactionId element returned in the response
message. You use that value to populate the originalNetworkTransactionId element in
subsequent recurring/installment or CoF transactions. This allows the networks to tie subsequent
transactions back to the original approval.
Type = String (Enum); minLength = N/A; maxLength = N/A
Parent Elements:
authorization, captureGivenAuth, forceCapture, sale
Attributes:
None
Child Elements:
None
Enumerations:
Enum Description
accountFunding Use this value to define a Visa transaction is intended to fund a host-based
prepaid product, a brokerage account, or an escrow account.
initialRecurring Use this value to specify the first in a series of recurring payment
transactions.
initialInstallment Use this value to specify the first in a series of installment payment
transactions.
initialCOF Use this value to specify an initial Card on File transaction.
merchantInitiatedCOF Use this value to specify a merchant initiated Card on File transaction after
the initial CoF transaction.
cardholderInitiatedCOF Use this value to specify a cardholder initiated Card on File transaction after
the initial CoF transaction.
4.336 productCode
The productCode element is an optional child of the lineItemData element, which specifies the
product code of the purchased item. This value is a merchant defined description code of the
product/service. This could be an inventory number, UPC, catalog number, or some other value that the
merchant uses to define the specific product. Although an optional element, it is required by Visa and
Mastercard when specifying line item data.
Type = String; minLength = 1; maxLength = 12
Parent Elements:
lineItemData
Attributes:
None
Child Elements:
None
4.337 programCode
The programCode element is an optional child of the lodgingInfo element and defines whether the
associated charges are for LODGING, NOSHOW or ADVANCEDDEPOSIT.
Type = String (Enum); minLength = N/A; maxLength = N/A
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
Enumerations:
Enum Description
NOSHOW Submitted charges are for the failure of the guest(s) to check in for reserved a room.
ADVANCED Submitted charges are for an Advanced Deposit to reserve one or more rooms.
DEPOSIT
4.338 propertyLocalPhone
The propertyLocalPhone element is an optional child of the lodgingInfo element and defines local
phone number of the facility. For a Mastercard transaction, you must include a value for this element to
achieve better interchange rates.
Type = String; minLength = N/A; maxLength = 17
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
4.339 publicKeyHash
The publicKeyHash element is a required child of the header element and provides the BASE64
Encoded string that is a hash of the merchant’s certificate public key bytes associated with the Apple Pay
transaction.
Type = Base 64 Encoded String; minLength = N/A; maxLength = 200
Parent Elements:
header
Attributes:
None
Child Elements:
None
4.340 quantity
The quantity element is an optional child of the lineItemData element, which specifies the number
of items purchased. Although an optional element, it is required by Visa and Mastercard when specifying
line item data. The value must be greater than zero, but no more than 12 digits not including the decimal
point.
NOTE: If you accidentally omit the quantity element, our system will submit the transaction using
a default value of 1.
Parent Elements:
lineItemData
Attributes:
None
Child Elements:
None
4.341 queryTransaction
The queryTransaction element is the parent element for Query transactions. You use this transaction
type to determine the status of a previously submitted transaction. You can submit this element only as an
Online transaction.
Parent Elements:
cnpOnlineRequest
Attributes:
Child Elements:
Optional: origId, origActionType, origCnpTxnId, showStatusOnly
4.342 queryTransactionResponse
Parent Elements:
cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
capture transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
capture transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
capture transaction.
minLength = 1 maxLength = 25
Child Elements:
All Required: response, responseTime, message, matchCount, results_Max10
Optional: location
4.343 queryTransactionUnavailableResponse
Parent Elements:
results_Max10
Attributes:
None
Child Elements:
All Required: cnpTxnId, response, message
Optional: location
4.344 recurringRequest
The recurringRequest element is the parent of several child element that define the number of
payments and plan type of recurring transaction to be handled by the Recurring Engine. It is an optional
child of the Authorization and Sale transactions.
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
subscription
4.345 recurringResponse
The recuringResponse element is the parent element for the subscriptionId, responseCode,
responseMessage, and recurringTxnId elements associated with a requested recurring payment. The
system returns this element only when the sale transaction includes a recurringRequest element.
Parent Elements:
authorizationResponse, saleResponse
Attributes:
None
Child Elements:
subscriptionId, responseCode, responseMessage, recurringTxnId
4.346 recurringTxnId
Parent Elements:
recurringResponse, cnpInternalRecurringRequest
NOTE: Although the element is an optional child of the recurringResponse element, it will never
be returned in the response to a merchant initiated transaction.
Attributes:
None
Child Elements:
None
4.347 recycleAdvice
The recyclingAdvice element contains a two child elements that either specifies the date and time (in
GMT) recommended for the next recycle of the declined Authorization/Sale transaction or indicates that
there is no additional recycling advice. The two children are mutually exclusive.
Attributes:
None
Child Elements:
nextRecycleTime, recycleAdviceEnd
4.348 recycleAdviceEnd
The recycleAdviceEnd element is an optional child of the recycleAdvice element and signifies that
no further recycling recommendations are available.
Type = String; minLength = N/A; maxLength = 20
Parent Elements:
recycleAdvice
Attributes:
None
Child Elements:
None
4.349 recycleBy
The recycleBy element is an optional child of the recyclingRequest element and determines the
use of the Recycling Engine. The default setting is Cnp, so omitting this element is the same as
submitting a value of Cnp.
NOTE: Also, if your Merchant Profile includes a preset percentage split of transactions between
merchant and Worldpay controlled, then settings of Merchant and Cnp are ignored; you can still
use a setting of None to exclude the transaction.
Also, although the default setting is normally Cnp, it can be altered in your merchant profile to a
setting of Merchant.
Parent Elements:
recyclingRequest
Attributes:
None
Child Elements:
None
Enumerations:
Enum Description
Merchant This setting indicates that the merchant controls the recycling of the transaction. For A/B
comparison testing, transactions using this setting will be counted as merchant controlled.
After setting this value in the initial transaction, subsequent transactions should have
same value. Any different value will be ignored.
Cnp This setting indicates either that the Recycling Engine controls the recycling of the
transaction. For A/B comparison testing, transactions using this setting will be counted as
Worldpay controlled.
After setting this value in the initial transaction, subsequent transactions should have
same value. Any different value will be ignored.
None For A/B comparison testing, transactions using this setting are excluded from all counts.
These transactions will not be counted as either merchant or Worldpay controlled.
4.350 recycleEngineActive
The recycleEngineActive element is an optional child of the recycling element that indicates
whether or not the engine is recycling the declined transaction. This element is returned only if you are
using the Recycling Engine.
Type = Boolean; Valid values = true or false
Parent Elements:
recyclingResponse
Attributes:
None
Child Elements:
None
4.351 recycleId
The recycleId element is an optional child of the recyclingRequest element. Merchants can use
this identifier as part of the transaction signature used to track the recycling of a transaction. This element
is an alternative to using the orderId element as part of the transaction signature.
Type = String; minLength = N/A; maxLength = 25
Parent Elements:
recyclingRequest
Attributes:
None
Child Elements:
None
4.352 recyclingResponse
The recyclingResponse element has two uses in the cnpAPI depending upon the parent. When used
as a child of either the authorizationResponse or saleResponse elements, the recycling
element contains a child element that specifies whether or not the engine is recycling the declined
transaction.
When used as a child of the voidResponse, the recyclingResponse element contains a child
providing the Transaction Id of the Credit transaction issued. This occurs only if a Void transaction is used
to halt the recycling of a transaction by the recycling engine and the transaction has already been
approved and captured (see Using Void to Halt Recycling Engine on page 78).
Parent Elements:
authorizationResponse, saleResponse
Attributes:
None
Child Elements:
recycleAdvice, recycleEngineActive
Parent Elements:
voidResponse
Attributes:
None
Child Elements:
creditCnpTxnId
4.353 recyclingRequest
The recyclingrequest element is an optional child of the authorization and sale transactions,
which contains a child element that specifies who is responsible for recycling the transaction. It also
contains an optional element for an identifier assigned by the merchant to track the recycling of the
transaction. This element only applies to merchants using the Recycling Engine.
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
recycleBy, recycleId
4.354 redirectToken
NOTE: Although included in the schema, this API no longer supports the SEPA, iDEAL, and
Giropay alternate payment methods. Please consult your Worldpay Relationship Manager for
additional information about SEPA support.
Parent Elements:
sepaDirectDebitResponse, idealResponse, giropayResponse
Attributes:
None
Child Elements:
None
4.355 redirectUrl
NOTE: Although included in the schema, this API no longer supports the SEPA, iDEAL, and
Giropay alternate payment methods. Please consult your Worldpay Relationship Manager for
additional information about SEPA support.
The redirectUrl element is an optional child of the sepaDirectDebit element and defines the URL
that hosts the mandate, when Worldpay supplies the mandate. If you supply the mandate
(<mandateProvider>Merchant</mandateProvider>), this element will not appear in the response.
Type = String; minLength = N/A; maxLength = 256
Parent Elements:
sepaDirectDebitResponse, idealResponse, giropayResponse
Attributes:
None
Child Elements:
None
4.356 refCode
The refCode element is an optional child of the giftCardResponse element, where it specifies the
authorization code of the gift card transaction.
Type = String; minLength = N/A; maxLength = 6
Parent Elements:
giftCardResponse
Attributes:
None
Child Elements:
None
4.357 refundReversal
The refundReversal element is the parent element for a Gift Card specific transaction type that
reverses the a refund associated with a Gift Card.
Parent Elements:
cnpOnlineRequest
Attributes:
4.358 refundReversalResponse
The refundReversalResponse element is the parent element for information returned to you in
response to an refundReversal transaction.
Parent Elements:
cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
Refund Reversal transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Refund Reversal transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Refund Reversal transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message, giftCardResponse
Optional: postDate, location
4.359 registerTokenRequest
The registerTokenRequest element is the parent element for the Register Token transaction. You
use this transaction type when you wish to submit an account number for tokenization, but there is no
associated payment transaction.
You can use this element in either Online or Batch transactions.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
reportGroup String Yes Required attribute defining the merchant sub-group in the
user interface where this transaction displays. Also see
Coding for Report Groups on page 10 for information.
minLength = 1 maxLength = 25
Child Elements:
Required: either accountNumber, echeckForToken, mpos, paypageRegistrationId,
encryptedAccountNumber, or applepay
Optional: orderId, cardValidationNum, encryptedCardValidationNum, encryptionKeyId
4.360 registerTokenResponse
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
registerTokenRequest transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
registerTokenRequest transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
registerTokenRequest transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, message, responseTime
Optional: eCheckAccountSuffix, cnpToken, bin, type, applepayResponse, androidpayResponse,
accountRangeId, location
4.361 reloadable
The reloadable element is an optional child of the fundingSource element and defines whether the
prepaid card is reloadable.
NOTE: The system never returns this element for American Express card transactions.
Parent Elements:
fundingSource
Attributes:
None
Child Elements:
None
4.362 reserveCredit
The reserveCredit element is the parent element for the transaction type that a Payment Facilitator
uses to move funds from the PayFac Settlement Account to the PayFac Reserve Account. If you use
V11.3 or above, you can submit this transaction type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
reportGroup String Yes For PayFacs, this attribute does not segregate
transactions in iQ. This field does appear in various
SSR reports.
minLength = 1 maxLength = 25
Child Elements:
Required: amount, fundsTransferId, and choice of fundingSubmerchantId or fundingCustomerId
4.363 reserveCreditResponse
The reserveCreditResponse element is the parent element for information returned to you in
response to a reserveCredit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payFacCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
reserveCredit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.364 reserveDebit
The reserveDebit element is the parent element for the transaction type that a Payment Facilitator
uses to move funds from the PayFac Reserve Account to the PayFac Settlement Account. If you use
V11.3 or above, you can submit this transaction type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
reportGroup String Yes For PayFacs, this attribute does not segregate
transactions in iQ. This field does appear in various
SSR reports.
minLength = 1 maxLength = 25
Child Elements:
Required: amount, fundsTransferId, and choice of fundingSubmerchantId or fundingCustomerId
4.365 reserveDebitResponse
The reserveDebitResponse element is the parent element for information returned to you in response
to a reserveDebit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payFacCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
reserveDebit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.366 residenceStatus
The residenceStatus element is an optional child of the customerInfo element and defines the type
of domicile in which the customer resides. It is used in combination with several other elements to provide
required information for some PayPal Credit transactions.
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
None
4.367 response
The response element contains a three digit numeric code which specifies either that the transaction is
approved (000 code) or declined. The message element provides a brief definition of the response code.
For a complete list of response codes and associated messages, please refer to Payment Transaction
Response Codes on page 832.
Type = String; minLength = N/A; maxLength = 3
Parent Elements:
activateResponse, activateReversalResponse, authorizationResponse, authReversalResponse,
captureResponse, captureGivenAuthResponse, creditResponse, customerCreditResponse,
customerDebitResponse, deactivateResponse, deactivateReversalResponse, depositReversalResponse,
echeckCreditResponse, echeckPreNoteCreditResponse, echeckPreNoteSaleResponse,
echeckRedepositResponse, echeckSalesResponse, echeckVerificationResponse, echeckVoidResponse,
forceCaptureResponse, fraudCheckResponse, loadResponse, loadReversalResponse,
queryTransactionResponse, queryTransactionUnavailableResponse, registerTokenResponse,
refundReversalResponse, saleResponse, voidResponse, cancelSubscriptionResponse,
unloadResponse, updatePlanResponse, updateSubscriptionResponse, unloadReversalResponse,
payFacCreditResponse, payFacDebitResponse, physicalCheckCreditResponse,
physicalCheckDebitResponse, submerchantCreditResponse, reserveCreditResponse,
reserveDebitResponse, submerchantDebitResponse, vendorCreditResponse, vendorDebitResponse
Attributes:
None
Child Elements:
None
4.368 responseCode
The responseCode element contains a three digit numeric code which along with the
responseMessage element specifies either acceptance by the Recurring Engine or the reason the
recurring Engine was unable to schedule subsequent payments.
Type = String; minLength = N/A; maxLength = 3
Parent Elements:
recurringResponse
Attributes:
None
Child Elements:
None
4.369 responseMessage
The responseMessage element contains a brief definition of the responseCode returned for the
recurring transaction.
Type = String; minLength = N/A; maxLength = 512
Parent Elements:
recurringResponse
Attributes:
None
Child Elements:
None
4.370 responseTime
The responseTime element provides a date/time stamp of the response. The format of the element is
YYYY-MM-DDTHH:MM:SS. For example, 2009-12-21T11:37:04.
Type = dateTime; minLength = N/A; maxLength = 19
Parent Elements:
activateResponse, activateReversalResponse, authorizationResponse, authReversalResponse,
captureResponse, captureGivenAuthResponse, creditResponse, customerCreditResponse,
customerDebitResponse, deactivateResponse, deactivateReversalResponse,
depositReversalResponse,echeckCreditResponse, echeckPreNoteCreditResponse,
echeckPreNoteSaleResponse, echeckRedepositResponse, echeckSalesResponse,
echeckVerificationResponse, echeckVoidResponse, forceCaptureResponse, fraudCheckResponse,
loadResponse, loadReversalResponse, queryTransactionResponse, registerTokenResponse,
refundReversalResponse, saleResponse, voidResponse, cancelSubscriptionResponse,
unloadResponse, unloadReversalResponse, updatePlanResponse, updateSubscriptionResponse,
payFacCreditResponse, payFacDebitResponse, physicalCheckCreditResponse,
physicalCheckDebitResponse, reserveCreditResponse, reserveDebitResponse,
submerchantCreditResponse, submerchantDebitResponse, vendorCreditResponse,
vendorDebitResponse
Attributes:
None
Child Elements:
None
4.371 results_Max10
Parent Elements:
queryTransactionResponse
Attributes:
None
Child Elements:
All Optional: activateResponse, activateReversalResponse, authorizationResponse, captureResponse,
creditResponse, deactivateResponse, depositReversalResponse, echeckCreditResponse,
echeckSalesResponse, loadResponse, loadReversalResponse, refundReversalResponse,
saleResponse, unloadResponse, unloadReversalResponse, voidResponse,
queryTransactionUnavailableResponse
<availableBalance>125</availableBalance>
</giftCardResponse>
</authorizationResponse>
</results_max10>
<queryTransactionUnavailableResponse>
<cnpTxnId>82827170811986124</cnpTxnId>
<response>152</response>
<message>Original transaction found but response not yet available</message>
</queryTransactionUnavailableResponse>
</results_max10>
4.372 RFRRequest
The RFRRequest element is an optional child of a cnpRequest element. You can use this type of
request in one of two ways.
• To request a session response from a previously processed cnpRequest, include the
cnpSessionId child. The resulting RFR response will duplicate the original session response
(Authorization, Credit, Capture, or Sale response) associated with the cnpSessionId. The session
ID returned in the response will be the session ID of the original session.
• To request an Account Updater completion response file, include the
accountUpdateFileRequestData element. If the completion file is ready, it is returned. If the
completion file is not ready, you receive an RFRResponse message with the response attribute set to
1 and the message attribute reading, “The account Update file is not ready yet. Please try again
later.”
Parent Elements:
cnpRequest
Attributes:
None
Child Elements: (Choice of)
cnpSessionId or accountUpdateFileRequestData
4.373 RFRResponse
Parent Elements:
cnpResponse
Attributes:
response String Yes The RFR Response Code indicating the result of the
RFR request.
minLength = N/A maxLength = 3
message String Yes A brief definition of the response code returned for this
transaction.
minLength = N/A maxLength = 512
Child Elements:
None
4.374 roomRate
The roomRate element is an optional child of the lodgingInfo element and defines per day room
charges exclusive of any taxes and fees. Supply the value in cents without a decimal point. For example,
a value of 1995 signifies $19.95.
Type = Integer; totalDigits = 12
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
4.375 roomTax
The roomTax element is an optional child of the lodgingInfo element and defines per day room tax.
Supply the value in cents without a decimal point. For example, a value of 1995 signifies $19.95.
Type = Integer; totalDigits = 12
Parent Elements:
lodgingInfo
Attributes:
None
Child Elements:
None
4.376 routingNum
Parent Elements:
echeck, newAccountInfo, originalAccountInfo, newTokenInfo, originalTokenInfo, accountInfo
Attributes:
None
Child Elements:
None
NOTE: If you submit an invalid routing number, we return the XML Response Code 900 - Invalid
Bank Routing Number.
4.377 routingPreference
Parent Elements:
pinlessDebitRequest
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
4.378 RxAmount
The RxAmount element is an optional child of the healthcareAmounts element and defines the
healthcare amount used for the purchased medications. The decimal is implied. Example: 500 = $5.00.
Type = Integer; totalDigits = 8
Parent Elements:
Optional: healthcareAmounts
Attributes:
None
Child Elements:
None
4.379 sale
The sale element is the parent element for all Sale transactions. A Sale transaction is a combination
Authorization and Capture transaction. You can use this element in either Online or Batch transactions.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
Child Elements:
Required: orderId, amount, orderSource, (choice of) card, paypal, paypage, mpos, token, applepay, ideal,
sepaDirectDebit, giropay, or sofort
NOTE: The cardholderAuthentication child element is required only for 3-D Secure transactions.
The fraudCheck element has been deprecated; use the cardholderAuthentication element
instead.
4.380 saleResponse
The saleResponse element is the parent element for information returned in response to a Sale
transaction. It can be a child of either a cnpOnlineResponse element or a batchResponse element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
Attribute
Name Type Required? Description
id String Yes The response returns the same value submitted in the Sale
transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the Sale
transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the Sale
transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, orderId, response, responseTime, message
Optional: postDate, cardProductId (see Note below), authCode, authorizationResponseSubCode (see
Note below), approvedAmount, accountInformation, fraudResult, tokenResponse,
enhancedAuthResponse, accountUpdater, recyclingResponse, recurringResponse, giftCardResponse,
applepayResponse, cardSuffix, androidpayResponse, networkTransactionId,
paymentAccountReferenceNumber, location
NOTE: The postDate child element is returned only in responses to Online transactions.
The cardProductId element returns a raw code referencing the card type. Please consult your
Relationship Manager for additional information.
The authorizationResponseSubCode element is not used at this time.
4.381 salesTax
The salesTax element defines the amount of sales tax included in the transaction amount. Although the
schema defines it as an optional child of the enhancedData element, it is required to receive the best
interchange rate for Level II and Level III corporate purchases. The decimal is implied. Example: 500 =
$5.00.
NOTE: For a non-taxable transaction, use 0 as the value. In this case you must also set the
taxExempt element to true.
If you provide detailTax data, the salesTax should be the sum of the detailTax.
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.382 secondaryAmount
The secondaryAmount element defines the principal portion of the total amount when a convenience
fee applied to the transaction by the merchant. for example, if the total charge is $105, with the principal
amount being $100 and the convenience fee being $5, you must use $100 as the value for the
secondaryAmount element. Supply the value in cents without a decimal point. For example, a value of
400 signifies $4.00.
NOTE: Worldpay supports convenience fees for Mastercard and Visa card brands only. Attempting
to use this element in a Discover or American Express transaction results in a decline with the
response code of 381 - This method of payment does not support secondary amount.
Parent Elements:
authorization, credit, captureGivenAuth, echeckCredit, echeckSale, forceCapture, sale
Attributes:
None
Child Elements:
None
4.383 sepaDirectDebit
NOTE: Although included in the schema, this API no longer supports the SEPA alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
The sepaDirectDebit element is a child of the sale transaction that, through its child elements,
defines information needed to process a SEPA Direct Debit transaction. At this time, you can use the
SEPA Direct Debit method of payment in Online transactions only.
Parent Elements:
sale
Attributes:
None
Child Elements:
Required: iban, mandateProvider, sequenceType
Optional: mandateReference, mandateURL, mandateSignatureDate, preferredLanguage
4.384 sepaDirectDebitResponse
NOTE: Although included in the schema, this API no longer supports the SEPA alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
Parent Elements:
saleResponse
Attributes:
None
4.385 sequenceNumber
The sequenceNumber element is an optional child of the giftCardResponse element, which specifies
a Worldpay generated sequence number associated with the transaction in our systems. You should
retain this value for possible future use in gift card reversal transactions.
Type = String; totalDigits = 6; Allowed Characters: 0 - 9
Parent Elements:
giftCardResponse
Attributes:
None
Child Elements:
None
4.386 sequenceType
NOTE: Although included in the schema, this API no longer supports the SEPA alternate payment
method. Please consult your Worldpay Relationship Manager for additional information about SEPA
support.
The sequenceType element is a required child of the sepaDirectDebit element and defines the
purchase in terms of a one-time buy or a member of a recurring stream of debits. If the value of this
element is either SubsequentRecurring, or FinalRecurring, you must include the mandateReference
element in the request, specifying the value returned in the initial sepaDirectDebitResponse.
Type = String (Enum); minLength = N/A; maxLength = N/A
Parent Elements:
sepaDirectDebit
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
4.387 shipFromPostalCode
The shipFromPostalCode element defines the postal code from which the product ships in the
enhancedData element.
Type = String; minLength = N/A; maxLength = 20
NOTE: Although the schema specifies the maxLength of the <shipFromPostalCode> element as
20 characters, in practice you should never exceed 10 characters in your submissions.
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.388 shippingAmount
The shippingAmount element defines shipping cost for the order. Although the schema defines it as an
optional child of the enhancedData element, it is required by Visa for Level III interchange rates. The
decimal is implied. Example: 500 = $5.00.
Type = Integer; totalDigits = 8
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.389 shipToAddress
The shipToAddress element contains several child elements that define the postal mailing address
(and telephone number) used for shipping purposes.
Parent Elements:
authorization, captureGivenAuth, fraudCheck, sale
Attributes:
None
Child Elements: (all Optional)
name, addressLine1, addressLine2, addressLine3, city, state, zip, country, email, phone
4.390 showStatusOnly
The shoeStatusOnly element is an optional child of the queryTransaction element and specifies
whether or not the query returns only the status of the previously submitted transaction. If you set the
element to Y, you must also include the origCnpTxnId element or the system declines the query with a
response code of 155 - origCnpTxnId is required when showStatusOnly is used
Type = Boolean; Valid values = Y or N
Parent Elements:
queryTransaction
Attributes:
None
Child Elements:
None
4.391 signature
The signature element is a required child of the applepay element. It is the BASE64 encoded string
signature of the payment and header data from the PKPaymentToken.
Type = String; minLength = N/A; maxLength = 10000
Parent Elements:
applepay
Attributes:
None
Child Elements:
None
4.392 skipRealtimeAU
The skipRealtimeAU element is an optional child of both the authorization and sale
transactions. Setting this element to true allows you to skip any real-time account updates on the
submitted transaction.
Type = Boolean; Valid values = true or false (default)
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
None
4.393 sofort
The sofort element is a child of the sale transaction that, through its child elements, defines
information needed to process an SOFORT (Real-time Bank Transfer) transaction. At this time, you can
use the SOFORT method of payment in Online transactions only.
NOTE: Although included in the schema, this API no longer supports the SOFORT alternate
payment methods. Please consult your Worldpay Relationship Manager for additional information
about SOFORT support.
Parent Elements:
sale
Attributes:
None
Child Elements:
Optional: preferredLanguage
4.394 sofortResponse
The sofortResponse element is a child of the saleResponse transaction when the method of
payment in the request is sofort. It contains child elements that you should store for future
use/reference.
Parent Elements:
saleResponse
Attributes:
None
4.395 ssn
The ssn element is an optional child of the customerInfo element. It is used in combination with
several other elements to provide required information for some PayPal Credit transactions.
Type = Pattern; minLength = 4 (last four digits of SSN); maxLength = 9 (full SSN)
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
None
4.396 startDate
The startDate element is a optional child of the subscription element, which specifies the date the
recurring billing should begin. It is also an optional child of both the createAddOn and
createDiscount element, where it specifies either the starting date of the Add On charge or the
starting date of the discount.
Type = Date; Format = YYYY-MM-DD
Parent Elements:
subscription, createAddOn, createDiscount, updateAddOn, updateDiscount
Attributes:
None
Child Elements:
None
4.397 state
The state element defines the customer’s state name in the billToAddress, shipToAddress,
taxBilling and elements.
Type = String; minLength = N/A; maxLength = 2
NOTE: Although the schema defines the maxLength for this element as 30, the best practice is to
use the 2 character abbreviation. When submitting an eCheck Verification transaction, you must use
the 2 character abbreviation or the transaction will be rejected with a 370 reason code.
Parent Elements:
billToAddress, shipToAddress, taxExempt
Attributes:
None
Child Elements:
None
4.398 submerchantCredit
The submerchantCredit element is the parent element for the transaction type that a Payment
Facilitator uses to move funds from the PayFac Settlement Account to the Sub-merchant Account. If you
use V11.3 or above, you can submit this transaction type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
reportGroup String Yes For PayFacs, this attribute does not segregate
transactions in iQ. This field does appear in various
SSR reports.
minLength = 1 maxLength = 25
Child Elements:
Required: accountInfo, amount, fundingSubmerchantId, fundsTransferId, submerchantName,
customIdentifier
4.399 submerchantCreditResponse
The submerchantCreditResponse element is the parent element for information returned to you in
response to a submerchantCredit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payFacCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
submerchantCredit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.400 submerchantDebit
The submerchantDebit element is the parent element for the transaction type that a Payment
Facilitator uses to move funds from the Sub-merchant Account to the PayFac Settlement Account. If you
use V11.3 or above, you can submit this transaction type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
reportGroup String Yes For PayFacs, this attribute does not segregate
transactions in iQ. This field does appear in various
SSR reports.
minLength = 1 maxLength = 25
Child Elements:
Required: accountInfo, amount, fundingSubmerchantId, fundsTransferId, submerchantName,
customIdentifier
4.401 submerchantDebitResponse
The submerchantDebitResponse element is the parent element for information returned to you in
response to a submerchantDebit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payFacCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
submerchantDebit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.402 submerchantName
Parent Elements:
submerchantCredit, submerchantDebit, fastAccessFunding
Attributes:
None
Child Elements:
None
4.403 subscription
The subscription element is a required child of the recurringRequest element and the parent of
several child element that define information about the recurring transaction stream to be handled by the
Recurring Engine.
Parent Elements:
recurringRequest
Attributes:
None
NOTE: If you include the numberOfPayments child element, the value submitted overrides the
default value defined in the Plan.
4.404 subscriptionId
The subscriptionId element is a required child of the recurringResponse element and defines the
assigned identifier for the sequence of recurring billing transactions. You also use this element in the
updateSubscription and cancelSubscription transactions to identify the subscription for
changes/cancellation.
Type = Long; minLength = N/A; maxLength = 19
Parent Elements:
recurringResponse, cnpInternalRecurringRequest, cancelSubscription, updateSubscription,
updateSubscriptionResponse, cancelSubscriptionResponse
Attributes:
None
Child Elements:
None
4.405 surchargeAmount
The surchargeAmount element defines the amount of the surcharge applied to the transaction by the
merchant. Supply the value in cents without a decimal point. For example, a value of 400 signifies $4.00.
Type = Integer; totalDigits = 12
NOTE: Use of the surchargeAmount element applies to Visa or Mastercard credit card payments
only. Also, you are required to notify the card networks and us of your intent to applying surcharges
at least 30 days prior to implementing the surcharges. Please consult your Relationship Manager if
you have additional questions.
Parent Elements:
authorization, authReversal, capture, credit, captureGivenAuth, forceCapture, sale
Attributes:
None
Child Elements:
None
4.406 systemTraceId
The systemTraceId element is an optional child of the giftCardResponse element, which specifies a
Worldpay generated identifier associated with the transaction in our systems. You should retain this value
for possible future use in gift card reversal transactions.
Type = Integer; totalDigits = 6
Parent Elements:
giftCardResponse
Attributes:
None
Child Elements:
None
4.407 taxAmount
The taxAmount element is a required child of the detailTax element and an optional child of the
lineItemData element and defines the detail tax amount on the purchased good or service. The
decimal is implied. Example: 500 = $5.00.
Type = Integer; totalDigits = 8
Parent Elements:
Required: detailTax
Optional: lineItemData
NOTE: If you include taxAmount as a child of lineItemData along with detailTax, the
lineItemData taxAmount should be the sum of the taxAmount children from detailTax
children.
Attributes:
None
Child Elements:
None
4.408 taxExempt
The taxExempt element is an optional child of the enhancedData element and specifies whether or
not the transaction is exempt from sales tax. If you do not include this element, the value defaults to false.
NOTE: You must set this element to true, if you set the salesTax element to 0.
Parent Elements:
enhancedData
Attributes:
None
Child Elements:
None
4.409 taxIncludedInTotal
The taxIncludedInTotal element is an optional child of the detailTax element and defines whether
or not the tax is included in the total purchase amount.
Type = Boolean; Valid Values = true or false
Parent Elements:
detailTax
Attributes:
None
Child Elements:
None
4.410 taxRate
The taxRate element is an optional child of the detailTax element and defines the tax rate applied to
this specific taxable amount.
Type = Decimal; totalDigits = 5
Parent Elements:
detailTax
Attributes:
None
Child Elements:
None
4.411 taxType
The taxType element is an optional child of several transaction types that designates the transaction as
either a convenience fee or tax payment for merchants using the Visa Tax Payment Program or the
Mastercard Convenience Fee Program.
Type = String (enum); minLength = N/A; maxLength = 1; Valid Values = payment or fee
Parent Elements:
authorization, captureGivenAuth, credit, forceCapture, sale
Attributes:
None
Child Elements:
None
4.412 taxTypeIdentifier
The taxTypeIdentifier element is an optional child of the detailTax element and defines the type
of tax collected on this specific tax amount. If the tax type identifier is unknown, do not include this
element.
Type = String (Enum); minLength = N/A; maxLength = 2
Parent Elements:
detailTax
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
00 Unknown
06 Other Tax
20 Room Tax
21 Occupancy Tax
22 Energy Tax
4.413 terminalId
The terminalId element is an optional child of the pos element and defines the identifier of the terminal
used at the point of sale.
Parent Elements:
pos
Attributes:
None
Child Elements:
None
4.414 threatMetrixSessionId
NOTE: Starting with V12.3, we have deprecated the use of this element for new or upgrading
merchants. Please use the webSessionId instead. The use and structure is identical.
NOTE: While generated by you at the time the consumer accesses your page, each
threatMetrixSessionId or webSessionId must include a 5-character prefix, supplied by your
Implementation Consultant, followed by a dash ("-"). The remainder of the Id must be unique for
each instance of the customer accessing your page.
Parent Elements:
advancedFraudChecks
Attributes:
None
Child Elements:
None
4.415 token
The token element has three uses depending upon whether the element concerns a Worldpay
generated token (for tokenized merchants) used in a payment transaction, a PayPal generated token, or a
Worldpay token used to convert to a low value token.
NOTE: You also use this element when submitting an Amazon Pay token. In this case, you only
include the cnpToken child element using the Amazon Pay token as the value.
Parent Elements:
authorization, captureGivenAuth, credit, forceCapture, sale, accountUpdate, updateSubscription,
fastAccessFunding
Attributes:
None
IMPORTANT: Although not a required element, Worldpay recommends you include the expDate
element. If you converted PAN information to tokens using the registerTokenRequest
transaction, we do not have the expDate value stored, so cannot add it to the transaction.
Transactions without expDate have a high likelihood of decline
Child Elements:
Required: cnpToken or tokenUrl (see Note below)
NOTE: Although present in the schema, you can only use the tokenURL element in an Account
Updater request, when requesting the Account Updater service from WPG.
Parent Elements:
paypal
Attributes:
None
Child Elements:
None
Parent Elements:
translateToLowValueTokenRequest
Attributes:
None
Child Elements:
None
4.416 tokenMessage
Parent Elements:
tokenResponse
Attributes:
None
Child Elements:
None
4.417 tokenResponse
The tokenResponse element is the parent element for several children defining the registered token, as
well the either card type and BIN, or last three characters of the account number in the case of eChecks.
This element appears in the response only if a tokenized merchant submits card or Direct Debit account
information in the transaction request.
Parent Elements:
authorizationResponse, captureGivenAuthResponse, creditResponse, echeckCreditResponse,
echeckRedepositResponse, echeckSalesResponse, echeckVerificationResponse,
forceCaptureResponse, saleResponse, updateSubscriptionResponse
Attributes:
None
Child Elements:
Required: tokenResponseCode, tokenMessage
Optional: cnpToken, type, bin, eCheckAccountSuffix
4.418 tokenResponseCode
The tokenResponseCode element provides a 3-digit code (see Table 4-4) indicating the results of a
transaction involving the conversion or attempted conversion of an account number to a token. The
tokenMessage element contains a short, human-readable explanation of the tokenResponseCode.
Type = String; minLength = N/A; maxLength = 3
Parent Elements:
tokenResponse
Attributes:
None
Child Elements:
None
Code Message
4.419 tokenUrl
NOTE: You can only use the tokenURL element in an Account Updater request, when requesting
the Account Updater service from Access Worldpay.
Parent Elements:
token, updatedToken, originalToken
Attributes:
None
Child Elements:
None
4.420 totalHealthcareAmount
NOTE: You must include a value greater than 0, except for a Visa transaction that only includes a
vision component.
Parent Elements:
Optional: healthcareAmounts
Attributes:
None
Child Elements:
None
4.421 track
The track element is child of the card element, which is required for card-present transactions. The
contents of the track element is the data read from the magnetic stripe.
Type = String; minLength = 1; maxLength = 256
Parent Elements:
card
Attributes:
None
Child Elements:
None
4.422 track1Status
The track1Status element is a required child of the mpos element. This element indicates whether the
device read track 1 from the magnetic stripe. A value of 0 indicates a successful read, while a value of 1
indicates a failure.
Type = Integer; minInclusive = 0; maxInclusive = 1028
Parent Elements:
mpos
Attributes:
None
Child Elements:
None
4.423 track2Status
The track2Status element is a required child of the mpos element. This element indicates whether the
device read track 2 from the magnetic stripe. A value of 0 indicates a successful read, while a value of 1
indicates a failure.
Type = Integer; minInclusive = 0; maxInclusive = 1028
Parent Elements:
mpos
Attributes:
None
Child Elements:
None
4.424 transactionAmount
Parent Elements:
applepayResponse
Attributes:
None
Child Elements:
None
4.425 transactionId
The transactionId element is used in two locations: in PayPal transactions, as a child of the paypal
element and in Apple Pay transactions as a child of the header element.
NOTE: The value of the <transactionId> element must match the TRANSACTIONID value returned
by the DoExpressCheckoutPayment call operation to PayPal.
Parent Elements:
paypal
Attributes:
None
Child Elements:
None
Parent Elements:
header
Attributes:
None
Child Elements:
None
4.426 translateToLowValueTokenRequest
The translateToLowValueTokenRequest element is the parent element for the transaction type that
creates a low value token for a submitted high value token. You can then provide the low value token to a
third party service provider, who requires access to the PAN information. The third party can redeem the
LVT for the PAN information via an onlineAccountNumberAccessRequest transaction.
NOTE: Please refer to the OmniToken Translator Transaction Info document for additional
information about this transaction type.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
4.427 translateToLowValueTokenResponse
NOTE: Please refer to the OmniToken Translator Transaction Info document for additional
information about this transaction type.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
Load Reversal transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Load Reversal transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Load Reversal transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: response, responseTime, message
Optional: orderId, paypageRegistrationId, location
4.428 trialIntervalType
The trialIntervalType element is an optional child of the createPlan element and defines the
interval period of a trial associated with the Plan. The overall length of a trial period is defined by the
trialIntervalType combined with the trialNumberOfIntervals element.
Type = String (enum); minLength = N/A; maxLength = N/A
Parent Elements:
createPlan
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
4.429 trialNumberOfIntervals
The trialNumberOfIntervals element is an optional child of the createPlan element and defines
the number of trial intervals (trialIntervalType) associated with the Plan. The overall length of a trial
period is defined by the trialIntervalType combined with the trialNumberOfIntervals
element.
Type = Integer; minLength = 1; maxLength = 99
Parent Elements:
createPlan
Attributes:
None
Child Elements:
None
4.430 triggeredRule
Parent Elements:
advancedFraudResults
Attributes:
None
Child Elements:
None
4.431 txnTime
The txnTime element is an optional child of the giftCardResponse element, which specifies the date
and time the transaction was processed by Worldpay. You should retain this value for possible future use
in other gift card transactions, such as giftCardCapture and most reversal transactions. The format of
the element is YYYY-MM-DDTHH:MM:SS. For example, 2016-11-21T11:00:00.
Type = dateTime; minLength = N/A; maxLength = 20
Parent Elements:
giftCardResponse
Attributes:
None
Child Elements:
None
4.432 type
The type element has two uses in the cnpAPI depending upon the parent. In one case it defines the type
of account used in the transaction in terms of association, company, PayPal, or Direct Debit. When used
as a child of the fundingSource element, it defines the card type in terms of prepaid, credit, debit, FSA,
or unknown.
Parent Elements:
accountInformation, newCardInfo, newCardTokenInfo, originalCard, originalCardInfo,
originalCardTokenInfo, originalToken, updatedCard, updatedToken, registerTokenResponse,
tokenResponse, card, paypage, token
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
MC Mastercard
VI Visa
AX American Express
DI Discover
PP PayPal
EC Direct Debit
GC Gift Card
Parent Elements:
fundingSource
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
NOTE: The fundingSource element and its child elements, type and availableBalance are
associated with the Insights features (see Issuer Insights on page 24.)
Please consult your Relationship Manager for additional information
4.433 unitCost
The unitCost element is an optional child of the lineItemData element, which specifies the price of
one unit of the item purchased. Although the schema defines it as an optional child of the enhancedData
element, it is required by Visa for Level III interchange rates. The value must be greater than or equal to
0.
Type = Decimal; minInclusive value = 0, totalDigits = 12
Parent Elements:
lineItemData
Attributes:
None
Child Elements:
None
4.434 unitOfMeasure
The unitOfMeasure element is an optional child of the lineItemData element, which specifies the
unit of measure of the purchased item. For example, each, kit, pair, gallon, and month would all be valid
values. Although an optional element, it is required by Visa and Mastercard when specifying line item
data.
Type = String; minLength = 1; maxLength = 12
Parent Elements:
lineItemData
Attributes:
None
Child Elements:
None
4.435 unload
The unload element is the parent element for the transaction type that removes funds from a Gift Card.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
4.436 unloadResponse
The unloadResponse element is the parent element for information returned to you in response to an
unload transaction. It can be a child of either a cnpOnlineResponse element or a batchResponse
element.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
Unload transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Unload transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Unload transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, fraudResult, giftCardResponse, location
4.437 unloadReversal
The unloadReversal element is the parent element for the transaction type that reverses the unloading
of a Gift Card.
Parent Elements:
cnpOnlineRequest
Attributes:
4.438 unloadReversalResponse
The unloadReversalResponse element is the parent element for information returned to you in
response to an unloadReversal transaction.
Parent Elements:
cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
Unload Reversal transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
Unload Reversal transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
Unload Reversal transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message
Optional: postDate, giftCardResponse, location
4.439 updateAddOn
The updateAddOn element is the parent of several child elements used to modify an additional charge
added to an existing subscription.
Parent Elements:
updateSubscription
Attributes:
None
Child Elements (all Required):
addOnCode, name, amount, startDate, endDate
4.440 updatedCard
Parent Elements:
accountUpdateResponse
Attributes:
None
Child Elements:
type, number, expDate
4.441 updateCardValidationNumOnToken
The updateCardValidationNumOnToken element is the parent element for the transaction type used
to update a CVV2/CVC2/CID code stored temporarily on the platform. You should only use this
transaction type if you had previously submitted the account number and security code in a
registerTokenRequest transaction and now need to change the CVV2/CVC2/CID value.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
Child Elements:
Required: cnpToken, cardValidationNum
Optional: orderId
4.442 updateCardValidationNumOnTokenResponse
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
id String Yes The response returns the same value submitted in the
updateCardValidationOnToken transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
updateCardValidationOnToken transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
updateCardValidationOnToken transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, message, responseTime
Optional: location
4.443 updateDiscount
The updateDiscount element is the parent of several child elements used to define updates to a
discount applied to an existing subscription.
Parent Elements:
updateSubscription
Attributes:
None
Child Elements (all Required):
discountCode, name, amount, startDate, endDate
4.444 updatePlan
The updatePlan element is the parent of the transaction used to activate/deactivate Plans associated
with recurring payments. When you deactivate a Plan, you can no longer reference that Plan for use with
subscriptions. Existing subscriptions making use of the deactivated Plan will continue to use the Plan until
either modified or completed. You can also reactivate a deactivated Plan by updating the Plan and setting
the active flag to true.
Parent Elements:
cnpOnlineRequest, cnpRequest
Attributes:
None
Child Elements:
planCode, active
4.445 updatePlanResponse
The updatePlanResponse element is the parent of the response message to the updatePlan
transaction used to deactivate Plans associated with recurring payments.
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
None
Child Elements:
cnpTxnId, response, message, responseTime, planCode, location
4.446 updateSubscription
The updateSubscription element is the parent element for the transaction that updates the
subscription information associated with a recurring payment. Using this transaction type you can change
the plan, card, billing information, and/or billing date. You can also create, update, or delete a Discount
and/or an Add On.
Parent Elements:
cnpOnlineRequest, batchRequest
Attributes:
None
Child Elements:
Required: subscriptionId
Optional: planCode, billToAddress, (choice of) card, paypage, or token, billingDate, createDiscount,
deleteDiscount, updateDiscount, createAddOn, updateAddOn, deleteAddOn
4.447 updateSubscriptionResponse
Parent Elements:
cnpOnlineResponse, batchResponse
Attributes:
None
Child Elements:
subscriptionId, cnpTxnId, response, message, responseTime, tokenResponse, location
4.448 updatedToken
Parent Elements:
accountUpdateResponse
Attributes:
None
Child Elements:
cnpToken or tokenUrl, type, number, expDate, bin
4.449 url
The url element is an optional child of the customBilling element. You use it to designate your
customer service web site instead of providing a customer service phone number. This element may
include any of the following characters: A-Z, a-z, 0-9, /, \, -, ., or _.
Type = String; minLength = N/A; maxLength = 13
NOTE: Please consult your Relationship Manager prior to attempting to use the <url> element.
This contents of this element are discarded unless you are specifically enabled to use in your
cnpAPI submissions.
Parent Elements:
customBilling
Attributes:
None
Child Elements:
None
4.450 user
The user element is a required child of the authentication element. It is a unique identifier of the
user/merchant used to authenticate that the message is from a valid source.
Type = String; minLength = N/A; maxLength = 20
Parent Elements:
authentication
Attributes:
None
Child Elements:
None
4.451 vendorCredit
The vendorCredit element is the parent element for the transaction type that a Payment Facilitator or a
qualified direct merchant uses to move funds from the PayFac/Merchant Settlement Account to the
Vendor Account. A Payment Facilitator must include the fundingSubmerchantId element, while a
direct merchant must include the fundingCustomeId element.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
Child Elements:
Required: accountInfo, amount, fundsTransferId, vendorName and choice of fundingSubmerchantId or
fundingCustomerId
4.452 vendorCreditResponse
The vendorCreditResponse element is the parent element for information returned to you in response
to a vendorCredit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payFacCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
submerchantCredit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.453 vendorDebit
The vendorDebit element is the parent element for the transaction type that a Payment Facilitator uses
to move funds from the Vendor Account to the PayFac Settlement Account. If you use V11.3 or above,
you can submit this transaction type either in a Batch or Online.
Parent Elements:
batchRequest, cnpOnlineRequest
Attributes:
Child Elements:
Required: accountInfo, amount, fundsTransferId, vendorName, and choice of fundingSubmerchantId or
fundingCustomerId
4.454 vendorDebitResponse
The vendorDebitResponse element is the parent element for information returned to you in response
to a vendorDebit transaction.
Parent Elements:
batchResponse, cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
payFacCredit transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
payFacCredit transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
submerchantCredit transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, fundsTransferId, response, responseTime, message
Required (Online): postDate, location
4.455 vendorName
The vendorName element is a required child of both the vendorCredit and vendorDebit elements
and specifies the name of the vendor involved in the funding instructions.
Type = String; minLength = 1; maxLength = 256
Parent Elements:
vendorCredit, vendorDebit
Attributes:
None
Child Elements:
None
4.456 verificationCode
Parent Elements:
echeckSalesResponse
Attributes:
None
Child Elements:
None
4.457 verify
The verify element is an optional child of the echeckSale element, which allows you to specify to
perform an eCheck Verification prior to processing the sale. If the account fails the verification operation,
the system does not process the sale.
Type = Boolean; Valid Values = true or false
Parent Elements:
echeckSale
Attributes:
None
Child Elements:
None
4.458 version
The version element is a required child of the applepay element and provides version information
about the payment token.
Type = String; minLength = 5; maxLength = 20
Parent Elements:
applepay
Attributes:
None
Child Elements:
None
4.459 virtualAccountNumber
Parent Elements:
enhancedAuthResponse
Attributes:
None
Child Elements:
None
4.460 virtualGiftCard
The virtualGiftCard element is an optional child of the activate transaction. You include this
element when you are requesting a Virtual Gift Card.
Parent Elements:
activate
Attributes:
None
Child Elements (all required):
accountNumberLength, giftCardBin
4.461 virtualGiftCardBin
Parent Elements:
activateReversal
Attributes:
None
Child Elements:
None
4.462 virtualGiftCardResponse
Parent Elements:
activateResponse
Attributes:
None
Child Elements (all optional):
accountNumber, pin
4.463 visionAmount
The visionAmount element is an optional child of the healthcareAmounts element and defines the
healthcare amount used for vision related purchases. The decimal is implied. Example: 500 = $5.00.
Type = Integer; totalDigits = 8
Parent Elements:
Optional: healthcareAmounts
Attributes:
None
Child Elements:
None
4.464 void
The void element is the parent element for all Void transactions. You can use this element only in Online
transactions. If you use this Recycling Engine, you can use the void transaction to halt the recycling of a
sale transaction.
NOTE: Before submitting a Void, please allow a minimum of 60 seconds to elapse after submitting
the transaction you wish to void. This timing ensures our system fully records the first (to be voided)
transaction in our database.
Parent Elements:
cnpOnlineRequest
Attributes:
Child Elements:
Required: cnpTxnId
Optional: processingInstructions
4.465 voidResponse
The voidResponse element is the parent element for information returned to you in response to a Void
transaction.
Parent Elements:
cnpOnlineResponse
Attributes:
id String Yes The response returns the same value submitted in the
void transaction.
minLength = 1 maxLength = 36
customerId String No The response returns the same value submitted in the
void transaction.
minLength = N/A maxLength = 50
reportGroup String Yes The response returns the same value submitted in the
void transaction.
minLength = 1 maxLength = 25
Child Elements:
Required: cnpTxnId, response, responseTime, message, postDate
Optional: recyclingResponse, location
4.466 wallet
The wallet element is an optional child of the of both the authorization and sale transactions.
You must use this element along with its child elements, when the consumer uses MasterPass or Visa
Checkout to make a purchase.
Parent Elements:
authorization, sale
Attributes:
None
Child Elements:
walletSourceType, walletSourceTypeId
4.467 walletSourceType
The walletSourceType element is a required child of the wallet element, which defines the source of
the transaction information. You must submitted this element with the transaction when the consumer
uses MasterPass or Visa Checkout.
Type = String (Enum); minLength = N/A; maxLength = N/A
Parent Elements:
wallet
Attributes:
None
Child Elements:
None
Enumerations:
Enumeration Description
4.468 walletSourceTypeId
The walletSourceTypeId element is a required child of the wallet element. For MasterPass
transactions, the value of this element is returned from MasterPass. For Visa Checkout transactions, set
this value to VCIND.
Type = String; minLength = N/A; maxLength = N/A
Parent Elements:
wallet
Attributes:
None
Child Elements:
None
4.469 webSessionId
The webSessionId element is an optional child of the advancedFraudChecks element. You use this
Id to identify a particular transaction to our suite of Fraud Tools, allowing the correlation of data, scores,
and fraud results.
Type = String; Allowed Characters = a-z, A-Z, 0-9, -, _ ; minLength = 1; maxLength = 128
NOTE: While generated by you at the time the consumer accesses your page, each
webSessionId must include a 5-character prefix, supplied by your Implementation Consultant,
followed by a dash ("-"). The remainder of the Id must be unique for each instance of the customer
accessing your page.
If you use V12.3 or above, you must use the webSessionId to provide the Id value, not the
threatMetrixSessionId element.
Parent Elements:
advancedFraudChecks
Attributes:
None
Child Elements:
None
4.470 yearsAtEmployer
The yearsAtEmployer element is an optional child of the customerInfo element and defines the
number of years the customer has worked for their current employer. It is used in combination with
several other elements to provide required information for some PayPal Credit transactions.
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
None
4.471 yearsAtResidence
The yearsAtResidence element is an optional child of the customerInfo element and defines the
number of years the customer has resided in their current domicile. It is used in combination with several
other elements to provide required information for some PayPal Credit transactions.
Parent Elements:
customerInfo
Attributes:
None
Child Elements:
None
4.472 zip
The zip element defines the customer’s postal code in both the billToAddress and shipToAddress
elements.
Type = String; minLength = N/A; maxLength = 20
NOTE: Although the schema specifies the maxLength of the zip element as 20 characters, in
practice you should never exceed 10 characters in your submissions.
If including the zip element for eCheck Verification, do not exceed 9 characters and do not use
dashes.
Parent Elements:
billToAddress, shipToAddress
Attributes:
None
Child Elements:
None
This appendix provides reference material regarding the codes that are returned in a cnpAPI response for
a payment transaction. This appendix contains the following sections:
• Payment Transaction Response Codes
• 3DS Authentication Result Codes
• AVS Response Codes
• AAVS Response Codes
• Card Validation Response Codes
• Advanced Fraud Tools Triggered Rules
• XML Validation Error Messages
• Additional Response Header Error Messages
• ACH Return Reason Codes
• ACH NoC Change Codes
• Canadian EFT Return Codes
This section contains a list of codes and messages that the system can return in the response message
for a payment transaction.
NOTE: For information concerning Chargeback Response Code, see the Chargeback API
Reference Guide.
Table A-1 shows all possible values for the <response> and <message> elements. You should code
appropriately to handle all codes applicable to the transactions you use.
• The Response Code value appears in the <response> element.
• The Response Message value appears in the <message> element.
TABLE A-1 Valid Values for the Response and Message Elements
Response Response
Code Response Message Type Description
010 Partially Approved Approved The authorized amount is less than the
requested amount.
011 Offline Approval Approved Offline approval issued while the terminal is
unable to communicate with the issuer.
013 Offline Approval (unable to go Approved Offline approval issued while the terminal is
online) unable to communicate with the issuer.
100 Processing Network Unavailable Soft There is a problem with the card or PINless
Decline Debit network. Contact the network for more
information.
101 Issuer Unavailable Soft There is a problem with the issuer network.
Decline Please contact the issuing bank.
108 Try again later Soft Returned if the eProtect token is not
immediately available, when submitting an
Auth or Sale transaction.
110 Insufficient Funds Soft The card does not have enough funds to
Decline cover the transaction.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
111 Authorization amount has already Hard The total amount of the original
been depleted Decline Authorization has been used.
Appears in Declined Transaction report.
126 Call Issuer - Update Cardholder Referral Some data is out of date; contact the issuer
Data to update this information.
127 Exceeds Approval Amount Limit Hard This transaction exceeds the daily
Decline approval limit for the card.
130 Call Indicated Number Referral There is an unspecified problem; contact the
phone number provided.
140 Update Cardholder Data Referral Cardholder data is incorrect; contact the
issuing bank.
150 Original transaction found. Info A Query transaction response indicating that
the original transaction was found.
151 Original transaction not found. Info A Query transaction response indicating that
the original transaction was not found.
152 Original transaction found, but Info A Query transaction response indicating that
response not yet available. the original transaction was found, but the
final response information is not yet
available.
153 Query transaction not enabled. Info A Query transaction response indicating that
you are not enabled for use of the Query
transaction.
154 At least one of origId or Soft When submitting a Query transaction, you
origCnpTxnId is required Decline must include either the origId or
origCnpTxnId.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
155 origCnpTxnId is required when Soft When submitting a Query transaction with
showStatusOnly is used Decline the showStatusOnly flag set to Y, you
must include the origCnpTxnId element.
170 Submitted MCC not allowed Hard The submitted MCC is not part of the
Decline allowed MCC white list. Resubmit the
transaction with an allowed MCC, or ask
your Relationship Manager about adding
the submitted MCC to the white list.
191 The merchant is not registered in N/A This is an Account Updater response
the update program. indicating a set-up problem that must be
resolved prior to submitting another request
file. Escalate this to your Relationship
Manager.
192 Merchant not certified/enabled for Hard Your organization is not certified or
IIAS Decline enabled for IIAS/FSA transactions.
206 Issuer Generated Error Soft An unspecified error was returned by the
Decline issuer. Please retry the transaction and if the
problem persist, contact the issuing bank.
207 Pickup card - Other than Hard The issuer indicated that the gift card
Lost/Stolen Decline should be removed from use.
209 Invalid Amount Hard The specified amount is invalid for this
Decline transaction.
213 Pickup Card - Lost Card Hard The submitted card was reported as lost
Decline and should be removed from use.
214 Pickup Card - Stolen Card Hard The submitted card was reported as
Decline stolen and should be removed from use.
215 Restricted Card Hard The specified Gift Card is not available
Decline for use.
217 Card Already Active Hard The submitted card is already active.
Decline
218 Card Not Active Hard The submitted card has not been
Decline activated.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
219 Card Already Deactivate Hard The submitted card has already been
Decline deactivated.
221 Over Max Balance Hard The activate or load amount exceeds the
Decline maximum allowed for the specified gift
Card.
229 Illegal Transaction Hard The transaction would violate the law.
Decline
255 Gift Card Escheated Hard The Gift Card has been seized by the
Decline government while resolving an estate.
256 Invalid Reversal Type for Credit Hard You attempted to use a Closed Loop Gift
Card Transaction Decline Card reversal transaction to reverse a
credit card transaction. For example, you
cannot use a Deposit Reversal
transaction to reverse a Capture. To
reverse a credit card Capture transaction,
use a Credit transaction.
257 System Error (message format Hard Issuer reported message format is
error) Decline incorrect. Contact your Relationship
Manager.
258 System Error (cannot process) Hard Issuer reported transaction could not be
Decline processed. Contact your Relationship
Manager.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
271 Refund rejected due to pending Soft The refund is tied to a deposit that is still in
deposit status Decline pending state or the state is in doubt. You
can retry the refund at a later time.
272 Refund rejected due to declined Hard The refund is tied to a deposit that failed.
deposit status Decline
273 Refund rejected by the processing Soft The refund is tied to a deposit that
network Decline succeeded, but was declined by PayPro.
284 Capture, Credit and AuthReversal Hard You must use the Gift Card version of
tags cannot be used for Gift Card Decline these transactions for Gift Cards (i.e.,
Transactions giftCardCapture, giftCardCredit, and
giftCardAuthReversal).
301 Invalid Account Number Hard The account number is not valid; contact
Decline the cardholder to confirm information or
inquire about another form of payment.
302 Account Number Does Not Match Hard The payment type was selected as one
Payment Type Decline card type (e.g. Visa), but the card number
indicates a different card type (e.g.
Mastercard).
304 Lost/Stolen Card Hard The card has been designated as lost or
Decline stolen; contact the issuing bank.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
308 Restricted Card - Chargeback Hard This transaction is being declined due
Decline the operation of the Prior Chargeback
Card Filtering Service or the card has a
restriction preventing approval if there
are any chargebacks against it.
309 Restricted Card - Prepaid Card Hard This transaction is being declined due
Filtering Service Decline the operation of the Prepaid Card
Filtering service.
310 Invalid track data Hard The track data is not valid.
Decline
312 Restricted Card - International Hard This transaction is being declined due
Card Filtering Service Decline the operation of the International Card
Filtering Service.
313 International filtering for issuing Hard This is returned when the transaction
card country <country> Decline involves a US based merchant
processing Canadian transactions has a
(where <country> is the 3-character
transaction that uses a US card.
country code)
315 Restricted Card - Auth Fraud Hard This transaction is being declined due
Velocity Filtering Service Decline the operation of the Auth Fraud Velocity
Filtering Service.
316 Automatic Refund Already Issued Hard This refund transaction is a duplicate for
Decline one already processed automatically by
the Fraud Chargeback Prevention
Service (FCPS).
Appears in Declined Transaction report.
318 Restricted Card - Auth Fraud Hard This transaction is being declined due
Advice Filtering Service Decline the operation of the Auth Fraud Advice
Filtering Service.
319 Restricted Card - Fraud AVS Hard This transaction is being declined due
Filtering Service Decline the operation of the Auth Fraud AVS
Filtering Service.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
325 Transaction not allowed at Hard The transaction is not permitted; contact
terminal Decline the issuing bank.
326 Exceeds number of PIN entries Hard (Referring to a debit card) The incorrect
Decline PIN has been entered excessively and
the card is locked.
327 Cardholder transaction not Hard Merchant does not allow that card type or
permitted Decline specific transaction.
330 Invalid Payment Type Hard This payment type is not accepted by the
Decline issuer.
331 Invalid POS Capability for Hard For a Cardholder Authorized Terminal
Cardholder Authorized Terminal Decline Transaction the POS capability must be
Transaction set to magstripe.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
332 Invalid POS Cardholder ID for Hard For a Cardholder Authorized Terminal
Cardholder Authorized Terminal Decline Transaction the POS Cardholder ID must
Transaction be set to nopin.
335 This method of payment does not Hard You can not perform an Authorization
support authorization reversals Decline Reversal transaction for this payment
type.
336 Reversal amount does not match Hard For a merchant initiated reversal against
Authorization amount. Decline an American Express authorization, the
reversal amount must match the
authorization amount exactly.
341 Invalid Healthcare Amounts Hard The amount submitted with this
Decline FSA/Healthcare transaction is invalid.
The FSA amount must be greater than 0,
and cannot be greater than the
transaction amount.
346 Invalid billing descriptor prefix Hard The billing descriptor prefix submitted is
Decline not valid.
Appears in Declined Transaction report.
347 Invalid billing descriptor Hard The billing descriptor is not valid
Decline because you are not authorized to send
transactions with custom billing fields.
Appears in Declined Transaction report.
348 Invalid Report Group Hard The Report Group specified in the
Decline transaction is invalid, because it is either
not in the defined list of acceptable
Report Groups or there is a mis-match
between the Report Group and the
defined Billing Descriptor.
349 Do Not Honor Soft The issuing bank has put a temporary hold
Decline on the card.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
351 Decline - Request Positive ID Hard Card Present transaction that requires a
Decline picture ID match.
354 3-D Secure transaction not Hard You are not certified to submit 3-D
supported by merchant Decline Secure transactions.
356 Invalid purchase level III, the Soft Submitted Level III data is bad or missing.
transaction contained bad or Decline
missing data
357 Missing healthcareIIAS tag for an Hard The FSA Transactions submitted does
FSA transaction Decline not contain the <healtcareIIAS> data
element.
358 Restricted by Vantiv due to Hard The transaction was declined due to the
security code mismatch. Decline security code (CVV2, CID, etc) not
matching.
360 No transaction found with Hard There were no transactions found with
specified Transaction Id Decline the specified Transaction Id.
Appears in Declined Transaction report.
361 Authorization no longer available Hard The authorization for this transaction is
Decline no longer available. Either the
authorization has already been
consumed by another capture, or the
authorization has expired.
Appears in Declined Transaction report.
362 Transaction Not Voided - Already Hard This transaction cannot be voided; it has
Settled Decline already been delivered.
Appears in Declined Transaction report.
364 Invalid Account Number - original Hard The submitted account number is invalid.
or NOC updated eCheck account Decline Confirm the original account number or
required check NOC for new account number.
365 Total credit amount exceeds Hard The amount of the credit is greater than
capture amount Decline the capture, or the amount of this credit
plus other credits already referencing
this capture are greater than the capture
amount.
Appears in Declined Transaction report.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
366 Exceed the threshold for sending Hard NACHA rules allow two redeposit
redeposits Decline attempts within 180 days of the
settlement date of the initial deposit
attempt. This threshold has been
exceeded.
Appears in Declined Transaction report.
367 Deposit has not been returned for Hard NACHA rules only allow redeposit
insufficient/non-sufficient funds Decline attempts against deposits returned for
Insufficient or Uncollected Funds.
Appears in Declined Transaction report.
370 Internal System Error - Call Vantiv Hard There is a problem with the system.
Decline Contact
[email protected].
371 Original Transaction has been Hard Do not send additional redeposit
Processed - Future Redeposits Decline transactions, since the original
Canceled transaction was processed.
Appears in Declined Transaction report.
372 Soft Decline - Auto Recycling In Soft The transaction was intercepted because it
Progress Decline is being auto recycled by the Recycling
Engine.
373 Hard Decline - Auto Recycling Hard The transaction was intercepted because
Complete Decline auto recycling has completed with a final
decline.
375 Merchant is not enabled for Hard The submitted transaction contained a
surcharging Decline surcharge and the merchant is not
enabled for surcharging.
376 This method of payment does not Hard The use of a surcharge is only allowed
support surcharging Decline for Visa and Mastercard methods of
payment.
377 Surcharge is not valid for debit or Hard You cannot apply a surcharge to a
prepaid cards Decline transaction using a debit or prepaid card.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
379 Transaction declined by the Hard The SEPA Direct Debit processing
processing network Decline network declined the transaction for
unspecified reasons. Some possible
reasons are: insufficient funds,
IBAN/Name disagreement, red flag on
account, etc.
380 Secondary amount cannot exceed Hard The secondary amount exceeded the sale
the sale amount Decline amount in the submitted transaction.
381 This method of payment does not Hard The submitted method of payment does
support secondary amount Decline not allow the use of Convenience Fees.
382 Secondary amount cannot be less Hard The secondary amount must be a
than zero Decline positive integer.
385 Secondary amount not allowed Hard If the associated sale or capture
on refund if not included on Decline transaction did not included a secondary
deposit amount, you cannot include a secondary
amount on an associated refund.
401 Invalid E-mail Hard The e-mail address provided is not valid.
Decline Verify that it was entered correctly.
469 Invalid Recurring Request - See Hard The Recurring Request was invalid,
Recurring Response for Details Decline which invalidated the transaction. The
Response Code and Message in the
Recurring Response contains additional
information.
470 Approved - Recurring Subscription Approved The recurring request was processed
Created successfully.
471 Parent Transaction Declined - Hard The original payment transaction was
Recurring Subscription Not Decline declined, so the recurring payments have
Created not been scheduled.
Appears in Declined Transaction report.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
472 Invalid Plan Code Hard The plan specified in the recurring
Decline request was invalid.
473 Scheduled Recurring Payment Approved The scheduled recurring payment has been
Processed processed successfully.
476 Add On Code Already Exists Hard The specified Add On code already
Decline exists.
Appears in Declined Transaction report.
478 No Matching Add On Code for the Hard The Add On code specified does not
Subscription Decline exist.
Appears in Declined Transaction report.
480 No Matching Discount Code for Hard The Discount Code supplied in the
the Subscription Decline updateDiscount or deleteDiscount
transaction does not exist.
Appears in Declined Transaction report.
482 Invalid Start Date Hard The supplied Start Date is invalid.
Decline
483 Merchant Not Registered for Hard You are not registered for the use of the
Recurring Engine Decline Recurring Engine.
484 Insufficient data to update Hard The transaction did not include data
subscription Decline needed for update operation.
485 Invalid Billing Date Hard The submitted billing date is either
Decline before the current date or otherwise
invalid.
486 Discount Code Already Exists Hard The specified Discount code already
Decline exists.
487 Plan Code already exists Hard The specified Plan Code already exists.
Decline
500 The account number was Hard An Account Updater response indicating
changed Decline the Account Number changed from the
original number.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
501 The account was closed Hard An Account Updater response indicating
Decline the account was closed. Contact the
cardholder directly for updated
information.
502 The expiration date was changed N/A An Account Updater response indicating the
Expiration date for the card has changed.
503 The issuing bank does not N/A An Account Updater response indicating the
participate in the update program issuing bank does not participate in the
update program
504 Contact the cardholder for updated N/A An Account Updater response indicating you
information should contact the cardholder directly for
updated information.
507 The cardholder has opted out of the N/A The cardholder requested that no updates
update program be included for their account.
521 Soft Decline - Card reader Soft The connection to the decryption service is
decryption service is not available Decline currently unavailable. Please retry the
transaction and/or contact your Relationship
Manager.
523 Soft Decline - Decryption failed Soft Our attempt to decrypt the card information
Decline failed. Please retry the transaction.
524 Hard Decline - Input data is Hard The submitted data is invalid.
invalid. Decline
530 Apple Pay Key Mismatch Hard The submitted publicKeyHash element
Decline does not match any configured entries.
Contact your Implementation Consultant.
531 Apple Pay Decryption Failed Hard Worldpay was unable to decrypt the
Decline submitted information.
540 Hard Decline - Decryption Failed Hard Worldpay was unable to decrypt the
Decline submitted card number and/or CVV.
550 Advanced Fraud Filter Score Hard The transaction was declined because
Below Threshold Decline the resulting Fraud Filter Score was
below the acceptable threshold set in the
merchant’s policy.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
560 System Error - Contact Worldpay Soft There was an unspecified problem with the
representative Decline transaction. Please contact your Worldpay
Relationship Manager.
561 Amazon Pay - Amazon Unavailable Soft Amazon was unavailable. Please retry the
Decline transaction.
562 Amazon Pay - Amazon Declined Hard Amazon declined the transaction.
Decline
563 Amazon Pay - Invalid Token Hard The submitted Amazon token is invalid.
Decline Please correct the token value before
resubmitting the transaction.
Make a GetChargePermisson call to the
AmazonPay API to determine the current
state of the token. If the token is Closed,
you cannot execute new authorizations.
If the token is Open, but with a
PaymentPlanNotSet constraint, you must
re-engage the buyer to update theie
Payment Method Details (i.e., Expiry
Date, Billing Address, etc.)
564 Merchant not enabled for Amazon Hard Your organization is not enabled for the
Pay Decline use of Amazon Pay. Please contact your
Relationship Manager.
601 Soft Decline - Primary Funding Soft A PayPal response indicating the
Source Failed Decline transaction failed due to an issue with
primary funding source (e.g. expired Card,
insufficient funds, etc.).
NOTE: The Response Message associated with Response Code 602 is inaccurate due to a remapping of
PayPal Response Codes. Please read the Description below for the recommended action when receiving
Response Code 602.
602 Soft Decline - Buyer has alternate Soft The transaction could not be completed for
funding source Decline one of the following reasons:
• The billing address associated with the
financial Instrument could not be
confirmed.
• The transaction exceeds the card limit.
• The transaction was denied by the card
issuer.
You should establish error handling logic
that directs the customer to contact PayPal
to resolve the issue with their account.
610 Hard Decline - Invalid Billing Hard A PayPal response indicating the Billing
Agreement Id Decline Agreement ID is invalid.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
611 Hard Decline - Primary Funding Hard A PayPal response indicating the issuer
Source Failed Decline is unavailable.
612 Hard Decline - Issue with Paypal Hard A PayPal response indicating the
Account Decline transaction failed due to an issue with
the buyer account.
613 Hard Decline - PayPal Hard A PayPal response indicating the need to
authorization ID missing Decline correct the authorization ID before
resubmitting.
614 Hard Decline - confirmed email Hard A PayPal response indicating your
address is not available Decline account is configured to decline
transactions without a confirmed
address. request another payment
method or contact
[email protected] to
modify your account settings.
615 Hard Decline - PayPal buyer Hard A PayPal response indicating account
account denied Decline unauthorized payment risk.
616 Hard Decline - PayPal buyer Hard A PayPal response indicating PayPal is
account restricted Decline unable to process the payment. Buyer
should contact PayPal with questions.
617 Hard Decline - PayPal order has Hard A PayPal response indicating no further
been voided, expired, or Decline authorizations/captures can be
completed processed against this order. A new
order must be created.
618 Hard Decline - issue with PayPal Hard A PayPal response indicating one of
refund Decline these potential refund related issues:
duplicate partial refund must be less than
or equal to original or remaining amount,
past time limit, not allowed for
transaction type, consumer account
locked/inactive, or complaint exists - only
a full refund of total/remaining amount
allowed. Contact
[email protected] for
specific details.
619 Hard Decline - PayPal credentials Hard A PayPal response indicating you do not
issue Decline have permissions to make this API call.
620 Hard Decline - PayPal Hard A PayPal response indicating you cannot
authorization voided or expired Decline capture against this authorization. You
need to perform a brand new
authorization for the transaction.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
621 Hard Decline - required PayPal Hard A PayPal response indicating missing
parameter missing Decline parameters are required. Contact
[email protected] for
specific details.
622 Hard Decline - PayPal transaction Hard A PayPal response indicating the need to
ID or auth ID is invalid Decline check the validity of the authorization ID
prior to reattempting the transaction.
623 Hard Decline - Exceeded Hard A PayPal response indicating you should
maximum number of PayPal Decline capture against a previous authorization.
authorization attempts
625 Hard Decline - PayPal funding Hard A PayPal response indicating the buyer
sources unavailable. Decline needs to add another funding sources to
their account.
626 Hard Decline - issue with PayPal Hard A PayPal response indicating there are
primary funding source. Decline issues with the buyer’s primary funding
source.
627 Hard Decline - PayPal profile does Hard Contact your Relationship Manager to
not allow this transaction type. Decline adjust your PayPal merchant profile
preferences.
628 Internal System Error with PayPal Hard There is a problem with your username
- Contact Vantiv Decline and password. Contact
[email protected].
629 Hard Decline - Contact PayPal Hard A PayPal response indicating you should
consumer for another payment Decline contact the consumer for another
method payment method.
637 Invalid terminal Id Hard The terminal Id submitted with the POS
Decline transaction is invalid.
640 PINless Debit processing not Hard At this time, we support PINless Debit
supported for non-recurring Decline transaction only for recurring
transactions transactions.
641 PINless Debit processing not Hard PINless Debit does not support partial
supported for partial auths Decline authorizations. You can resubmit the
transaction without using the partial auth
flag.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
642 Merchant not configured for Hard You are not enabled for PINless Debit
PINless Debit processing Decline processing. Please consult your
Relationship Manager for additional
information about this feature.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
701 Under 18 years old Hard A PayPal Credit response indicating the
Decline customer is under 18 years of age based
upon the date of birth.
702 Bill to outside USA Hard A PayPal Credit response indicating the
Decline billing address is outside the United
States.
703 Bill to address is not equal to Hard A PayPal Credit response indicating that
ship to address Decline the billing address does not match the
shipping address.
704 Declined, foreign currency, must Hard A PayPal Credit or PINless Debit
be USD Decline response indicating the transaction is
declined, because it is not in US dollars.
707 Insufficient buying power Other A PayPal Credit response indicating that the
account holder does not have sufficient
credit available for the transaction amount.
709 Invalid Data - data elements Hard A PayPal Credit response indicating one
missing Decline or more required data elements are
missing.
Also, returned for an Direct Debit
transaction that is missing a required
data element. For example, failure to
include the name element in an
echeckSale or echeckCredit
transaction would result in this code
being returned.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
710 Invalid Data - data format error Hard A PayPal Credit response indicating that
Decline some data was formatted incorrectly.
711 Invalid Data - Invalid T&C version Hard A PayPal Credit response indicating the
Decline T&C version is invalid.
713 Verify billing address Hard A PayPal Credit response indicating that
Decline you should verify the billing address.
717 Authorization already exists for Hard A PayPal Credit response indicating that
the order Decline an authorization already exists for the
transaction.
730 Lodging transactions are not Hard Your current MCC does not allow lodging
allowed for this MCC Decline transactions. Please consult your
Relationship Manager.
731 Duration cannot be negative Hard You submitted a negative value for the
Decline <duration> element. Correct the error
and resubmit the transaction.
732 Hotel Folio Number cannot be Hard Although the schema does not require
blank Decline the submission of the
<hotelFolioNumber> element, if you do
include it, you must specify a value (i.e.,
null not allowed). Please either add a
valid value or remove the element and
resubmit the transaction.
733 Invalid check in date Hard There is a problem with the submitted
Decline check in date (for example, 2018-02-32).
Please correct the date and resubmit the
transaction.
734 Invalid check out date Hard There is a problem with the submitted
Decline check out date (for example, 2018-02-32).
Please correct the date and resubmit the
transaction.
735 Invalid check in or check out date Hard There is a problem with the submitted
Decline check in or check out date (for example,
2018-02-32). Please correct the date(s)
and resubmit the transaction.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
736 Check out date cannot be before Hard The check out date you submitted was
check in date Decline before the check in date. Correct the
error and resubmit the transaction.
737 Number of adults cannot be Hard You submitted a negative value for the
negative Decline <numAdult> element. Correct the error
and resubmit the transaction.
738 Room rate cannot be negative Hard You submitted a negative value for the
Decline <roomRate> element. Correct the error
and resubmit the transaction.
739 Room tax cannot be negative Hard You submitted a negative value for the
Decline <roomTax> element. Correct the error
and resubmit the transaction.
740 Duration can only be from 0 to 99 Hard For Visa the maximum duration is 99
for Visa Decline (2-digits).
801 Account number was successfully Approved The card number was successfully
registered registered and a token number was
returned.
802 Account number was previously Approved The card number was previously registered
registered for tokenization.
Note: You also receive this response code
when using a low value token in a
transaction, because the system registers
the PAN at the time it creates the LVT.
805 Card Validation Number Updated Approved The stored value for CVV2/CVC2/CID has
been successfully updated.
820 Credit card number was invalid Hard The card number submitted for
Decline tokenization is invalid.
821 Merchant is not authorized for Hard Your organization is not authorized to
tokens Decline use tokens.
822 Token was not found Hard The token number submitted with this
Decline transaction was not found.
825 Merchant not authorized for Hard Your organization is not authorized for
eCheck tokens Decline Direct Debit tokenization.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
827 Checkout Id was not found Soft The submitted checkoutId was not found.
Decline The low value token is only good for 24
hours and may have expired.
828 Generic Checkout Id error Soft An unknown error caused the use of
Decline checkoutId to fail.
835 Capture amount can not be more Hard The amount in the submitted Capture
than authorized amount Decline exceeds 115% of the authorized amount.
Appears in Declined Transaction report.
850 Tax Billing only allowed for MCC Hard Tax Billing elements are allowed only for
9311 Decline MCC 9311.
852 Debt Repayment only allowed for Hard You must be either MCC 6012 or 6051 to
VI transactions on MCCs 6012 Decline designate a Visa transaction as Debt
and 6051 Repayment (debtRepayment element set
to true).
861 Routing Number did not match one Soft The routing number submitted does not
on file for token Decline match the number submitted when the token
was created. Verify the routing number and
resubmit the transaction.
877 Invalid Pay Page Registration Id Hard An eProtect response indicating that the
Decline Registration ID submitted is invalid.
878 Expired Pay Page Registration Id Hard An eProtect response indicating that the
Decline Registration ID has expired (Registration
IDs expire 24 hours after being issued).
879 Merchant is not authorized for Hard Your organization is not authorized to
Pay Page Decline use eProtect.
898 Generic token registration error Soft There is an unspecified token registration
Decline error; contact your Relationship Manager
899 Generic token use error Soft There is an unspecified token use error;
Decline contact your Relationship Manager.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
900 Invalid Bank Routing Number Hard The Direct Debit routing number
Decline submitted with this transaction has failed
validation.
901 Missing Name Hard The customer name is required for SEPA
Decline transactions.
903 Missing Billing Country Code Hard The Billing Country code is required for
Decline SEPA transactions.
905 Missing Email Address Hard The customer email address is required
Decline for SEPA transactions.
906 Missing mandate reference Hard You must provide a Mandate reference
Decline for standard and BYOM recurring SEPA
deposit transactions.
907 Invalid mandate reference Hard The Mandate reference is invalid. It must
Decline conform to the following format: 1 to 35
characters consisting of alphanumeric,
colon, question mark, forward slash,
plus, parenthesis, comas, period, space,
and dash. The applicable regular
expression is: ^[A-Za-z0-9:?/+(),. -]{1,35}$
908 Missing mandate URL Hard You must provide a Mandate URL for
Decline SEPA Bring Your Own Mandate deposit
transactions (both one-time and
recurring).
909 Invalid mandate URL Hard The Mandate URL must start with https
Decline and be followed by 5 to 120 characters
adhering to the following regular
expression: ^https://.{5,120}$
911 Missing mandate signature date Hard You must provide a Mandate signature
Decline date for SEPA Bring Your Own Mandate
deposit transactions (both one-time and
recurring).
912 Invalid mandate signature date Hard You must provide a Mandate signature
Decline date earlier than or the same as the
current date with the following format:
YYYY-MM-DD.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
913 Recurring mandate already exists Hard Worldpay returns this message when you
Decline submit multiple first Bring Your Own
Mandate recurring transactions with the
same mandate reference. The mandate
references among the recurring
transactions for a single merchant must
be unique.
914 Recurring mandate was not found Hard Worldpay returns this message when you
Decline submit a subsequent or final standard
recurring transaction before a first
standard recurring is processed and
confirmed.
915 Final recurring was already Hard Worldpay returns this message when you
received using this mandate Decline submit a first or subsequent recurring
transaction after we received a final
recurring. The life cycle of a recurring
mandate ends after the processing of a
final recurring deposit transaction. This
applies to both standard and Bring Your
Own Mandate recurring transactions.
916 IBAN did not match one on file for Hard Worldpay returns this message when you
mandate Decline submit a subsequent or final recurring
with a different IBAN than the IBAN used
in the first recurring transaction. This
applies to both standard and Bring Your
Own Mandate recurring transactions.
Note: If a customer wants to use a
different IBAN for a recurring SEPA
mandate, they must use a request for
another mandate reference using this
new IBAN.
940 This Funding Instruction results in a Soft There are insufficient funds in the FBO
negative account balance Decline Settlement Account to cover the Funding
Instruction. Wait for additional funds to settle
to the account and then resubmit the
transaction.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
941 Account balance information Soft Typically, this response occurs only for new
unavailable at this time. Decline FBO Settlement accounts that do not yet
have any settled transactions and were not
pre-funded (i.e., no balance yet recorded for
the account). Wait for additional funds to
settle to the account or pre-fund the account
and then resubmit the transaction.
942 The submitted card is not eligible Hard The card you submitted in the Fast
for Fast Access Funding. Decline Access Funding instruction cannot
receive funds using this method.
943 Transaction cannot use both Hard A transaction can not contain both the
ccdPaymentInformation and Decline ccdPaymentInformation and
ctxPaymentInformation ctxPaymentInformation elements.
946 CTX and CCD records are not Hard the ccdPaymentInformation and
allowed for Canadian merchants Decline ctxPaymentInformation elements are not
permitted for Canadian merchants.
950 Decline - Negative Information on Hard An Direct Debit response indicating the
File Decline account is on the negative file.
952 The Merchant Profile does not Hard An Direct Debit response indicating that
allow the requested operation Decline your Merchant Profile does not allow the
requested operation. Contact your
Relationship Manager for additional
information.
953 The account cannot accept ACH Hard An Direct Debit response indicating the
transactions Decline customer’s checking account does not
accept ACH transactions.
954 The account cannot accept ACH Hard An Direct Debit response indicating the
transactions or site drafts Decline customer’s checking account does not
accept ACH transactions or site drafts.
TABLE A-1 Valid Values for the Response and Message Elements (Continued)
Response Response
Code Response Message Type Description
955 Amount greater than limit Hard A Direct Debit response indicating that
specified in the Merchant Profile Decline the dollar amount of this transaction
exceeds the maximum amount specified
in your Merchant Profile. Contact your
Relationship Manager for additional
information.
956 Merchant is not authorized to Hard A Direct Debit response indicating that
perform eCheck Verification Decline your organization is not authorized to
transactions perform eCheck verifications. Contact
your Relationship Manager for additional
information.
957 First Name and Last Name Hard A Direct Debit response indicating that
required for eCheck Verifications Decline the first and last name of the customer is
required for eCheck verifications.
958 Company Name required for Hard A Direct Debit response indicating that
corporate account for eCheck Decline the company name is required for
Verifications verifications on corporate accounts.
959 Phone number required for Hard A Direct Debit response indicating that
eCheck Verifications Decline the phone number of the customer is
required for echeck verifications.
961 Card Brand token not supported Hard This code is returned if the merchant
Decline submits a Visa generated token.
962 Private Label Card not supported Hard This code is returned if the transaction
Decline involves a Visa Private Label card.
Table A-2 contains a list of valid authentication result codes returned by Visa for the Verified by Visa
service or Mastercard for the Mastercard SecureCode service. It specifies which authentication result
values apply to which order sources.
NOTE: The Mastercard Secure Code service only returns values of 0 or 1, indicating a downgrade.
If Mastercard did not return a result code, the 3DS authentication succeeded.
The Discover ProtectBuy service only returns one of the following Authentication Result Codes: 0, 1,
or 2.
Authentication
Result Code Description
Blank CAVV not present or CAVV not verified. Issuer has not selected
CAVV verification option.
0 CAVV could not be verified or CAVV data was not provided when
expected
or (for Mastercard)
Downgrade to non-3DS transaction, Missing or base64 encoded AAV
does not start with j (AAV is invalid for 3dsAuthenticated transaction)
Authentication
Result Code Description
5 Not used
B CAVV passed verification but no liability shift because a) ECI was not
5 or 6 or b) the card type is an excluded (e.g., Commercial Card)
Table A-3 contains a list of AVS response codes that can be returned in the response for a payment
transaction. There are some codes that you may never receive. Code your system to expect codes from
this list. The description is not included in the response.
32 Address unavailable
33 General error
Table A-4 contains a list of American Express Advanced AVS response codes that can be returned as
verification of information supplied in the <name>, <phone> and/or <email> child elements of the
<billToAddress> element. The system returns the AAVS response code in the
<advancedAVSResult> child of the <fraudResult> element.
The code returned has the following format:
• 1st position - name match
• 2nd position - phone match
• 3rd position - email match
• Each position can have one of the following values:
– 0 - No Match (failure)
– 1 - Match
– 2 - Not Sent
– 3 - No Response (unchecked, retry, or service not allowed)
For example, a code of 210 would indicate that the name was not sent, the phone matches, and the email
does not match.
You should code your system to parse all codes from this list. The description is not included in the
response.
AAVS Response
Code Description
000 No Match
012 Phone matches, name does not match, email not sent
021 Email matches, name does not match, phone not sent
AAVS Response
Code Description
102 Name matches, phone does not match, email not sent
120 Name matches, email does not match, phone not sent
201 Email matches, phone does not match, name not sent
202 Phone does not match, name and email not sent
203 Phone does not match, name not sent, no response for
email
210 Phone matches, email does not match, name not sent
220 Email does not match, name and phone not sent
230 Email does not match, name not sent, no response for
phone
AAVS Response
Code Description
302 Phone does not match, no response for name, email not
sent
303 Phone does not match, no response for name and email
320 Email does not match, phone not sent, no response for
name
330 Email does not match, no response for name and phone
333 No response
Table A-5 contains a normalized list of response codes that can be returned when requesting a card
validation check.
• CVV2
• CVC2
• CID
The description is not included in the response.
NOTE: For American Express transactions, if the submitted security code does not match, the
transaction is declined with a Response Reason Code of 352 - Decline CVV2/CID Fail.
CVV2/CVC2/CID
Response Code Description
M Match
N No Match
P Not Processed
This section provides definitions of the triggered rules returned in the Advanced Fraud Results
(advancedFraudResults element) section of the response message (see Example below).
ThreatMetrix uses the rules triggered by each advanced fraud check to determine the device reputation
score, which in turn determines the final review status: Pass, Review, or Fail.
NOTE: The rules/descriptions in this document reflect those used in the generic merchant policy.
Depending upon the policy configured in your merchant profile, some rules may not apply to you, or
additional rules, not defined here, may appear in your results.
Table A-7 provides examples of XML Validation Error Messages. These messages are the value
associated with the message attribute of either a cnpResponse or cnpOnlineResponse, when the
response=“1” (the response attribute).
Example Message (message attribute of Description (line numbers will vary according
cnpOnlineResponse) to the location of the error)
Error validating xml data against the schema on The value on line 13 does not meet the minimum
line 13. The length of the value is 3, but the length requirement for the element as specified in
required minimum is 4. the schema. For example, if you specified 812 as
a value for the <expDate> element, which has a
minLength of 4, the system returns this error
message.
Error validating xml data against the schema on The value on line 18 exceeds the maximum
line 18. The length of the value is 6, but the length requirement for the element as specified in
required maximum is 4. the schema. For example, if you specified 082012
as a value for the <expDate> element, which has
a maxLength of 4, the system returns this error
message.
Error validating xml data against the schema on The value on line 11 is not a valid enumeration for
line 11. The value is not a member of the the specified element. For example, The <type>
enumeration. element allows values of VI, MC, DI, AX, DC, JC,
PP and BL. If you submitted a value of VISA, the
system returns this error message.
Error validating xml data against the schema on The <amount> element does not contains a valid
line 8. Content of element "amount" is value. For example, if you submitted a
incomplete. captureGivenAuth request and included the
amount element without specifying a value, the
system returns this error message.
Error validating xml data against the schema on The submitted transaction failed validation against
line 6 tag name "echeckSale" is not the schema, because an element name was out
allowed. Possible tag names are: of sequence or not allowed in the transaction. The
<authorization>,<capture>,<credit>, error message specifies the invalid element
<sale>,<void> (<echeckSale> in the example), as well as the
possible valid elements.
Example Message (message attribute of Description (line numbers will vary according
cnpOnlineResponse) to the location of the error)
System Error - Call Vantiv Typically, the system returns this error if there
was a problem with authentication due to an error
in the submitted Merchant Id, user, and/or
password.
The problem may also be due to the use of single
quotes around the attribute (merchantId) value.
Error validating xml data against the schema on The URI named in the xmlns= attribute is
line 1. Probably namespace URI of tag incorrect. The problem may also be due to the
"cnpOnlineRequest" is wrong (correct use of single quotes around the attribute value.
one is
Note: The URI may differ based upon the version
"http://www.vantivcnp.com/schema")
of cnpAPI you are using.
Error validating xml data against the schema on The '&' symbol is used in XML to designate
line 12786. The entity name must immediately certain special characters. The error indicates that
follow the'& amp;'in the entity reference. the symbol was submitted without an entity name
(for example, " or &).
Typically, the error occurs when the name or one
of the address lines of the billToAddress element
includes the symbol instead of the entity
reference. For example, “John & Mary Smith”
should be sent as “John & Mary Smith” or
“John and Mary Smith”).
Error validating xml data against the schema on This error is usually an indication of extraneous
line 1. Content is not allowed in prolog. characters appearing in front of the first XML
element. For example, the “?” before the
“<“symbol in the following line would cause this
error to be returned:
?<?xml version="1.0" encoding="utf-8">
Duplicate Batch (Batch ID: 28292109643, session (Batch only) The system has determined that the
sequence: 1, unique ID:) not processed - 29 Batch is a duplicate and therefore not processed.
duplicate transactions (57 total) in a row found. The first part of the message provides the count
Duplicate Batch (Batch ID: 23829210964, session of the greatest number of consecutive duplicate
sequence: 1, unique ID:) not processed - 96.49% transaction in the batch (29 in the example). The
of the transactions (57 total) in the batch are second part of the message the overall
duplicates. percentage of duplicates in the batch (96.49% in
the example).
The limits are more than 10 consecutive duplicate
transactions detected and/or more than 25% of all
transaction in the batch detected as duplicates.
When submitting transactions via Open Access, there are additional HTTP responses and validation
errors that may occur. The table below provides information about these responses/error messages, as
well as some additional errors you may encounter during Online transaction processing.
CAUTION: If you use Open Access (i.e., Transact) to submit Online transactions, you must limit the
message size to a maximum of 20K characters. We reject any transaction containing more than 20K
characters with a XML validation response value of 5.
NOTE: The response value and message in the table represent the values for the response and
message attributes of either a cnpResponse or cnpOnlineResponse.
If Resubmit? = No, you must debug and modify the submitted message prior to resubmission in
order to have any chance of success. Resubmitting the same message will result in the same
failure.
5 Objectionable 200 OK The system has determined Reduce the size of the
content detected. that the submission may message below the 20K
Contact contain objectionable limit and/or contact
ecommercesupport content or the message Worldpay Support
@worldpay.com. exceeds 20K maximum
characters.
N/A N/A 405 Method Not Only HTTP POST method is No - debug or contact
Allowed allowed. Worldpay Support
N/A N/A 404 Not Found An invalid URI was used. No - debug or contact
Verify the URI you are using Worldpay Support
is correct and that you have
not appended any
parameters to the URI.
Table A-9 is a list of ACH Return Reason Codes, which can apply to either Direct Debit transactions, or
Dynamic Payout funding instructions. These codes are not returned in the cnpAPI response messages,
but are visible in iQ on the Direct Debit Returns Received report, as well as the Payment Detail screen
and the Funding Instruction Detail screen.
NOTE: If an Direct Debit is returned for reason Code R01 or R09, it is eligible for redeposit.
ACH Return
Reason Code Description
ACH Return
Reason Code Description
R20 Account does not allow ACH transactions or limit for transactions
has been exceeded
ACH Return
Reason Code Description
R61 Misrouted return - RDFI for original entry has placed incorrect
routing/transit number in RDFI identification field
R68 Untimely return - return was not sent within the established time
frame
R72 Untimely return - dishonored return was not sent within the
established time frame
R73 Timely original return - RDFI certifies the original return entry was
sent within established time frame for original returns
Table A-10 is a list of ACH NOC Change Codes. These codes are included in the daily NOC report made
available to you via sFTP.
ACH NOC
Change Code Description
Table A-11 is a list of Canadian EFT Return Reason Codes. These codes are not returned in the cnpAPI
response messages, but are visible in iQ on the Direct Debit Returns Received report, as well as the
Payment Detail screen and the Funding Instruction Detail screen.
NOTE: Return Reason Codes R901 or R908 are eligible for redeposit. Similarly, Code R900-xx are
Edit rejects, which you can resubmit with corrected information.
Canadian EFT
Return Reason Code Description
Canadian EFT
Return Reason Code Description
This appendix has two parts. The first provides basic information about card numbers, such as length,
prefixes, and validation numbers. The second part provides information about the Luhn Mod-10 algorithm
used to validate account numbers.
CAUTION: The data presented here is for informational proposes only and is subject to change by
the Credit Card Associations/Companies. You should verify the information using additional sources
prior to using it to create or alter any of your business systems, processes, or procedures.
38
39
64
65
60110000-60110999
60112000-60114999
60117400-60117499
60117700-60117999
60118600-60119999
62212600-62292599
62400000-62699999
62820000-62889999
81000000-81719999
4 0 0 5 5 5 0 0 0 0 0 8 1 0 1 9
x2 x2 x2 x2 x2 x2 x2 x2
8 0 0 5 10 5 0 0 0 0 0 8 2 0 2 9
8+ 0+ 0+ 5+ 1+0+ 5+ 0+ 0+ 0+ 0+ 0+ 8+ 2+ 0+ 2+ 9
The following table provides a list of credit card numbers you can use in our Certification environment to
construct your own transactions beyond what is required for certification. These account numbers are
extracted from the Certification tests of Chapter 2 and the transaction examples of Chapter 3. Never use
these account numbers in the live, production environment.
IMPORTANT: Per PCI DSS Requirements and Security Assessment Procedure, Section 6.4.3,
"Production data (live PANs) are not used for testing or development."
This appendix discusses the Worldpay Instruction-Based Dynamic Payout option provided for use by
Payment Facilitators and direct merchants.
NOTE: Only direct merchants with the following MCCs can use Dynamic Payout:
• 4829 (Visa and Mastercard)
• 7800 (Visa and Mastercard)
• 7801 (Visa only)
• 7802 (Visa only)
NOTE: Please also refer to the PayFac Dynamic Payout FAQ document, which contains answers
to numerous topics including payout timing, split platform processing, report availability, and general
process items.
Dynamic Payout is a solution platform that controls the distribution of funds using flexible, customized
instructions defined by you. The solution provides a closed-loop transaction life cycle from payment to
payout. With one connection for payments and payouts, our solution reduces your dependency on other
vendors, minimizing cost associated with PCI and reducing scope.
Dynamic Payout requires you to submit instructions for each payout. You can fund merchants on a fixed
schedule, such as daily, weekly or monthly, or irregular schedule. You can even choose to delay funding
based on contractual or risk related issues.
The Dynamic Payout funding solution has the following capabilities and benefits:
Capabilities:
• Execute payouts for all card brands, including American Express, as early as the next day.
• Determine when to payout.
• Calculate the fees to charge sub-merchants for rendering service. You can use a complex formula or
a tiered billing structure. (Payment Facilitators)
• Charge fees at a transaction level.
• Maintain a reserve on your sub-merchants.
• Split across multiple bank accounts.
Submit Transactions
NOTE: The diagram below does not reflect the Same Day Funding or FastAccess Funding options.
While the diagram money movement for Payment Facilitators, the timing/movement for direct
merchants is similar.
NOTE: The money movement into the Settlement account from card and Direct Debit transactions
is the Net Settled Sales (i.e., Deposits - Refunds). The funds debited from the Operating account is
the total of Interchange + Chargebacks + Assessments + Worldpay Fees for Payment
Facilitators/merchants processing on the eComm platform or just Worldpay fees, if processing on
the Worldpay Core platform.
The cnpAPI file shown in Examples of Funding Instructions on page 908 provides examples of the
transactions used for each type of money movement. The following transaction type are available for your
use:
• Funding Instruction PayFac Credit (FIPC) - used to move funds from the PayFac Settlement
account to the PayFac Operating account.
• Funding Instruction PayFac Debit (FIPD) - used to move funds from the PayFac Operating account
to the PayFac Settlement account.
• Funding Instruction Reserve Credit (FIRC) - used to move funds from the Settlement account to
the Reserve account. Both Payment Facilitators and direct merchant can use this transaction type.
• Funding Instruction Reserve Debit (FIRD) - used to move funds from the Reserve account to the
Settlement account. Both Payment Facilitators and direct merchant can use this transaction type.
• Funding Instruction Sub-merchant Credit (FISC) - used to move funds from the PayFac
Settlement account to the sub-merchant Operating account.
• Funding Instruction Sub-merchant Debit (FISD) - used to move funds from the sub-merchant
Operating account to the PayFac Settlement account.
• Funding Instruction Vendor Credit (FIVC) - used to move funds from the Settlement account to the
Vendor account. Both Payment Facilitators and direct merchant can use this transaction type.
• Funding Instruction Vendor Debit (FIVD) - used to move funds from the Vendor account to the
Settlement account. Both Payment Facilitators and direct merchant can use this transaction type.
• Funding Instruction Physical Check Credit (FICC) - used to move funds from the Settlement
account to the Physical Check account. Both Payment Facilitators and direct merchant can use this
transaction type.
• Funding Instruction Physical Check Debit (FICD) - used to move funds from the Physical Check
account to the Settlement. Both Payment Facilitators and direct merchant can use this transaction
type.
• Funding Instruction Void - used to void a submitted, but unsettled funding instruction. (See Funding
Instruction Void Transactions on page 914.) Both Payment Facilitators and direct merchant can use
this transaction type.
• FastAccess Funding™ - used to transfer funds to certain eligible Mastercard or Visa debit cards.
Transfer of funds takes place within 30 minutes. (See FastAccess Funding on page 905.) Both
Payment Facilitators and direct merchant can use this transaction type.
• Funding Instruction Payout Org Credit - used to move funds from the merchant Settlement
account to the merchant Operating account.
• Funding Instruction Payout Org Debit - used to move funds from the merchant Operating account
to the merchant Settlement account.
• Funding Instruction Customer Credit - used to move funds from the merchant Settlement account
to the customer account.
• Funding Instruction Customer Debit - used to move funds from the customer account to the
merchant Settlement account.
Starting with V11.1, Worldpay provides an additional funding instruction submission window that adds the
capability of same day funding. This means you can submit a funding instruction files (Batch or Online)
before 11:00 AM ET and the funds move the same day. Submissions must also meet the following
conditions for same day processing.
• All transactions, Batch or Online must be for less than $100,000 (single transaction limit).
• The total disbursement to any sub-merchant cannot exceed $100,000 in a single day.
NOTE: If you include a transaction over $100,000, or multiple transactions to a single entity totaling
over $100,000, we mark the transactions as same day, but processing takes place next day.
Because you set the sameDayFunding flag to true, we assess fees for same day funding. To avoid
excess fees, do not attempt to use same day funding for these transactions.
• We only process same day funding batch submissions on non-holiday weekdays (i.e., no weekends
or holidays).
• Batch or Online instructions submitted outside the allowed window are processed as next day funding
instructions.
• You must set the sameDayFunding attribute (of the batchRequest or cnpOnlineRequest) to
true.
• If you miss the submission window with a batch or online file marked for same day funding, we
process it as a normal, next day funded batch and apply only the normal next day funding fee.
The FastAccess Funding feature allows you to fund a sub-merchant within 30 minutes of submitting the
fastAccessFunding transaction by pushing the funds to certain Mastercard or Visa cards held by your
sub-merchant.
NOTE: When pushing funds to a Mastercard, you must include the expDate and
cardValidationNum elements.
The example below uses the token structure to designate the card to which you are pushing the funds.
This transaction type also allows the use of the card structure or the paypage structure in place of the
token structure.
When the Batch or Online transaction arrives, Worldpay performs a front-end check on each Funding
Instruction within a Batch, as well as Online instructions. We verify sufficient account balances to cover
the money movement from each account. If system detects insufficient funds in any account impacted by
a funding instruction, Worldpay rejects the individual Online instruction or the entire Batch. The returned
error message provides information about the account lacking funds. We also perform a back-end
balance check on Batch files ready for delivery upstream. In this case, if the money movement of any
Batch results in an insufficient balance in any account, we reject all Batches.
NOTE: To avoid possible account balance verification issues, Worldpay recommends you submit
debit transactions first, in a separate Session file from the credit transactions.
Also, keep in mind that the system may not handle transactions within a Batch sequentially. This is
likewise true for Batches within a Session, but we do handle Session files in the order sent. To
guarantee sequential handling of Batch files, you must submit the Batch individually in Session files.
For example, you submit a Batch of funding instructions that include a number of reserveCredit and
reserveDebit transactions, such that the net funds movement (credits - debits) results in $200,000
being moved from the Reserve Account to the Settlement Account. If the current balance in the Reserve
account is less than $200,000, The front-end checks detect this situation and reject the entire Batch with
a reject message similar to:
<cnpResponse version="12.2" xmlns="http://www.vantivcnp.com/schema" id="691"
response="1" message="Over Balance (Cnp ID: 819812345678357001, session sequence: 2,
unique ID: null) not processed - The specified Funding Instructions would result in a
negative balance in your Reserve Account. Current settlement balance:20000000, current
reserve balance:15000000, current physical check balance:990000"
cnpSessionId="810123456789357102"></cnpResponse>
NOTE: The balance amounts shown in the example above are in cents. For example, the reserve
account balance of 15000000 is $150000.00.
To use Instruction-Based Funding, you must code to cnpAPI V9.0 or above for Batch, or V11.3 or above
for Online. The example below shows a Batch containing the various funding instruction you can use. Do
not mix other transaction types in a Batch containing funding instructions.
<accType>Checking</accType>
<accNum>123456789012</accNum>
<routingNum>114567895</routingNum>
</accountInfo>
<customIdentifier>Co_Descriptor</customIdentifier>
</submerchantCredit>
<!-- Example of PayFac debiting the Submerchant. Funds move from the Submerchant
Account to the PayFac Settlement Account. -->
<submerchantDebit id="abc12348" reportGroup="SubMerchantRefund">
<fundingSubmerchantId>SomeSubMerchant</fundingSubmerchantId>
<submerchantName>Some Merchant Inc.</submerchantName>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440003</fundsTransferId>
<amount>4000</amount>
<accountInfo>
<accType>Checking</accType>
<accNum>123456789012</accNum>
<routingNum>114567895</routingNum>
</accountInfo>
<customIdentifier>Co_Descriptor</customIdentifier>
</submerchantDebit>
<!-- Example of PayFac adding money into reserves. Funds move from the PayFac
Settlement Account to the Reserve Account. -->
<reserveCredit id="abc12349" reportGroup="Reserve">
<fundingSubmerchantId>SomeSubMerchant</fundingSubmerchantId>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440004</fundsTransferId>
<amount>5000</amount>
</reserveCredit>
<!-- Example of PayFac getting money from Reserves. Funds move from the Reserve
Account to the PayFac Settlement Account. -->
<reserveDebit id="abc12350" reportGroup="SubMerchantRefund">
<fundingSubmerchantId>SomeSubMerchant</fundingSubmerchantId>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440005</fundsTransferId>
<amount>6000</amount>
</reserveDebit>
<!-- Example of PayFac funding the vendor. Funds move from the PayFac Settlement
Account to the Vendor Account. -->
<vendorCredit id="abc12351" reportGroup="vendorPayment">
<fundingSubmerchantId>SomeVendor</fundingSubmerchantId>
<vendorName>Some Vendor Inc.</vendorName>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440006</fundsTransferId>
<amount>7000</amount>
<accountInfo>
<accType>Checking</accType>
<accNum>123456789012</accNum>
<routingNum>114567895</routingNum>
</accountInfo>
</vendorCredit>
<!-- Example of PayFac debiting the vendor account. Funds move from the Vendor
Account to the Payfac Settlement Account. -->
<vendorDebit id="abc12352" reportGroup="vendorReturn">
<fundingSubmerchantId>SomeVendor</fundingSubmerchantId>
<vendorName>Some Vendor Inc.</vendorName>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440007</fundsTransferId>
<amount>8000</amount>
<accountInfo>
<accType>Checking</accType>
<accNum>123456789014</accNum>
<routingNum>114567895</routingNum>
</accountInfo>
</vendorDebit>
<!-- Example of PayFac funding the Physical Check Account. Funds move from the
PayFac Settlement Account to the Physical Check Account -->
<physicalCheckCredit id="abc12353" reportGroup="physicalCheck">
<fundingSubmerchantId>SomeSubMerchant</fundingSubmerchantId>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440008</fundsTransferId>
<amount>9000</amount>
</physicalCheckCredit>
<!-- Example of PayFac debiting the Physical Check account. Funds move from the
Physical Check Account to the PayFac Settlement Account-->
<physicalCheckDebit id="abc12354" reportGroup="physicalCheckDebit">
<fundingSubmerchantId>SomeSubMerchant</fundingSubmerchantId>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440009</fundsTransferId>
<amount>10000</amount>
</physicalCheckDebit>
</batchRequest>
</cnpRequest>
</submerchantDebit>
<!-- Example of Merchant adding money into reserves. Funds move from the
Settlement Account to the Reserve Account. -->
<reserveCredit id="abc12349" reportGroup="Reserve">
<fundingCustomerId>SomeCustomer</fundingCustomerId>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440004</fundsTransferId>
<amount>5000</amount>
</reserveCredit>
<!-- Example of Merchant getting money from Reserves. Funds move from the
Reserve Account to the Settlement Account. -->
<reserveDebit id="abc12350" reportGroup="SubMerchantRefund">
<fundingCustomerId>SomeCustomer</fundingCustomerId>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440005</fundsTransferId>
<amount>6000</amount>
</reserveDebit>
<!-- Example of Merchant funding the vendor. Funds move from the Settlement
Account to the Vendor Account. -->
<vendorCredit id="abc12351" reportGroup="vendorPayment">
<fundingCustomerId>SomeVendor</fundingCustomerId>
<vendorName>Some Vendor Inc.</vendorName>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440006</fundsTransferId>
<amount>7000</amount>
<accountInfo>
<accType>Checking</accType>
<accNum>123456789012</accNum>
<routingNum>114567895</routingNum>
</accountInfo>
</vendorCredit>
<!-- Example of Merchant debiting the vendor account. Funds move from the Vendor
Account to the Settlement Account. -->
<vendorDebit id="abc12352" reportGroup="vendorReturn">
<fundingCustomerId>SomeVendor</fundingCustomerId>
<vendorName>Some Vendor Inc.</vendorName>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440007</fundsTransferId>
<amount>8000</amount>
<accountInfo>
<accType>Checking</accType>
<accNum>123456789014</accNum>
<routingNum>114567895</routingNum>
</accountInfo>
</vendorDebit>
<!-- Example of Merchant funding the Physical Check Account. Funds move from the
Settlement Account to the Physical Check Account -->
<physicalCheckCredit id="abc12353" reportGroup="physicalCheck">
<fundingCustomerId>SomeCustomer</fundingCustomerId>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440008</fundsTransferId>
<amount>9000</amount>
</physicalCheckCredit>
<!-- Example of debiting the Physical Check account. Funds move from the
Physical Check Account to the Settlement Account-->
<physicalCheckDebit id="abc12354" reportGroup="physicalCheckDebit">
<fundingCustomerId>SomeCustomer</fundingCustomerId>
<fundsTransferId>123e4567-e89b-12d3-a456-426655440009</fundsTransferId>
<amount>10000</amount>
</physicalCheckDebit>
</batchRequest>
</cnpRequest>
Online Funding Instructions have the same structure as Batch transactions, except the parent element is
cnpOnlineRequest as shown in the example below.
All Funding Instruction responses, except the Void response, have the identical structure other than the
parent element. The example shown below, for a payfacCreditResponse illustrates all response
structures.
NOTE: When you issue a Funding Instruction Void, allow 30 minutes for the system to add the
amount of the void back to your Settlement Account.
You can not void a Fast Access Funding Instruction.
<responseTime>2017-09-02T15:51:54</responseTime>
<message>Approved</message>
</fundingInstructionVoidResponse>
</cnpOnlineResponse>
In order to validate of your cnpAPI structure for Funding Instruction transaction types, submit two
Batches, one containing credit transaction and one containing debit transactions, using the data supplied
in Table D-1. To validate your Online message structure, use the supplied data to submit Online versions
of the referenced transactions.
NOTE: Although the tests separate debit and credit transactions, there are no system requirements
to do so when constructing your Batches.
For required fields without supplied data, submit any value valid for the element.
To test the CTX Information functionality, you must introduce the transactions below in Batch format.
Although the tests transactions specified are submerchantCredit transactions, you can use the same
data to test submerchantDebit, vendorCredit, and vendorDebit transactions.
NOTE: For the approved test below, your Implementation Consultant verifies the receipt of the
ctxPaymentDetail elements included in the transaction.
You are required to receive the following Scheduled Secure Reports when using the Dynamic Payout
feature:
• Funding Reject Report by ACH Return Date - contains data about failures to transfers funds to
Sub-merchants accounts. The report is produced daily.
• NoC Report by ACH Return Date - contains NoC data detailing changes in Sub-merchants accounts
discovered during funds transfer operations. The report is produced daily.
• Account Balance Report- contains data about balances in various accounts used by this solution.
The report is produced daily, each hour between 1:00PM ET and 9:00PM ET.
• Tax Id Mismatch Report (same as above) - contains data about Legal Entity Tax Identification
Numbers validation failures. The report is produced daily.
• Funding Instruction Confirmation Report - provides data about all settled funding instructions from
the previous day.
• Balance Summary Report - provides a summary of the balance in the PayFac account for the
previous day.
In addition to the required reports listed above, you can use the SSR to track transactional data,
chargebacks, and to assist in reconciliation operations. Some of these reports are:
• Net Settled Sales by Transaction Report - includes all settled and conveyed transactions (deposits
and refunds), including Direct Debit transactions. The report can be scheduled based upon either
Activity (post) or Settlement (funds transfer) day.
• Session Report - includes all transactions for a particular activity post day and allows reconciliation
against submitted transactions.
• Transaction Summary Report - includes summarized deposits and refunds (both settled and
conveyed) submitted by the merchant and broken down by purchase currency, reporting groups, and
payment type for a particular activity post day.
• Activity Report - includes summarized financial data for transactions (deposits and refunds) based
upon activity post date and broken down by Reporting Group and payment type.
• Settlement Report - includes summarized financial data for settled transactions (deposits and
refunds) based upon settlement (funds transfer) date and broken down by Reporting Group and
payment type.
• Chargeback Financial Report - includes detailed information about financial impacting chargeback
activities for a given activity (post) or fund transfer (settlement) date.
• Chargeback Status Report - provides details of all chargeback activities for a designated activity
(post day) date or date range in the case of a monthly report. This report is run daily or monthly.
• Fee Report - provides a detailed breakdown of all Worldpay and Passthrough (Interchange) fees
associated with transactions for a given activity (post) or fund transfer (settlement) date.
• Visa Fixed Acquirer Network Fee Report - a PayFac report that provides details of Visa FANF fees
assessed (by Legal Entity). Worldpay produces the report on the 8th of each month. Each report
contains data for the prior month.
• Mastercard per Location Fee Report - a PayFac report that provides details of location fees
assessed by Legal Entity and Sub-merchant. Worldpay produces the report on the 15th of each
month. Each report contains data for the prior month.
NOTE: For additional information about these and other reports, please refer to the latest version of
the Worldpay eComm Scheduled Secure Reports Reference Guide.
The Internal Revenue Service requires that “a payment settlement entity (PSE) must file Form 1099-K,
Payment Card and Third Party Network Transactions, for payments made in settlement of reportable
payment transactions for each calendar year.”
Worldpay issues 1099-Ks to e-commerce merchants, Payment Facilitators, and sub-merchants who are
enabled for Dynamic Payout. Prior to issuing 1099-Ks, it is the responsibility of the Payment Facilitator to
provide and validate sub-merchant Tax ID information to ensure that the validation process performed by
Worldpay through IRS.gov is successful.
If the Tax ID validation fails, it is indicated in the Legal Entity Background Check Results panel of the
PayFac Portal. You can also view the PayFac Tax Id Validation Report, available through the
Scheduled Secure Report (SSR) service, to determine if a Legal Entity Tax ID Validation has failed. This
report only applies to legal entities that have a sub-merchant funded through our platform, and is
produced daily.
You can re-submit the sub-merchant request when certain Tax ID validation errors occur using the Edit
button at the top of the View Sub-merchant page of the PayFac Portal to edit and re-submit Tax ID
information.
password, 648 R
payerId, 649
payFacCredit, 650, 657 Recovery, 12
payFacCreditResponse, 651, 658 Recurring Engine, 18
payFacDebit, 652, 659 recurringRequest, 693
payFacDebitResponse, 653, 660 recurringResponse, 693, 694
paymentAccountReferenceNumber, 654 recurringTxnId, 695
paymentDataType, 655 recycleAdvice, 696
paypage, 661 recycleAdviceEnd, 697
paypageRegistrationId, 662 recycleBy, 698
PayPal recycleEngineActive, 699
Authorization lifespan, 198 recycleId, 700
paypal, 663 recycling, 701
payPalNotes, 664 Recycling Engine, 12
payPalOrderComplete, 665 Recycling Engine and Auth Reversal, 71, 78
persistent connection timeout, 92 recyclingRequest, 703
phone, 666 redirectToken, 704
physicalCheckCredit, 667 redirectUrl, 705
physicalCheckCreditResponse, 668 refundReversal, 707
unitOfMeasure, 789 X
unload, 790
unloadResponse, 791 XML elements
unloadReversal, 792 accNum, 324
unloadReversalResponse, 793 accountInfo, 325
updateAddOn, 794 accountInformation, 326
updateCardValidationNumOnToken, 796 accountNumber, 328
updateCardValidationNumOnTokenResponse, accountNumberLength, 329
797 accountPasshash, 330
updatedCard, 795 accountRangeId, 331
updateDiscount, 798 accountUpdate, 332
updatedToken, 806 accountUpdateFileRequestData, 333
updatePlan, 799 accountUpdater, 334
updatePlanResponse, 800 accountUpdateResponse, 338
updateSubscription, 801 accountUpdateSource, 339
updateSubscriptionResponse, 805 accType, 340
url, 807 actionReason, 341
user, 808 activate, 342
activateResponse, 343
V activateReversal, 344
activateReversalResponse, 345
Value Added Services active, 346
Fraud Toolkit, 28 addOnCode, 347
Issuer Insights, 24 addressLine1, 348
vendorCredit, 809 advancedAVSResult, 349
vendorCreditResponse, 810 advancedFraudChecks, 350
vendorDebit, 811 advancedFraudResults, 351
vendorDebitResponse, 812 affiliate, 352
vendorName, 813 affluence, 353
verificationCode, 814 allowPartialAuth, 354
verify, 815 amount, 355
version, 816 androidpayResponse, 356
virtualAccountNumber, 817 applepay, 357
virtualGiftCard, 818 applepayResponse, 358
virtualGiftCardBin, 819 applicationData, 359
virtualGiftCardResponse, 820 applicationExpirationDate, 360
Visa applicationPrimaryAccountNumber, 361
Authorization lifespan, 198 approvedAmount, 362
visionAmount, 821 authAmount, 363
void, 822 authCode, 364
voidResponse, 823 authDate, 365
volume certification testing, 189 authenticatedByMerchant, 366
authentication, 367
W authenticationResult, 369
authenticationTransactionId, 370
wallet, 824 authenticationValue, 371
walletSourceType, 825 authInformation, 372
walletSourceTypeId, 826 authorization, 373