Purchase - dbpurchase

This section describes the message parameters for Debit Card Purchase transaction processing, which you can submit using the XML API integration method. Refer to the Integration Methods section for more information.

The dbpurchase transaction deducts the purchase amount from the debit cardholder’s checking or savings account, debiting the account immediately.

In this section:

For the entire list of API endpoints, refer to API Endpoints.

Request

Field nameDescriptionRequiredLengthData type
ssl_merchant_idMerchant ID
Elavon-assigned Converge Account ID (AID).
Required6 or 7numeric
ssl_user_idConverge User ID
The user ID with Hosted Payment API User status that can send transaction requests through the terminal.
Required15alphanumeric
ssl_pinTerminal ID
Unique identifier of the terminal that will process the transaction request and submit to the Converge gateway.
The ssl_user_id sending the transaction request must be associated with the terminal that will process the request.
Required64alphanumeric
ssl_transaction_typeTransaction Type
Valid value:  dbpurchase
Required20alphanumeric
ssl_amountTransaction Amount
The base amount that does not include the Cashback or Tip amount.
The system computes for the total amount to send for authorization.
Format: Number with 2 decimals places
Required11numeric
ssl_cashback_amountCashback Amount
Amount to pay the cardholder for making a debit purchase transaction.
Format: Number with 2 decimal places
Important: Only applicable to terminals that are set up with the Cashback debit payment option.
Optional12numeric
ssl_tender_amountNew Discounted Amount
Indicates the transaction amount less the discount for the offer, if available.
[Card Data]
ssl_account_typeBank Deposit Account Type
Valid values:
  • 0 - Checking
  • 1 - Savings
Required1numeric
ssl_exp_dateCard’s Expiry Date
Date when the card becomes invalid.
Format: MMYY
Required4numeric
ssl_track_dataRaw Track I and/or II Data
Track data captured from the card’s magnetic stripe. The data includes beginning and ending sentinels, card’s expiry date, cardholder’s first and last name.
Required76alphanumeric
ssl_enc_track_dataEncrypted Raw Track I and/or II Data
Encrypted Track I and/or II data captured from the card’s magnetic stripe when using an encrypting device. The data includes beginning and ending sentinels, card’s expiry date, cardholder’s first name and last name.
Conditional160alphanumeric
ssl_enc_track_data_formatEncrypted Raw Track I and/or II Data Format
Format of the track data captured from the card’s magnetic stripe.
Valid value:  ROAM_GENERIC_TDES_EMV
Required if card is read from a ROAM device.
ConditionalNANA
ssl_ksnKey Serial Number
Unique identifier generated from the swiped payment card and returned by the encrypting device. The KSN encrypts the PAN data through the DUKPT method.
Required if using ssl_enc_track_data.
Conditional20alphanumeric
[PIN Pad]Values returned by the PIN Pad device.
ssl_dukptDUKPT
Value used to encrypt the PIN of the cardholder.
Required20-
ssl_key_pointerTriple-DES DUKPT Pointer
Indicates the encryption key used on US debit transactions.
Valid value:  T - Triple-DES DUKPT
Required1alphanumeric
ssl_pin_blockEncrypted PIN Block
The encrypted personal identification number entered by the debit cardholder to authenticate ownership of the card.
Required16-
[Tip Processing]Use only on terminals that are set up with the Market Segment set to Service
ssl_tip_amountTip or Gratuity Amount
Amount to add to or update the transaction amount.
Format: Number with 2 decimal places
Optional11numeric
ssl_serverServer ID
Unique identifier of the clerk, waiter, waitress or cashier.
Optional8alphanumeric
ssl_shiftShift ID
Unique identifier of the time period, course or service type.
Optional4alphanumeric
[Card Verification]Use only on terminals that are set up with the CVV2, CVC2, CID credit card payment option.
ssl_cvv2cvc2Card Verification Value / Card Validation Code
Card security code or number printed on the card and commonly used for card not present payment transactions.
Optional4numeric
ssl_cvv2cvc2_indicatorCard Verification Value / Card Validation Code Indicator
Indicates the status of the card security code or number during the transaction.
Valid values:
  • 0 - Bypassed
  • 1 - Present
  • 2 - Illegible
  • 9 - Not Present
Optional1numeric
[Doing Business As]Use only on terminals that are set up with the DBA Name terminal option.
ssl_dynamic_dbaDoing Business As Name
Merchant-defined descriptors that replace the merchant’s business name on credit card statements.
Format: Prefix*Descriptor
Length: Prefix = 3, 7, or 12, Asterisk = 1,  Descriptor = 21 - (Prefix + Asterisk)
Important: DBA Prefix must be set using DBA Payment Fields Settings UI if ssl_dynamic_dba is used.
Example: MANYMAG*BAKERS MONTHLY
Conditional21alphanumeric
ssl_dynamic_dba_addressDynamic DBA Address
The dynamic doing business as street address for this transaction.
This value allows a merchant use an alternate address for this transaction.
30alphanumeric
ssl_dynamic_dba_auth_typeMerchant ID
The dynamic doing business as authorization type.
Valid values:
  • F - Final
  • P - Pre-authorize
1alphanumeric
ssl_dynamic_dba_cityDynamic City Name
This value allows a merchant use an alternate city as part of the address for this transaction
13alphanumeric
ssl_dynamic_dba_countryDynamic Country ISO Code
This value allows a merchant specify an alternate country as part of the address for this transaction.
3alphanumeric
ssl_dynamic_dba_emailDynamic Email Address
This value allows a merchant specify an alternate email address for this transaction.
70alphanumeric
ssl_dynamic_dba_mccDynamic Merchant Category Code
This value allows a merchant specify an alternate merchant category for this transaction.
22numeric
ssl_dynamic_dba_phoneDynamic Phone Number
This value allows a merchant specify an alternate phone number for this transaction.
20alphanumeric
ssl_dynamic_dba_postalDynamic Postal or ZIP Code
This value allows a merchant set an alternate postal code for a transaction.
9alphanumeric
ssl_dynamic_dba_stateDynamic State Code
This value allows a merchant set an alternate state code for a transaction.
2alphanumeric
ssl_dynamic_dba_submidDynamic Sub-merchant ID
This value allows a merchant set an alternate sub-merchant ID for a transaction.
22numeric
ssl_dynamic_dba_taxidDynamic Merchant Tax ID
This value allows a merchant set an alternate Tax ID for this transaction.
14alphanumeric
[Optional Fields]
ssl_lane_numberLane Number
A unique identifier for point of sale devices that can be passed to satisfy Mastercard’s unique Terminal ID requirement
Optional8numeric

Response

Field nameDescription
ssl_first_nameFirst Name
First name on the cardholder’s / customer’s account or billing address.
ssl_last_nameLast Name
Last name on the cardholder’s / customer’s account or billing address.
ssl_phonePhone Number
The card holder’s / customer’s phone number.
ssl_emailEmail Address
The cardholder’s or customer’s email address. Returned based on merchant setup.
ssl_resultTransaction Outcome
An ssl_result = 0 indicates an approved transaction.
An ssl_result not equal to 0 indicates a declined and unauthorized transaction.
ssl_result_messageTransaction Result Message
Refer to the Payment Card Response Codes section for an extensive list of possible returned messages.
ssl_txn_idTransaction ID
Unique identifier of the transaction.
ssl_transaction_typeTransaction Type
ssl_txn_timeProcessing Date and Time
Indicates when Converge processed the transaction.
Format: MM/DD/YYYY hh:mm:ss AM/PM
Example: 03/18/2022 10:34:10 AM
ssl_approval_codeTransaction Approval Code
Unique code returned by the credit card processor that indicates the approval status of the transaction.
ssl_reference_numberTransaction Reference Number
ssl_card_short_descriptionShort Card Brand Name
Valid values are: MC and VISA.
ssl_card_typePayment Type
Valid value:  DEBITCARD
ssl_card_numberMasked Card Number
Converge only returns the first 2 or last 4 digits of the regular PAN.
ssl_exp_dateCard’s Expiry Date
Returned based on merchant setup.
ssl_account_balanceAccount Balance
Account balance on the debit card.
ssl_account_typeBank Deposit Account Type
Valid values:
  • 0 - Checking
  • 1 - Savings
ssl_amountTransaction Amount
The total transaction amount that may include the Surcharge or Cashback amount.
ssl_cashback_amountCashback Amount
Amount to pay the cardholder for making a debit purchase transaction.
Format: Number with 2 decimal places
Important: Only applicable to terminals that are set up with the Cashback debit payment option.
ssl_surcharge_amountSurcharge Amount
The fee that the merchant charges for the transaction as a cost for doing business.
Format: Number with 2 decimal places
Important: Only applicable to terminals that are set up with the Surcharge debit payment option.
ssl_avs_addressAddress Line 1
Commonly the house number and street name on the cardholder’s / customer’s account or billing address.
Returned based on merchant setup.
ssl_address2Address Line 2
Apartment or condominium unit number and floor number on the cardholder’s or customer’s account or billing address.
Returned based on merchant setup.
ssl_avs_zipPostal or ZIP Code
Postal or ZIP code on the cardholder’s or customer’s account or billing address.
Returned based on merchant setup.
ssl_cityCity
City name on the cardholder’s / customer’s account or billing address.
Returned based on merchant setup.
ssl_stateState Code
State or province code on the cardholder’s / customer’s account or billing address.
Returned based on merchant setup.
ssl_countryCountry ISO Code
Country ISO code on the cardholder’s / customer’s account or billing address.
Returned based on merchant setup.
ssl_promo_listPromotion List
This contains a list of all promo products; the data for each promo product will be nested and embedded between beginning and ending elements ssl_promo_product up to 5 promo products. Each promo product ssl_promo_product will contain ssl_promo_code, ssl_promo_code_name, ssl_promo_code_description, and ssl_promo_code_issue_points.
ssl_customer_codeCustomer Code or Purchase Order Number
Customer ID or PO number specified in the billing statement of the cardholder.
ssl_loyalty_account_balanceAccount Balance
Available balance on the loyalty card.
[Address Verification Service]
ssl_avs_addressAddress Line 1
Commonly the house number and street name on the cardholder’s / customer’s account or billing address.
Address Verification Service (AVS) data compared with the address on the card issuer’s file.
Recommended for hand-keyed transactions to qualify for better interchange rates.
ssl_avs_responseAddress Verification Response Code
Refer to the AVS Response Codes section for a complete list of AVS response codes.
[Tip Processing]Returned only if Tip parameters are sent in the request.
ssl_base_amountBase Amount
Original transaction amount sent in the request. Returned based on the terminal setup.
ssl_tip_amountTip Amount
Added or updated tip or gratuity amount. Returned based on the terminal setup.
ssl_serverServer ID
Server identifier sent in the request. Returned based on the terminal setup.
ssl_shiftShift
Shift information sent in the request. Returned based on the terminal setup.
[Error]Returned only if an error occurs. Refer to the Error Codes section for more information.
errorCodeError Code
Typically, when the transaction failed validation or the request is incorrect. This will prevent the transaction from going to authorization. This is a numeric field.
errorMessageError Message
Detailed explanation of the error. This field may be changed based on merchant configuration in the user interface.
errorNameError Name
Error name or reason for the error.
[Card On File]
ssl_oar_dataOriginal Authorization Response Data
This data will be as received during the original authorization processing.
This is a retain and return value for terminal-based settlement messages.
You may store this field with the payment details from the transaction to make future Card On File transactions.
ssl_ps2000_dataPS2000
This data will be as received during the original authorization processing.
This is a retain and return value for terminal-based settlement messages.
You must store this field with the payment details from the transaction to make future Card On File transactions.

Examples

important

  • In all of these examples, you will have to change the data values, such as my_merchant_id, my_user_id, my_pin, and transaction data to match your Converge account and meet the needs of your website.
  • Code samples provided are for demonstration only and should not be used for live transactions. All sensitive merchant data, including transaction amounts and your Converge credentials, should be placed in server side code.

Basic dbpurchase transaction

Request

xmldata=
<txn>
    <ssl_merchant_id>my_merchant_id</ssl_merchant_id>
    <ssl_user_id>my_user_id</ssl_user_id>
    <ssl_pin>my_pin</ssl_pin>
    <ssl_test_mode>False</ssl_test_mode>
    <ssl_transaction_type>dbpurchase</ssl_transaction_type>
    <ssl_dukpt>654321000040002D</ssl_dukpt>
    <ssl_key_pointer>T</ssl_key_pointer>
    <ssl_pin_block>sc1000I</ssl_pin_block>
    <ssl_track_data>%B5121212121212124^CERTIFICATION-MC/ELAVON^491210199999999900876000000?;5121212121212124=4912101876234567?</ssl_track_data>
    <ssl_account_type>0</ssl_account_type>
    <ssl_cvv2cvc2>123</ssl_cvv2cvc2>
    <ssl_amount>10.00</ssl_amount>
    <ssl_tip_amount>2.00</ssl_tip_amount>
    <ssl_transaction_language>EN</ssl_transaction_language>
    <ssl_server>Test User</ssl_server>
    <ssl_shift>Dinner</ssl_shift>
</txn>

Response

<txn>
   <ssl_issuer_response>00</ssl_issuer_response>
   <ssl_last_name/>
   <ssl_company>Elavon</ssl_company>
   <ssl_phone>8524569514</ssl_phone>
   <ssl_card_number>51**********8745</ssl_card_number>
   <ssl_oar_data/>
   <ssl_result>0</ssl_result>
   <ssl_txn_id>290822C4A-5EF3B8D8-9763-46FA-83EE-4E7DDACCA053</ssl_txn_id>
   <ssl_loyalty_program/>
   <ssl_account_type>Checking</ssl_account_type>
   <ssl_approval_code>896565</ssl_approval_code>
   <ssl_account_status/>
   <ssl_email>myemail@elavon.com</ssl_email>
   <ssl_amount>22.00</ssl_amount>
   <ssl_avs_zip>30000</ssl_avs_zip>
   <ssl_txn_time>08/29/2022 02:33:55 PM</ssl_txn_time>
   <ssl_base_amount>20.00</ssl_base_amount>
   <ssl_address2>Second Address</ssl_address2>
   <ssl_card_short_description/>
   <ssl_tip_amount>2.00</ssl_tip_amount>
   <ssl_country>USA</ssl_country>
   <ssl_card_type>DEBITCARD</ssl_card_type>
   <ssl_access_code/>
   <ssl_transaction_type>PURCHASE</ssl_transaction_type>
   <ssl_loyalty_account_balance/>
   <ssl_avs_address>Test Address</ssl_avs_address>
   <ssl_account_balance>0.00</ssl_account_balance>
   <ssl_ps2000_data/>
   <ssl_reference_number>52435</ssl_reference_number>
   <ssl_state>GA</ssl_state>
   <ssl_city>Atlanta</ssl_city>
   <ssl_result_message>APPROVAL</ssl_result_message>
   <ssl_first_name/>
   <ssl_server>TTest Userest User</ssl_server>
   <ssl_tender_amount/>
   <ssl_partner_app_id>AC</ssl_partner_app_id>
</txn>

Cashback

Request

xmldata=
<txn>
   <ssl_merchant_ID>my_merchant_id</ssl_merchant_ID>
   <ssl_user_id>my_user_id</ssl_user_id>
   <ssl_pin>my_pin</ssl_pin>
   <ssl_transaction_type>dbpurchase</ssl_transaction_type>
   <ssl_pin_block>54C3B8599B753FE5</ssl_pin_block>
   <ssl_ksn>FFFF445566000F000031</ssl_ksn>
   <ssl_key_pointer>T</ssl_key_pointer>
   <ssl_exp_date>1249</ssl_exp_date>
   <ssl_enc_track_data>5A034DF2D8A60C308109EE56BE66479280A49718411AC9F642384CCF1C19C918B31BC1CB707D8EE4F730B8ADFBC26DA61B55F1A76FBFA443177D93262BF698C5BCE6F0EF1DC6016578AC542079C6D17EB0FC870708B461FE3993E9D5855DC9E2</ssl_enc_track_data>
   <ssl_dukpt>FFFF654321005900002C</ssl_dukpt>
   <ssl_account_type>checking</ssl_account_type>
   <ssl_amount>10</ssl_amount>
   <ssl_cashback_amount>3</ssl_cashback_amount>
</txn>

Response

<txn>
   <ssl_surcharge_amount>1.00</ssl_surcharge_amount>
   <ssl_transaction_type>PURCHASE</ssl_transaction_type>
   <ssl_card_number>51**********2124</ssl_card_number>
   <ssl_result>0</ssl_result>
   <ssl_txn_id>080821A3E-2E4E6E35-69AB-4FB1-9127-041A55F15CA1</ssl_txn_id>
   <ssl_account_type>Checking</ssl_account_type>
   <ssl_approval_code>777292</ssl_approval_code>
   <ssl_amount>14.00</ssl_amount>
   <ssl_txn_time>08/08/2021 11:24:12 PM</ssl_txn_time>
   <ssl_account_balance>0.00</ssl_account_balance>
   <ssl_reference_number>00001325</ssl_reference_number>
   <ssl_result_message>APPROVAL</ssl_result_message>
   <ssl_base_amount>10.00</ssl_base_amount>
   <ssl_partner_app_id>01</ssl_partner_app_id>
</txn>

Integration with Loyalty Program Transactions

The Debit Card Purchase transaction can integrate the processing of the following Loyalty Program transactions:

  • Lead Inquiry
  • Member Inquiry
  • Enrollment

Transaction Processing

These steps outline the process of integrating the Lead Inquiry, Member Inquiry, and Enrollment transactions with the Debit Card Purchase transaction.

  1. The integrated application sends the payment card to Converge.
  2. Converge sends a Lead Inquiry (ltleadinquiry) transaction to Elavon’s loyalty program to verify the payment card’s enrollment status.

    Refer to the Lead Inquiry transaction for information about the appropriate request parameters.

  3. Converge receives a response from the Elavon loyalty program. If the Elavon loyalty program recognizes the payment card as a member, it checks for rewards and sends the rewards information (ssl_promo_list) with the new discounted amount (ssl_tender_amount). If the Elavon loyalty program recognized the payment card as not a member, it sends a Join Offer message in the response.
  4. Converge sends the Elavon loyalty program response to the integrated application. If the payment card is a member, the integrated application can authorize the Debit Card Purchase transaction using the rewards information and new discounted amount. At this point, the Debit Card Purchase and Loyalty Program transactions are complete. If the payment card is not a member, the integration application prompts (ssl_loyalty_prompt) the cardholder to not enroll, confirm their membership, or enroll.
  5. The cardholder selects an option from the prompt displayed by the integrated application. If the cardholder selects to not enroll, the integrated application proceeds with the authorization of the Debit Card Purchase’s original transaction amount. At this point, the Debit Card Purchase and Loyalty Program transactions are complete. If the cardholder confirms their membership, the integrated application sends a Member Inquiry (ltmemberinquiry) transaction. Refer to the Member Inquiry transaction for information about the appropriate request parameters.
  6. If the integration application sent a Member Inquiry transaction and the Elavon loyalty program recognizes the payment card as a member, it checks for rewards and sends the rewards information (ssl_promo_list) with the new discounted amount (ssl_tender_amount). The integrated application can then authorize the Debit Card Purchase transaction using the rewards information and new discounted amount. At this point, the Debit Card Purchase and Loyalty Program transactions are complete. If the integrated application sent an Enrollment transaction and the cardholder uses the payment card to enroll, the integrated application sends the Debit Card Purchase transaction with the cardholder’s phone number (ssl_phone) and Enrollment Indicator (ssl_enrollment) (obtained from the ltenrollment transaction), and promotional codes from the ltleadinquiry response. The payment card is charged with purchase amount and enrolled in the loyalty program with a phone number. At this point, the Debit Card Purchase and Loyalty Program transactions are complete. If the integrated application sent an Enrollment transaction and the cardholder uses only their phone number to enroll or a new loyalty card is issued, the Elavon loyalty program enrolls the loyalty card and checks for rewards and responds with the rewards information and new discounted amount. The integrated application can authorize the Debit Card Purchase transaction using the rewards information and new discounted amount. At this point, the Debit Card Purchase and Loyalty Program transactions are complete.