| Secure Acceptance Web Mobile: Field Mapping Guide | M: Mandatory O: Optional N/A: Not required |
||||||||||||||||||
| Request Fields | |||||||||||||||||||
| Field Information | Comparative value for other CyberSource Services | Which fields are needed for which service | |||||||||||||||||
| Secure Acceptance Field Name | Collected in Web/Mobile | Data Type & Length | Permitted values | Comments | Links | Legacy HOP/SOP Field Names |
SO API Field Names |
Accept Payments | Accept Payments & Create a Payment Token | Create a Payment Token | Update a Payment Token | Make a token based payment | Set up a Recurring Billing series of payments | Decision Manager fraud protection | Payment Types | ||||
| access_key | No | String (32) | {key generated in UBC} | See ' Creating a Security Key' section of Configuration Guide | Link | ### Does not exist ### | ### Does not exist ### | M | M | M | M | M | M | M | All | ||||
| profile_id | No | String (7) | {string, created in UBC} | See ' Creating a Web/Mobile Profile' section of Configuration Guide. Must be exactly 7 characters in length. | Link | ### Does not exist ### | ### Does not exist ### | M | M | M | M | M | M | M | All | ||||
| signature | No | - | {Base64 Signature} | Generated using the signing method for the access_key field supplied. | - | ### Does not exist ### | ### Does not exist ### | M | M | M | M | M | M | M | All | ||||
| signed_date_time | No | String (20) | {UTC Date & Time format} | Your system time must be accurate to avoid payment processing errors related to the signed_date_time field. | - | ### Does not exist ### | ### Does not exist ### | M | M | M | M | M | M | M | All | ||||
| signed_field_names | No | Variable | {Comma separated list of signed field names} | The names of all fields submitted must be included in this field or the unsigned_field_names field. To avoid increasing PCI DSS scope, do not sign the card_number or card_cvn fields. | - | ### Does not exist ### | ### Does not exist ### | M | M | M | M | M | M | M | All | ||||
| unsigned_field_names | No | Variable | {Comma separated list of unsigned field names} | Included any unsigned field names you submit with the request - e.g. card_number. Included 'unsigned_field_names' in the signed_field_names field. | - | ### Does not exist ### | ### Does not exist ### | M | M | M | M | M | M | M | All | ||||
| transaction_uuid | No | String (50) | {Any} | You should generate a unique reference for each transaction. We recommend, b | Link | ### Does not exist ### | ### Does not exist ### | M | M | M | M | M | M | M | All | ||||
| locale | No | String (5) | - | Specifies the language of the checkout experience. See 'Localization' section of the Configuration guide. | Link | ### Does not exist ### | ### Does not exist ### | M | M | M | M | M | M | M | All | ||||
| transaction_type | No | String (60) | n authorization n sale n authorization,create_payment_token n sale,create_payment_token n authorization,update_payment_token n sale,update_payment_token n create_payment_token |
In SA this is a Comma delimited string of requested
services eg. transaction_type=authorization,sale In SOAPI this is a list of service named values with a true/false value eg. ccAuthService_run=true ccCaptureService_run=true |
- | orderPage_transactionType | ### Does not exist ### | M | M | M | M | M | M | M | All | ||||
| amount | No | String (50) | .1234567890 | Total amount for the order. Must be greater than or equal to zero. Where line item detail is provided, this value must equal the total amount of each line item multiplied by their quantity, and include the tax amount. | - | amount | purchaseTotals_grandTotalAmount | M | M | O | O | M | O | O | All | ||||
| bill_payment | No | String (5) | true,false | True marks payment as a VISA Bill Payment, or in conjunction with the deb_indicator field, a VISA Debt Repayment. | Link | ### Does not exist ### | ccAuthService_billPayment | O | O | N/A | N/A | O | N/A | N/A | Card | ||||
| debt_indicator | No | String (5) | true,false | True marks payment as a VISA Debt Repayment, providing bill_payment field is also set to True. | Link | ### Does not exist ### | debtIndicator | O | O | N/A | N/A | O | N/A | N/A | Card | ||||
| bill_to_address_city | Yes | String (50) | - | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | billTo_city | billTo_city | O | O | O | O | O | O | O | All | ||||
| bill_to_address_country | Yes | String (2) | {2 letter ISO Country Code} | Check which fields are
required by your processor, and pass in or set to 'Required' in the EBC, as
appropriate. If US or CA entered, this restricts the bill_to_address_state field to certain Territory or Country codes. |
Link | billTo_country | billTo_country | M | M | M | M | O | M | O | All | ||||
| bill_to_address_line1 | Yes | String (60) | - | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | billTo_street1 | billTo_street1 | O | O | O | O | O | O | O | All | ||||
| bill_to_address_line2 | Yes | String (60) | - | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | billTo_street2 | billTo_street2 | O | O | O | O | O | O | O | All | ||||
| bill_to_address_postal_code | Yes | String (10) | - | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | billTo_postalCode | billTo_postalCode | O | O | O | O | O | O | O | All | ||||
| bill_to_address_state | Yes | {See notes} | {2 letter state code for US and CA, otherwise string 50} | Check which fields are
required by your processor, and pass in or set to 'Required' in the EBC, as
appropriate. String (2) when country is US or CA, otherwise String (50) |
Link | billTo_state | billTo_state | O | O | O | O | O | O | O | All | ||||
| bill_to_company_name | Yes | String (40) | - | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | billTo_company | billTo_company | O | O | O | O | O | O | O | All | ||||
| bill_to_email | Yes | String (255) | {must be a valid email address} | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | billTo_email | billTo_email | O | O | O | O | O | O | O | All | ||||
| bill_to_forename | Yes | String (60) | - | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | billTo_firstName | billTo_firstName | O | O | O | O | O | O | O | All | ||||
| bill_to_phone | Yes | String (15) | ( ),+-.*#xX1234567890 | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | billTo_phoneNumber | billTo_phoneNumber | O | O | O | O | O | O | O | All | ||||
| bill_to_surname | Yes | String (60) | - | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | billTo_lastName | billTo_lastName | O | O | O | O | O | O | O | All | ||||
| card_cvn | Yes | String (4) | - | Collected directly from cardholder during the checkout process. To minimize your PCI DSS scope, do not collect this information yourself. | - | card_cvNumber | card_cvNumber | M | M | M | O | O | M | O | Card | ||||
| card_expiry_date | Yes | String (7) | - | Collected directly from cardholder during the checkout process. To minimize your PCI DSS scope, do not collect this information yourself. Replaces two separate fields in the legacy HOP/SOP and SOAPI. | - | card_expirationMonth,card_expirationYear | card_expirationMonth, card_expirationYear | M | M | M | O | O | M | O | Card | ||||
| card_number | Yes | String (20) | - | Collected directly from cardholder during the checkout process. To minimize your PCI DSS scope, do not collect this information yourself. | - | card_accountNumber | card_accountNumber | M | M | M | O | O | M | O | Card | ||||
| card_type | Yes | String (3) | 001,002,003,004,005,006,007,014,021,024,0 | Collected directly from cardholder during the checkout process. | Link | card_cardType | card_cardType | M | M | M | O | O | M | O | Card | ||||
| company_tax_id | Yes | String (9) | - | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | - | - | O | O | O | O | N/A | O | O | eCheck | ||||
| driver_license_number | Yes | String (30) | - | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | - | - | O | O | O | O | N/A | O | O | eCheck | ||||
| driver_license_state | Yes | String (2) | {See References} | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | Link | - | - | O | O | O | O | N/A | O | O | eCheck | ||||
| echeck_account_name | Yes | String (255) | - | The name on the customer's bank account. Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | - | - | O | O | O | O | N/A | O | O | eCheck | ||||
| echeck_account_number | Yes | Non-negative integer (17) | - | Collected directly from cardholder during the checkout process. To minimize your exposure to payment data, do not collect this information yourself. | - | - | - | O | O | O | O | N/A | O | O | eCheck | ||||
| echeck_account_type | Yes | String (1) | C,S,X | Check which fields are required by your processor,
and pass in or set to 'Required' in the EBC, as appropriate. C: Checking S: Savings X: Corporate Checking (USD only) |
- | - | - | O | O | O | O | N/A | O | O | eCheck | ||||
| echeck_bank_name | Yes | String (50) | - | The name of the bank that holds the customer's account. Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | - | - | O | O | O | O | N/A | O | O | eCheck | ||||
| echeck_check_number | Yes | Non-negative integer (8) | - | Check which fields are required by your processor, and pass in or set to 'Required' in the EBC, as appropriate. | - | - | - | O | O | O | O | N/A | O | O | eCheck | ||||
| echeck_routing_number | Yes | Non-negative integer (9) | - | Collected directly from cardholder during the checkout process. To minimize your exposure to payment data, do not collect this information yourself. | - | - | - | O | O | O | O | N/A | O | O | eCheck | ||||
| echeck_sec_code | Yes | String (3) | CCD,PPD,TEL,WEB | Check which fields are required by your processor,
and pass in or set to 'Required' in the EBC, as appropriate. See implementation guide for definition of values. |
Link | - | - | O | O | O | O | N/A | O | O | eCheck | ||||
| reference_number | No | String (50) | - | This should be unique per transaction, for example the order number/reference generated by your system. | - | orderNumber | merchantReferenceCode | M | M | M | M | M | O | O | All | ||||
| consumer_id | No | String (50) | - | A consumer ID you can set and store against a token. | - | billTo_customerID | billTo_customerID | N/A | O | O | O | O | O | O | All | ||||
| currency | No | String (3) | {3 character ISO Currency Code} | Enure your processor(s) supports the currency you supply for the payment method selected. | Link | currency | purchaseTotals_currency | M | M | O | O | M | O | O | All | ||||
| customer_cookies_accepted | No | String (5) | true,false | Used for Decision Manager risk profiling. | - | billTo_httpBrowserCookies Accepted |
billTo_httpBrowserCookies Accepted |
N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| customer_gift_wrap | No | String (5) | true,false | Used for Decision Manager risk profiling. | - | invoiceHeader_isGift | invoiceHeader_isGift | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| customer_ip_address | No | String (15) | - | Must be a valid IP address. | - | billTo_ipAddress | billTo_ipAddress | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| date_of_birth | No | String (8) | {Use the format YYYYMMDD} | - | - | billTo_dateOfBirth | billTo_dateOfBirth | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| ignore_avs | No | String (5) | true,false | - | - | orderPage_ignoreAVS | businessRules_ignoreAVSResult | N/A | N/A | N/A | N/A | N/A | N/A | O | Card | ||||
| ignore_cvn | No | String (5) | true,false | - | - | orderPage_ignoreCVN | businessRules_ignoreCVResult | N/A | N/A | N/A | N/A | N/A | N/A | O | Card | ||||
| merchant_defined_data# | No | String (100) | - | # Represents a number from 1 to 100. The first four
of these will be stored against the token, if the Create or Update Token
services are being called. Up to 100 defined data fields can be stored
against an individual transaction and/or used within the DM service. Do use these fields for Personally Identifying Information. |
- | merchantDefinedData# | merchantDefinedData_mddField_# | O | O | O | O | O | O | O | All | ||||
| merchant_secure_data# | No | String (100) | - | # Represents a number from 1 to 3. CyberSource encrypts this data before storing it in the database. Will be stored against a Token and/or an individual transaction, depending on the transaction_type. | - | ### Does not exist ### | merchantSecureData_field# | O | O | O | O | O | O | O | All | ||||
| merchant_secure_data4 | No | String (2000) | - | The fourth Secure Data field has a larger length of 2,000 characters. See comments for previous fields. | - | ### Does not exist ### | merchantSecureData_field4 | O | O | O | O | O | O | O | All | ||||
| override_custom_receipt_page | No | String (255) | {Must be a valid URL, including protocol, e.g. http://example.com/receipt} | Used in Secure Acceptance to allow merchants to override the URL of receipt page indicated in the UBC. | - | orderPage_receiptResponseURL | ### Does not exist ### | O | O | O | O | O | N/A | N/A | All | ||||
| payment_method | No | String (30) | card,echeck | Used to determine the payment method. If not provided, is assumed to be card. | - | paymentOption | ### Does not exist ### | M | M | M | M | N/A | M | N/A | eCheck | ||||
| returns_accepted | No | String (5) | true,false | Used for Decision Manager risk profiling. | - | invoiceHeader_returnsAccepted | invoiceHeader_returnsAccepted | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| ship_to_address_line1 | Yes | String (60) | - | - | - | shipTo_street1 | shipTo_street1 | O | O | O | O | O | O | O | All | ||||
| ship_to_address_line2 | Yes | String (60) | - | - | - | shipTo_street2 | shipTo_street2 | O | O | O | O | O | O | O | All | ||||
| ship_to_address_city | Yes | String (50) | - | - | - | shipTo_city | shipTo_city | O | O | O | O | O | O | O | All | ||||
| ship_to_address_state | Yes | {See notes} | {2 letter state code for US and CA, otherwise string 50} | String (2) when country is US or CA, otherwise String (50) | - | shipTo_state | shipTo_state | O | O | O | O | O | O | O | All | ||||
| ship_to_address_country | Yes | String (2) | {2 letter ISO Country Code} | Check which fields are required by your processor,
and pass in or set to 'Required' in the EBC, as appropriate. If US or CA entered, this restricts the ship_to_address_state field to certain Territory or Country codes. |
Link | shipTo_country | shipTo_country | O | O | O | O | O | O | O | All | ||||
| ship_to_address_postal_code | Yes | String (10) | - | - | - | shipTo_postalCode | shipTo_postalCode | O | O | O | O | O | O | O | All | ||||
| ship_to_company_name | Yes | String (40) | - | - | - | shipTo_company | shipTo_company | O | O | O | O | O | O | O | All | ||||
| ship_to_forename | Yes | String (60) | - | - | - | shipTo_firstName | shipTo_firstName | O | O | O | O | O | O | O | All | ||||
| ship_to_surname | Yes | String (60) | - | - | - | shipTo_lastName | shipTo_lastName | O | O | O | O | O | O | O | All | ||||
| ship_to_phone | Yes | String (15) | ( ),+-.*#xX1234567890 | - | - | shipTo_phoneNumber | shipTo_phoneNumber | O | O | O | O | O | O | O | All | ||||
| shipping_method | Yes | String (50) | sameday,oneday,twoday,threeday,lowcost,pickup,other,none | Used for Decision Manager risk profiling. | - | shipTo_shippingMethod | shipTo_shippingMethod | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| tax_amount | No | String (15) | .1234567890 | Will display during the checkout experience, if enabled on the Payment Form section of the profile in the EBC. If line items are used, this should equal the sum of each line item's tax amount multiplied by quantity. | - | taxAmount | purchaseTotals_taxAmount | O | O | N/A | N/A | O | O | O | All | ||||
| 0 | payment_token | No | - | - | Retrieves billing and shipping details stored against the token. | - | ### Does not exist ### | recurringSubscriptionInfo_subscriptionID | N/A | N/A | N/A | M | M | N/A | N/A | All | |||
| allow_payment_token_update | No | String (5) | true,false | If true, allows the billing, shipping and payment details stored against a token to be updated. When used with One-click payment will display 'Edit' to the cardholder. If you wish to update details stored against the token without allowing the cardholder to edit, omit this value and use the transaction_type of 'Update payment type' | - | ### Does not exist ### | ### Does not exist ### | N/A | N/A | N/A | O | O | N/A | N/A | All | ||||
| payment_token_comments | No | String (255) | - | Comments in this field are stored against the token, and displayed in the Subscription Detail report. | - | comments | comments | N/A | O | O | O | O | N/A | N/A | All | ||||
| payment_token_title | No | String (60) | - | Comments in this field are stored against the token, and displayed in the Subscription Detail report. | - | subscription_title | subscription_title | N/A | O | O | O | O | N/A | N/A | All | ||||
| recurring_amount | No | - | String (15) | - | - | recurringSubscriptionInfo_amount | recurringSubscriptionInfo_amount | N/A | N/A | N/A | N/A | N/A | M | N/A | All | ||||
| recurring_frequency | No | String (20) | weekly,monthly,quarterly,annually,bi-weekly,semi-monthly,quad-weekly,semi-annually | weekly: once every seven days, commencing on the
recurring_start_date. monthly: once every month, commencing on the recurring_start_date. Start date of 31st/30th/29th will lead to billings on the last day of shorter months. quarterly: Once every three months, see monthly for end of month billing date logic. annually: Once a year. bi-weekly: Once every 14 days. semi-monthly: Billed on the 1st and 15th of each month, regardless of start date specified. quad-weekly: Once every 28 days. semi-annually: Once every 6 months, see monthly for end of month billing date logic. |
- | recurringSubscriptionInfo_frequency | recurringSubscriptionInfo_frequency | N/A | N/A | N/A | N/A | N/A | M | N/A | All | ||||
| recurring_number_of_installments | No | String (3) | {any number between 1 and 156} | Optional field containing the number of installments, payments will cease once the number of installments specified has elapsed. This field cannot be used for an update to a subscription. | - | recurringSubscriptionInfo_numberOfPayments | recurringSubscriptionInfo_numberOfPayments | N/A | N/A | N/A | N/A | N/A | O | N/A | All | ||||
| recurring_start_date | No | String (8) | {format YYYYMMDD} | If not populated or in the past, will default to tomorrows date. | - | recurringSubscriptionInfo_startDate | recurringSubscriptionInfo_startDate | N/A | N/A | N/A | N/A | N/A | O | N/A | All | ||||
| device_fingerprint_id | No | String (88) | - | Equivalent to the session ID used in the Decision Manager Device Fingerprint code segments. | - | deviceFingerprintID | deviceFingerprintID | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| item_#_code | No | String (255) | l default l adult_content l coupon l electronic_good l electronic_software l gift_certificate l service l subscription l handling_only l service l shipping_and_handling l shipping_only l subscription |
Indicates the type of good. # represents the line item number, starting at 0 with a maximum value of 49. | - | item_#_productCode | item_#_productCode | O | O | N/A | N/A | O | O | O | All | ||||
| item_#_name | No | String (255) | - | # represents the line item number, starting at 0 with a maximum value of 49. | - | item_#_productName | item_#_productName | O | O | N/A | N/A | O | O | O | All | ||||
| item_#_quantity | No | String (10) | {Positive integer} | Required if one of the
following item codes is used: l adult_content l coupon l electronic_good l electronic_software l gift_certificate l service l subscription # represents the line item number, starting at 0 with a maximum value of 49. |
- | item_#_quantity | item_#_quantity | O | O | N/A | N/A | O | O | O | All | ||||
| item_#_sku | No | String (255) | - | Your product identifier. Required if one of the
following item codes is used: l adult_content l coupon l electronic_good l electronic_software l gift_certificate l service l subscription # represents the line item number, starting at 0 with a maximum value of 49. |
- | item_#_productSKU | item_#_productSKU | O | O | N/A | N/A | O | O | O | All | ||||
| item_#_tax_amount | No | String (15) | {Positive integer} | Tax amount for the line item. Cannot be a negative number. Is the same currency as the total amount. # represents the line item number, starting at 0 with a maximum value of 49. | - | item_#_taxAmount | item_#_taxAmount | O | O | N/A | N/A | O | O | O | All | ||||
| item_#_unit_price | No | String (15) | {Positive integer} | Per unit price for the item, cannot be a negative
number. # represents the line item number, starting at 0 with a maximum value of 49. |
- | item_#_unitPrice | item_#_unitPrice | O | O | N/A | N/A | O | O | O | All | ||||
| line_item_count | No | String (2) | {Sequential number from 0 to 49} | This is a required field if any item_#_* fields are used. Should equal the total number of line items included in the request. | - | lineItemCount | ### Does not exist ### | O | O | N/A | N/A | O | O | O | All | ||||
| journey_type | No | String (32) | - | Type of travel, such as: one way or round trip. | - | decisionManager_travelData_journeyType | decisionManagerTravelData_journeyType | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| complete_route | No | String (255) | - | Concatenation of
individual travel legs in the format for example: SFO-JFK:JFK-LHR:LHR-CDG. Use this field or the journey_leg#_dest and _orig fields. |
Link | decisionManager_travelData_completeRoute | decisionManager_travelData_completeRoute | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| journey_leg#_dest | No | String (3) | {See comments} | Airport code for the destination of the leg of the
trip designated by the pound (#) symbol in the field name. This code is usually three digits long, for example: SFO = San Francisco. Do not use the colon (:) or the dash (-). See link for list of airport codes. Note In your request, send either the complete route or the individual legs (_leg#_orig and _leg#_dest). If you send all the fields, the complete route takes precedence over the individual legs. |
Link | decisionManager_travelData_leg#_dest | decisionManager_travelData_leg_#_destination | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| journey_leg#_orig | No | String (3) | {See comments} | See above | Link | decisionManager_travelData_leg#_orig | decisionManager_travelData_leg_#_origin | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| departure_time | No | DateTime (25) | {See comments} | Departure date and time of the first leg of the
trip. Use one of the following formats: n yyyy-MM-dd HH:mm z n yyyy-MM-dd hh:mm a z n yyyy-MM-dd hh:mma z HH = hour in 24-hour format hh = hour in 12-hour format a = am or pm (case insensitive) z = time zone of the departing flight, for example: If the airline is based in city A, but the flight departs from city B, z is the time zone of city B at the time of departure. Important For travel information, use GMT instead of UTC, or use the local time zone. Examples 2011-03-20 11:30 PM PDT 2011-03-20 11:30pm GMT 2011-03-20 11:30pm GMT-05:00 Eastern Standard Time: GMT-05:00 or EST Note When specifying an offset from GMT, the format must be exactly as specified in the example. Insert no spaces between the time zone and the offset. |
- | decisionManager_travelData_departureDateTime | decisionManager_travelData_departureDateTime | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||
| skip_decision_manager | No | String (5) | true,false | Allows DM to be skipped on a per transaction basis, even if DM is enabled an profile level. | - | ### Does not exist ### | decisionManager_enabled | N/A | N/A | N/A | N/A | N/A | N/A | O | All | ||||