# Account Updater elements
Each of the following sections define a particular element, its relationship to other elements (parents and children), as well as any attributes associated with the element.
## accountUpdater
details
summary
More details
The `accountUpdate` element is the parent element for all Account Updater request transactions. You can use this only with batch transactions.
#### Parent elements:
[batchRequest](#batchrequest)
#### Attributes:
| Attribute Name | Type | Required? | Description |
| --- | --- | --- | --- |
| id | String | Yes | A unique identifier assigned by the presenter and mirrored back in the response.minLength = N/AmaxLength = 25 |
| customerId | String | No | A value assigned by the merchant to identify the consumer.minLength = N/AmaxLength = 50 |
| reportGroup | String | Yes | Required attribute that defines the merchant sub-group in the user interface where this transaction will be displayed.minLength = 1maxLength = 25 |
#### Child elements: (Required)
[`orderId`](#orderid), [`cardOrToken`](#cardortoken) (allows the substitution of either the `card`or `token` elements)
## accountUpdateFileRequestData
details
summary
More details
The `accountUpdateFileRequestData` element is a child of the `RFRRequest`element, required when requesting the response file for an Account Updater submission.
#### Parent elements:
[RFRRequest](#rfrrequest)
#### Attributes:
None
#### Child elements:
Required: [merchantId](#merchantid)
Optional: [postDay](#postday)
#### accountUpdateFileRequestData Structure
```
Merchant ID
Post Date
```
## accountUpdateResponse
details
summary
More details
The `accountUpdaterResponse` element is the parent element for all Account Updater responses transactions. You can use this only with Batch transactions.
#### Parent elements:
[batchResponse](#batchresponse)
#### Attributes:
| Attribute Name | Type | Required? | Description |
| --- | --- | --- | --- |
| id | String | Yes | The response returns the same value submitted in the accountUpdate transaction.minLength = N/AmaxLength = 25 |
| customerId | String | No | The response returns the same value submitted in the accountUpdate transaction.minLength = N/AmaxLength = 50 |
| reportGroup | String | Yes | The response returns the same value submitted in the accountUpdate transaction.minLength = 1maxLength = 25 |
#### Child elements: (Required)
[`cnpTxnId`](#cnptxnid),[`orderId`](#orderid), [`response`](#response), [`responseTime`](#responsetime), [`message`](#message)
#### Child elements: (Optional)
[`originalCard`](#originalcard), [`updatedCard`](#updatedcard), [`originalToken`](#originaltoken), [`updatedToken`](#updatedtoken)
## authenticatedShopperID
details
summary
More details
The `authenticatedShopperID` element is an optional child of the `accountUpdate` element and defines the value of the authenticated customer identifier. This value applies only to merchants submitting Account Update requests on the WPG platform.
**Type**= String; **minLength**=1; **maxLength**=64
**Parent elements (optional)**
token
**Attributes:**
None
**Child elements**
None
## authentication
details
summary
More details
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.
#### Parent elements:
[`cnpOnlineRequest`](#cnprequest), [`cnpRequest`](#cnprequest)
#### Attributes:
None
#### Child elements:
Required: [`user`](#user), [`password`](#password)
#### authentication Structure
```
User Name
Password
```
## batchRequest
details
summary
More details
This is the root element for all cnpAPI Batch requests.
#### Parent elements:
[cnpRequest](#cnprequest)
#### Attributes:
There are a number of additional attributes listed in the schema for this element, but you do not need them for Account Updater transactions.
| Attribute Name | Type | Required? | Description |
| --- | --- | --- | --- |
| id | String | No | A unique string to identify this batchRequest within the system.minLength = N/AmaxLength = 50 |
| numAccountUpdates | Integer | No | Defines the total count of Account Update transactions in the batchRequest.minLength = N/AmaxLength = N/A |
| merchantId | String | Yes | A unique string to identify the merchant within the system.minLength = N/AmaxLength = 50 |
#### Child elements:
Required: [authentication](#authentication),[accountUpdate](#accountupdate)
## batchResponse
details
summary
More details
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`](#cnpresponse)
#### Attributes:
| Attribute Name | Type | Required? | Description |
| --- | --- | --- | --- |
| id | String | No | In the acknowledgment message, the response returns the same value submitted in the batchRequest. This attribute is not returned in the AU completion response message.minLength = N/AmaxLength = 25 |
| cnpBatchId | Long | Yes | A unique value assigned by us to identify the batch.minLength = N/AmaxLength = 19 |
| merchantId | String | Yes | The response returns the same value submitted in the authorization transaction.minLength = 1maxLength = 50 |
#### Child elements:
Required: [`accountUpdateResponse`](#accountupdateresponse)
## bin
details
summary
More details
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.
Type = String; minLength = 0; maxLength = 6
#### Parent elements:
The `bin` element is an optional child of each listed parent element.
See [`originalToken`](#originaltoken) and [`updatedToken`](#updatedtoken)
#### Attributes:
None
#### Child elements:
None
## card
details
summary
More details
The `card` element defines payment card information through its child elements.
#### Parent elements:
[accountUpdate](#accountupdate)
#### Attributes:
None
#### Child elements:
Required: [`type`](#type), [`number`](#number), [`expDate`](#expdate)
#### card Structure - Account Updater
```
Card Type Abbreviation
Account Number
Expiration Date
```
## cardOrToken
details
summary
More details
The `cardOrToken` element 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`](#accountupdate)
#### Substitution Options:
[`card`](#card), [`token`](#token)
## cnpRequest
details
summary
More details
This is the root element for all cnpAPI Batch requests.
### Parent elements:
None
Attributes:
| Attribute Name | Type | Required? | Description |
| --- | --- | --- | --- |
| version | String | Yes | Defines the cnpAPI schema version against which the XML is validated. The current version is 7.3, but you may be using an older version.minLength = N/AmaxLength = 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](http://www.vantivcnp.com/schema).minLength = N/AmaxLength = 38 |
| id | String | No | A unique string to identify the session within the system.minLength = N/AmaxLength = 25 |
| numBatchRequests | Integer | Yes | Defines the total number of batchRequest children included in the cnpRequest. If the cnpRequest contains only an RFRRequest, then set this attribute to “0”. |
### Child elements:
Required: [`authentication`](#authentication)
One of the following required: [batchRequest](#batchrequest), [RFRRequest](#rfrrequest)
## cnpResponse
details
summary
More details
This is the root element for all cnpAPI Batch responses.
#### Parent elements:
None
#### Attributes:
| Attribute Name | Type | Required? | Description |
| --- | --- | --- | --- |
| version | String | Yes | Defines the cnpAPI schema version against which we validate the XML message.minLength = N/AmaxLength = 10 |
| id | String | No | The response returns the same value submitted in the authorization transaction.minLength = N/AmaxLength = 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/AmaxLength = 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.minLength = N/AmaxLength = 512 |
| cnpSessionId | Long | Yes | A unique value assigned by us to identify the session.minLength = N/AmaxLength = 19 |
#### Child elements:
One of the following required: [batchResponse](#batchresponse), [RFRResponse](#rfrresponse)
## cnpToken
details
summary
More details
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.
Type = String; minLength = 13; maxLength = 25
#### Parent elements:
The `cnpToken` element is an optional child of each listed parent element.
[originalToken](#originaltoken), [`updatedToken`](#updatedtoken)
#### Attributes:
None
#### Child elements:
None
## cnpTxnId
details
summary
More details
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:
Required: [`accountUpdateResponse`](#accountupdateresponse)
#### Attributes:
None
#### Child elements
None
## expDate
details
summary
More details
The `expDate` element is a child of the card element, which specifies the expiration date of the card and is required for card-not-present transactions.
Type = String; minLength = 4; maxLength = 4
#### Parent elements:
[`card`](#card), [`token`](#token)
#### Attributes:
None
#### Child elements:
None
## merchantId
details
summary
More details
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`](#accountupdatefilerequestdata)
#### Attributes:
None
#### Child elements:
None
Several elements use `merchantId` as an attribute, including `batchRequest`, `batchResponse`, and `cnpOnlineRequest`.
## message
details
summary
More details
The `message` element contains a brief definition of the response code returned for the transaction.
For a complete list of response codes and associated messages, please refer to the Worldpay eComm cnpAPI Reference Guide.
Type = String; minLength = N/A; maxLength = 512
#### Parent elements:
[`accountUpdateResponse`](#accountupdateresponse)
Attributes:
None
#### Child elements:
None
## number
details
summary
More details
The `number` element is a required child of the `card` element, used for card-not-present transactions and Account Update transactions. It is also an optional child of the `accountInformation` element, used in Authorization and Sale responses. It defines the account number associated with the transaction.
Type = String; minLength = 13; maxLength = 25
#### Parent elements:
[`card`](#card)
#### Attributes:
None
#### Child elements:
None
## orderId
details
summary
More details
The `orderId` element defines a merchant-assigned value representing the order in the merchant’s system.
Type = String; minLength = N/A; maxLength = 25<
#### Parent elements:
[`accountUpdate`](#accountupdate), [`accountUpdateResponse`](#accountupdateresponse)
#### Attributes:
None
#### Child elements:
None
## originalCard
details
summary
More details
The `originalCard` element is an optional child of the `accountUpdateResponse` element, which contains child elements providing the original information for the submitted card.
#### Parent elements:
[`accountUpdateResponse`](#accountupdateresponse)
#### Attributes:
None
#### Child elements:
[`type`](#type), [`number`](#number), [`expDate`](#expdate)
#### originalCard Structure
```
Old Card Type
Old Account Number
Old Expiration Date
```
## originalToken
details
summary
More details
The `originalToken` element is an optional child of the `accountUpdateResponse` element, which contains child elements providing the original information for the submitted token.
#### Parent elements:
[`accountUpdateResponse`](#accountupdateresponse)
#### Attributes:
None
#### Child elements:
[`cnpToken`](#cnptoken) or [`tokenUrl`](#tokenurl), [`expDate`](#expdate), [`type`](#type), [`bin`](#bin)
#### originalToken Structure
```
Old Token Number
Old Expiration Date
Old Card Type
Old Card BIN
```
## password
details
summary
More details
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`](#authentication)
#### Attributes:
None
#### Child elements:
None
## postDay
details
summary
More details
The `postDay` element is an optional child of the `accountUpdateFileRequestData` element that defines the date you submitted the Account Updater request. The format is YYYY-MM-DD.
This is also the same date that we created the Account Updater acknowledgment file.
Type = Date; minLength = N/A; maxLength = 10
#### Parent elements:
[`accountUpdateFileRequestData`](#accountupdatefilerequestdata)
#### Attributes:
None
#### Child elements:
None
## response
details
summary
More details
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 Appendix A of the Worldpay eComm cnpAPI Reference Guide .
Type = String; minLength = N/A; maxLength = 3
#### Parent elements:
[`accountUpdateResponse`](#accountupdateresponse)
#### Attributes:
None
#### Child elements:
None
## responseTime
details
summary
More details
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 = String; minLength = N/A; maxLength = 19
#### Parent elements:
[`accountUpdateResponse`](#accountupdateresponse)
#### Attributes:
None
#### Child elements:
None
## RFRRequest
details
summary
More details
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 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 RFR Response 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`](#cnprequest)
#### Attributes:
None
#### Child elements: (Choice of)
`cnpSessionId` or [`accountUpdateFileRequestData`](#accountupdatefilerequestdata)
#### RFRRequest Structure - Batch
```
Session ID
```
#### RFRRequest Structure - Account Updater
```
Merchant ID
Post Date
```
## RFRResponse
details
summary
More details
The `RFRResponse` element is an optional child of a `cnpResponse` element returned in response to a RFRRequest.
#### Parent elements:
[cnpResponse](#cnpresponse)
#### Attributes:
| Attribute Name | Type | Required? | Description |
| --- | --- | --- | --- |
| response | String | Yes | The RFR Response Code indicating the result of the RFR request.minLength = N/AmaxLength = 3 |
| message | String | Yes | A brief definition of the response code returned for this transaction.minLength = N/AmaxLength = 512 |
#### Child elements:
None
## token
details
summary
More details
The `token` element replaces the card element in tokenized transactions and defines the tokenized payment card information.
#### Parent elements:
[`accountUpdate`](#accountupdate)
#### Attributes:
None
#### Child elements:
Required: [`cnpToken`](#cnptoken) or [`tokenUrl`](#tokenurl)
Optional: [`expDate`](#expdate)
## tokenUrl
details
summary
More details
The `tokenUrl` element is an optional child of the token, originalToken, updatedToken elements. You use it to submit the token URL value when submitting an Account Updater request via WPG (Worldpay Gateway). This value must use the following pattern: `http.?://./.`
Type = String; minLength = N/A; maxLength = 400
- You can only use the tokenURL element in an Account Updater request, when requesting the Account Updater service from WPG.
#### Parent elements:
[`updatedToken`](#updatedtoken), [`originalToken`](#originaltoken)
#### Attributes:
None
#### Child elements:
None
## type
details
summary
More details
This `type` element defines the type of account used in the transaction in terms of card association, card company, Bill Me Later, or PayPal. From an Account Updater perspective, MC, VI, and DI are the only valid enumerations.
- Please refer to the Worldpay eComm cnpAPI Reference Guide for information about other uses of the `type` element.
Type = String (Enum); minLength = N/A; maxLength = 2
#### Parent elements:
[`originalCard`](#originalcard), [`updatedCard`](#updatedcard), [`card`](#card), [`originalToken`](#originaltoken), [`updatedToken`](#updatedtoken)
#### Attributes:
None
#### Child elements:
None
#### Enumerations:
| Enumeration | Description |
| --- | --- |
| MC | MasterCard |
| VI | Visa |
| DI | Discover |
## updatedCard
details
summary
More details
The `updatedCard` element is an optional child of the `accountUpdateResponse` element, which contains child elements providing the updated information for the submitted card.
#### Parent elements:
[`accountUpdateResponse`](#accountupdateresponse)
#### Attributes:
None
#### Child elements:
[`type`](#type), [`number`](#number), [`expDate`](#expdate)
#### originalCard Structure
```
Card Type
New Account Number
New Expiration Date
```
- The `updatedCard` element may also contain the value of “N/A” for the `type`, `number`, and `expDate` element.
## updatedToken
details
summary
More details
The `updatedToken` element is an optional child of the `accountUpdateResponse` element, which contains child elements providing the updated information for the submitted token.
#### Parent elements:
[`accountUpdateResponse`](#accountupdateresponse)
#### Attributes:
None
#### Child elements:
[`cnpToken`](#cnptoken) or [`tokenUrl`](#tokenurl), [`expDate`](#expdate), [`type`](#type), [`bin`](#bin)
#### updatedToken Structure
```
New Token Number
New Expiration Date
Card Type
Card BIN
```
- The `updatedToken` element may also contain the value of “N/A” for the `cnpToken`, `expDate`, and `type` elements.
## user
details
summary
More details
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`](#authentication)
### Attributes:
None
### Child elements:
None